@salesforce/b2c-cli 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/bin/dev.js +8 -8
  2. package/bin/run.js +5 -7
  3. package/content/guidance/b2c/b2c-business-manager-extensions/SKILL.md +361 -0
  4. package/content/guidance/b2c/b2c-business-manager-extensions/references/EXTENSIONS-XML.md +458 -0
  5. package/content/guidance/b2c/b2c-controllers/SKILL.md +301 -0
  6. package/content/guidance/b2c/b2c-controllers/references/CLASSIC-PATTERNS.md +335 -0
  7. package/content/guidance/b2c/b2c-controllers/references/SFRA-PATTERNS.md +400 -0
  8. package/content/guidance/b2c/b2c-custom-api-development/SKILL.md +281 -0
  9. package/content/guidance/b2c/b2c-custom-api-development/references/CONTRACT.md +142 -0
  10. package/content/guidance/b2c/b2c-custom-api-development/references/IMPLEMENTATION.md +153 -0
  11. package/content/guidance/b2c/b2c-custom-api-development/references/TESTING.md +118 -0
  12. package/content/guidance/b2c/b2c-custom-caches/SKILL.md +279 -0
  13. package/content/guidance/b2c/b2c-custom-job-steps/SKILL.md +520 -0
  14. package/content/guidance/b2c/b2c-custom-job-steps/references/CHUNK-ORIENTED.md +377 -0
  15. package/content/guidance/b2c/b2c-custom-job-steps/references/JOBS-XML.md +212 -0
  16. package/content/guidance/b2c/b2c-custom-job-steps/references/STEPTYPES-JSON.md +373 -0
  17. package/content/guidance/b2c/b2c-custom-job-steps/references/TASK-ORIENTED.md +344 -0
  18. package/content/guidance/b2c/b2c-custom-objects/SKILL.md +327 -0
  19. package/content/guidance/b2c/b2c-custom-objects/references/OCAPI-SEARCH.md +298 -0
  20. package/content/guidance/b2c/b2c-forms/SKILL.md +242 -0
  21. package/content/guidance/b2c/b2c-forms/references/FORM-XML.md +409 -0
  22. package/content/guidance/b2c/b2c-hooks/SKILL.md +500 -0
  23. package/content/guidance/b2c/b2c-hooks/references/OCAPI-SCAPI-HOOKS.md +403 -0
  24. package/content/guidance/b2c/b2c-hooks/references/ORDER-HOOK-LIFECYCLE.md +169 -0
  25. package/content/guidance/b2c/b2c-hooks/references/SYSTEM-HOOKS.md +433 -0
  26. package/content/guidance/b2c/b2c-isml/SKILL.md +320 -0
  27. package/content/guidance/b2c/b2c-isml/references/EXPRESSIONS.md +366 -0
  28. package/content/guidance/b2c/b2c-isml/references/TAGS.md +443 -0
  29. package/content/guidance/b2c/b2c-localization/SKILL.md +344 -0
  30. package/content/guidance/b2c/b2c-localization/references/PATTERNS.md +407 -0
  31. package/content/guidance/b2c/b2c-logging/SKILL.md +352 -0
  32. package/content/guidance/b2c/b2c-logging/references/LOG-FILES.md +282 -0
  33. package/content/guidance/b2c/b2c-metadata/SKILL.md +406 -0
  34. package/content/guidance/b2c/b2c-metadata/references/SYSTEM-OBJECTS.md +320 -0
  35. package/content/guidance/b2c/b2c-metadata/references/XML-EXAMPLES.md +366 -0
  36. package/content/guidance/b2c/b2c-onboarding/SKILL.md +154 -0
  37. package/content/guidance/b2c/b2c-ordering/SKILL.md +391 -0
  38. package/content/guidance/b2c/b2c-page-designer/SKILL.md +410 -0
  39. package/content/guidance/b2c/b2c-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
  40. package/content/guidance/b2c/b2c-page-designer/references/META-DEFINITIONS.md +340 -0
  41. package/content/guidance/b2c/b2c-querying-data/SKILL.md +289 -0
  42. package/content/guidance/b2c/b2c-querying-data/references/PERFORMANCE-APIS.md +74 -0
  43. package/content/guidance/b2c/b2c-scapi-admin/SKILL.md +53 -0
  44. package/content/guidance/b2c/b2c-scapi-admin/references/CLIENT-EXAMPLES.md +440 -0
  45. package/content/guidance/b2c/b2c-scapi-admin/references/INTEGRATION-PATTERNS.md +518 -0
  46. package/content/guidance/b2c/b2c-scapi-admin/references/OAUTH-SCOPES.md +337 -0
  47. package/content/guidance/b2c/b2c-scapi-shopper/SKILL.md +56 -0
  48. package/content/guidance/b2c/b2c-scapi-shopper/references/CHECKOUT-FLOW.md +466 -0
  49. package/content/guidance/b2c/b2c-scapi-shopper/references/CLIENT-EXAMPLES.md +351 -0
  50. package/content/guidance/b2c/b2c-scapi-shopper/references/COMMON-PATTERNS.md +390 -0
  51. package/content/guidance/b2c/b2c-scapi-shopper/references/SCOPES.md +290 -0
  52. package/content/guidance/b2c/b2c-slas-auth-patterns/SKILL.md +420 -0
  53. package/content/guidance/b2c/b2c-slas-auth-patterns/references/PASSKEYS.md +126 -0
  54. package/content/guidance/b2c/b2c-slas-auth-patterns/references/SESSION-BRIDGE.md +267 -0
  55. package/content/guidance/b2c/b2c-slas-auth-patterns/references/TOKEN-LIFECYCLE.md +367 -0
  56. package/content/guidance/b2c/b2c-webservices/SKILL.md +318 -0
  57. package/content/guidance/b2c/b2c-webservices/references/FTP-SERVICES.md +524 -0
  58. package/content/guidance/b2c/b2c-webservices/references/HTTP-SERVICES.md +578 -0
  59. package/content/guidance/b2c/b2c-webservices/references/SERVICES-XML.md +351 -0
  60. package/content/guidance/b2c/b2c-webservices/references/SOAP-SERVICES.md +587 -0
  61. package/content/guidance/b2c-cli/b2c-am/SKILL.md +277 -0
  62. package/content/guidance/b2c-cli/b2c-bm-users-roles/SKILL.md +210 -0
  63. package/content/guidance/b2c-cli/b2c-cap/SKILL.md +131 -0
  64. package/content/guidance/b2c-cli/b2c-cip/SKILL.md +116 -0
  65. package/content/guidance/b2c-cli/b2c-cip/references/KNOWN_TABLES.md +105 -0
  66. package/content/guidance/b2c-cli/b2c-cip/references/SALES_ANALYSIS.md +50 -0
  67. package/content/guidance/b2c-cli/b2c-cip/references/STARTER_QUERIES.md +147 -0
  68. package/content/guidance/b2c-cli/b2c-code/SKILL.md +146 -0
  69. package/content/guidance/b2c-cli/b2c-config/SKILL.md +462 -0
  70. package/content/guidance/b2c-cli/b2c-content/SKILL.md +176 -0
  71. package/content/guidance/b2c-cli/b2c-debug/SKILL.md +138 -0
  72. package/content/guidance/b2c-cli/b2c-docs/SKILL.md +301 -0
  73. package/content/guidance/b2c-cli/b2c-ecdn/SKILL.md +135 -0
  74. package/content/guidance/b2c-cli/b2c-ecdn/references/ADVANCED.md +97 -0
  75. package/content/guidance/b2c-cli/b2c-ecdn/references/SECURITY.md +75 -0
  76. package/content/guidance/b2c-cli/b2c-import-set-migrations/SKILL.md +265 -0
  77. package/content/guidance/b2c-cli/b2c-job/SKILL.md +64 -0
  78. package/content/guidance/b2c-cli/b2c-job/references/EXPORT.md +121 -0
  79. package/content/guidance/b2c-cli/b2c-job/references/IMPORT.md +55 -0
  80. package/content/guidance/b2c-cli/b2c-job/references/RUN-AND-MONITOR.md +119 -0
  81. package/content/guidance/b2c-cli/b2c-logs/SKILL.md +249 -0
  82. package/content/guidance/b2c-cli/b2c-metrics/SKILL.md +315 -0
  83. package/content/guidance/b2c-cli/b2c-mrt/SKILL.md +207 -0
  84. package/content/guidance/b2c-cli/b2c-mrt/references/BUNDLE-COMMANDS.md +203 -0
  85. package/content/guidance/b2c-cli/b2c-mrt/references/ENVIRONMENT-COMMANDS.md +218 -0
  86. package/content/guidance/b2c-cli/b2c-mrt/references/PROJECT-COMMANDS.md +154 -0
  87. package/content/guidance/b2c-cli/b2c-sandbox/SKILL.md +112 -0
  88. package/content/guidance/b2c-cli/b2c-scapi-custom/SKILL.md +126 -0
  89. package/content/guidance/b2c-cli/b2c-scapi-schemas/SKILL.md +66 -0
  90. package/content/guidance/b2c-cli/b2c-scapi-schemas/references/CLI-EXAMPLES.md +108 -0
  91. package/content/guidance/b2c-cli/b2c-site-import-export/SKILL.md +57 -0
  92. package/content/guidance/b2c-cli/b2c-site-import-export/references/IMPORT-OPTIONS.md +118 -0
  93. package/content/guidance/b2c-cli/b2c-site-import-export/references/METADATA-XML.md +381 -0
  94. package/content/guidance/b2c-cli/b2c-site-import-export/references/WORKFLOWS.md +182 -0
  95. package/content/guidance/b2c-cli/b2c-sites/SKILL.md +112 -0
  96. package/content/guidance/b2c-cli/b2c-slas/SKILL.md +182 -0
  97. package/content/guidance/b2c-cli/b2c-webdav/SKILL.md +186 -0
  98. package/content/guidance/b2c-ops/b2c-checkout-triage/SKILL.md +68 -0
  99. package/content/guidance/b2c-ops/b2c-job-health/SKILL.md +75 -0
  100. package/content/guidance/b2c-ops/b2c-job-health/references/job-logs.md +21 -0
  101. package/content/guidance/b2c-ops/b2c-order-failure-triage/SKILL.md +66 -0
  102. package/content/guidance/b2c-ops/b2c-order-failure-triage/references/order-evidence.md +87 -0
  103. package/content/guidance/b2c-ops/b2c-production-triage/SKILL.md +87 -0
  104. package/content/guidance/b2c-ops/b2c-production-triage/references/escalation.md +57 -0
  105. package/content/guidance/index.json +1949 -0
  106. package/content/guidance/storefront-next/sfnext-accessibility/SKILL.md +103 -0
  107. package/content/guidance/storefront-next/sfnext-accessibility/references/checklist.md +64 -0
  108. package/content/guidance/storefront-next/sfnext-analytics-consent/SKILL.md +91 -0
  109. package/content/guidance/storefront-next/sfnext-analytics-consent/references/CUSTOM-ADAPTER.md +49 -0
  110. package/content/guidance/storefront-next/sfnext-authentication/SKILL.md +127 -0
  111. package/content/guidance/storefront-next/sfnext-authentication/references/COOKIES.md +39 -0
  112. package/content/guidance/storefront-next/sfnext-authentication/references/LOGIN-FLOWS.md +59 -0
  113. package/content/guidance/storefront-next/sfnext-commerce-features/SKILL.md +67 -0
  114. package/content/guidance/storefront-next/sfnext-commerce-features/references/FEATURE-PREREQUISITES.md +37 -0
  115. package/content/guidance/storefront-next/sfnext-components/SKILL.md +153 -0
  116. package/content/guidance/storefront-next/sfnext-components/references/COMPONENT-AUTHORING.md +118 -0
  117. package/content/guidance/storefront-next/sfnext-components/references/SHAPE-TOKENS.md +51 -0
  118. package/content/guidance/storefront-next/sfnext-components/references/STORYBOOK.md +54 -0
  119. package/content/guidance/storefront-next/sfnext-components/references/TOKEN-SYSTEM.md +53 -0
  120. package/content/guidance/storefront-next/sfnext-components/references/TROUBLESHOOTING.md +19 -0
  121. package/content/guidance/storefront-next/sfnext-configuration/SKILL.md +163 -0
  122. package/content/guidance/storefront-next/sfnext-configuration/references/ENV-VARIABLES.md +55 -0
  123. package/content/guidance/storefront-next/sfnext-configuration/references/MULTI-SITE-URLS.md +137 -0
  124. package/content/guidance/storefront-next/sfnext-data-fetching/SKILL.md +140 -0
  125. package/content/guidance/storefront-next/sfnext-data-fetching/references/ACTIONS.md +53 -0
  126. package/content/guidance/storefront-next/sfnext-data-fetching/references/API-CLIENTS.md +34 -0
  127. package/content/guidance/storefront-next/sfnext-data-fetching/references/LOADERS.md +73 -0
  128. package/content/guidance/storefront-next/sfnext-data-fetching/references/SCAPI-FETCHER.md +39 -0
  129. package/content/guidance/storefront-next/sfnext-deployment/SKILL.md +127 -0
  130. package/content/guidance/storefront-next/sfnext-deployment/references/MRT-DEPLOYMENT.md +59 -0
  131. package/content/guidance/storefront-next/sfnext-extensions/SKILL.md +118 -0
  132. package/content/guidance/storefront-next/sfnext-extensions/references/ACTION-HOOKS.md +57 -0
  133. package/content/guidance/storefront-next/sfnext-extensions/references/BASE-AUDIT.md +68 -0
  134. package/content/guidance/storefront-next/sfnext-extensions/references/CLI-AND-INSTALL.md +58 -0
  135. package/content/guidance/storefront-next/sfnext-extensions/references/EXTENSION-EXAMPLES.md +79 -0
  136. package/content/guidance/storefront-next/sfnext-hybrid-storefronts/SKILL.md +93 -0
  137. package/content/guidance/storefront-next/sfnext-hybrid-storefronts/references/HYBRID-PROXY-CONFIG.md +86 -0
  138. package/content/guidance/storefront-next/sfnext-i18n/SKILL.md +152 -0
  139. package/content/guidance/storefront-next/sfnext-i18n/references/locale-config.md +35 -0
  140. package/content/guidance/storefront-next/sfnext-overview/SKILL.md +101 -0
  141. package/content/guidance/storefront-next/sfnext-page-designer/SKILL.md +202 -0
  142. package/content/guidance/storefront-next/sfnext-page-designer/references/BUSINESS-MANAGER.md +46 -0
  143. package/content/guidance/storefront-next/sfnext-page-designer/references/COMPONENT-REGISTRY.md +111 -0
  144. package/content/guidance/storefront-next/sfnext-page-designer/references/DECORATOR-PATTERNS.md +168 -0
  145. package/content/guidance/storefront-next/sfnext-page-designer/references/REVIEW-CHECKLIST.md +83 -0
  146. package/content/guidance/storefront-next/sfnext-page-designer/references/TROUBLESHOOTING.md +35 -0
  147. package/content/guidance/storefront-next/sfnext-performance/SKILL.md +102 -0
  148. package/content/guidance/storefront-next/sfnext-performance/references/PERFORMANCE-REVIEW-CHECKLIST.md +85 -0
  149. package/content/guidance/storefront-next/sfnext-performance/references/SUSPENSE-AND-STREAMING.md +58 -0
  150. package/content/guidance/storefront-next/sfnext-project-setup/SKILL.md +147 -0
  151. package/content/guidance/storefront-next/sfnext-project-setup/references/PROJECT-STRUCTURE.md +61 -0
  152. package/content/guidance/storefront-next/sfnext-project-setup/references/SCRIPTS.md +47 -0
  153. package/content/guidance/storefront-next/sfnext-project-setup/references/SFNEXT-CLI.md +63 -0
  154. package/content/guidance/storefront-next/sfnext-quality-gates/SKILL.md +70 -0
  155. package/content/guidance/storefront-next/sfnext-quality-gates/references/lint-and-budgets.md +39 -0
  156. package/content/guidance/storefront-next/sfnext-revalidation/SKILL.md +121 -0
  157. package/content/guidance/storefront-next/sfnext-revalidation/references/POLICIES-AND-TAGS.md +55 -0
  158. package/content/guidance/storefront-next/sfnext-routing/SKILL.md +123 -0
  159. package/content/guidance/storefront-next/sfnext-routing/references/ROUTE-CONVENTIONS.md +65 -0
  160. package/content/guidance/storefront-next/sfnext-routing/references/URLS-AND-SEO-ROUTES.md +22 -0
  161. package/content/guidance/storefront-next/sfnext-scapi/SKILL.md +126 -0
  162. package/content/guidance/storefront-next/sfnext-scapi/references/WORKED-EXAMPLE.md +39 -0
  163. package/content/guidance/storefront-next/sfnext-security/SKILL.md +129 -0
  164. package/content/guidance/storefront-next/sfnext-security/references/COOKIE-DOMAIN.md +39 -0
  165. package/content/guidance/storefront-next/sfnext-security/references/TURNSTILE.md +43 -0
  166. package/content/guidance/storefront-next/sfnext-seo/SKILL.md +95 -0
  167. package/content/guidance/storefront-next/sfnext-seo/references/MULTI-DOMAIN-BASE-PATH.md +17 -0
  168. package/content/guidance/storefront-next/sfnext-seo/references/SEO-ROUTES.md +31 -0
  169. package/content/guidance/storefront-next/sfnext-state-management/SKILL.md +114 -0
  170. package/content/guidance/storefront-next/sfnext-state-management/references/PATTERNS.md +45 -0
  171. package/content/guidance/storefront-next/sfnext-testing/SKILL.md +151 -0
  172. package/content/guidance/storefront-next/sfnext-testing/references/E2E.md +38 -0
  173. package/content/guidance/storefront-next/sfnext-testing/references/STORYBOOK-PATTERNS.md +97 -0
  174. package/content/guidance/storefront-next/sfnext-testing/references/UNIT-AND-ROUTE-TESTS.md +60 -0
  175. package/content/guidance/storefront-next/sfnext-theming/SKILL.md +104 -0
  176. package/content/guidance/storefront-next/sfnext-theming/references/REBRAND-CHECKLIST.md +29 -0
  177. package/dist/commands/cap/install.d.ts +1 -0
  178. package/dist/commands/cap/list.d.ts +1 -0
  179. package/dist/commands/cap/pull.d.ts +1 -0
  180. package/dist/commands/cap/tasks.d.ts +1 -0
  181. package/dist/commands/cap/uninstall.d.ts +1 -0
  182. package/dist/commands/cip/describe.d.ts +1 -0
  183. package/dist/commands/cip/query.d.ts +1 -0
  184. package/dist/commands/cip/report/bot-traffic-share.d.ts +1 -0
  185. package/dist/commands/cip/report/checkout-funnel-dropoff.d.ts +1 -0
  186. package/dist/commands/cip/report/controller-error-rate-trend.d.ts +1 -0
  187. package/dist/commands/cip/report/controller-health-scorecard.d.ts +1 -0
  188. package/dist/commands/cip/report/customer-registration-trends.d.ts +1 -0
  189. package/dist/commands/cip/report/discount-depth-breakdown.d.ts +1 -0
  190. package/dist/commands/cip/report/inventory-stockout-by-location.d.ts +1 -0
  191. package/dist/commands/cip/report/new-vs-returning-buyer-revenue.d.ts +1 -0
  192. package/dist/commands/cip/report/ocapi-client-usage.d.ts +1 -0
  193. package/dist/commands/cip/report/ocapi-requests.d.ts +1 -0
  194. package/dist/commands/cip/report/payment-method-performance.d.ts +1 -0
  195. package/dist/commands/cip/report/product-co-purchase-analysis.d.ts +1 -0
  196. package/dist/commands/cip/report/promotion-discount-analysis.d.ts +1 -0
  197. package/dist/commands/cip/report/promotion-roi-leaderboard.d.ts +1 -0
  198. package/dist/commands/cip/report/recommender-effectiveness.d.ts +1 -0
  199. package/dist/commands/cip/report/remote-include-performance.d.ts +1 -0
  200. package/dist/commands/cip/report/revenue-by-channel.d.ts +1 -0
  201. package/dist/commands/cip/report/sales-analytics.d.ts +1 -0
  202. package/dist/commands/cip/report/sales-summary.d.ts +1 -0
  203. package/dist/commands/cip/report/scapi-cache-hit-ratio.d.ts +1 -0
  204. package/dist/commands/cip/report/scapi-error-rate-by-status.d.ts +1 -0
  205. package/dist/commands/cip/report/scapi-latency-distribution.d.ts +1 -0
  206. package/dist/commands/cip/report/scapi-traffic-latency.d.ts +1 -0
  207. package/dist/commands/cip/report/search-query-performance.d.ts +1 -0
  208. package/dist/commands/cip/report/top-referrers.d.ts +1 -0
  209. package/dist/commands/cip/report/top-selling-products.d.ts +1 -0
  210. package/dist/commands/cip/report/zero-result-searches.d.ts +1 -0
  211. package/dist/commands/cip/tables.d.ts +1 -0
  212. package/dist/commands/code/activate.d.ts +1 -0
  213. package/dist/commands/code/delete.d.ts +1 -0
  214. package/dist/commands/code/deploy.d.ts +1 -0
  215. package/dist/commands/code/download.d.ts +1 -0
  216. package/dist/commands/code/watch.d.ts +1 -0
  217. package/dist/commands/commands/search.d.ts +35 -0
  218. package/dist/commands/commands/search.js +85 -0
  219. package/dist/commands/commands/search.js.map +1 -0
  220. package/dist/commands/content/export.d.ts +1 -0
  221. package/dist/commands/content/list.d.ts +1 -0
  222. package/dist/commands/content/validate.d.ts +1 -0
  223. package/dist/commands/debug/cli.d.ts +1 -0
  224. package/dist/commands/debug/index.d.ts +1 -0
  225. package/dist/commands/docs/cache.d.ts +1 -0
  226. package/dist/commands/docs/download.d.ts +1 -0
  227. package/dist/commands/docs/read.d.ts +1 -0
  228. package/dist/commands/docs/schema.d.ts +1 -0
  229. package/dist/commands/docs/search.d.ts +1 -0
  230. package/dist/commands/docs/skill.d.ts +41 -0
  231. package/dist/commands/docs/skill.js +183 -0
  232. package/dist/commands/docs/skill.js.map +1 -0
  233. package/dist/commands/ecdn/cache/purge.d.ts +1 -0
  234. package/dist/commands/ecdn/certificates/add.d.ts +1 -0
  235. package/dist/commands/ecdn/certificates/delete.d.ts +1 -0
  236. package/dist/commands/ecdn/certificates/list.d.ts +1 -0
  237. package/dist/commands/ecdn/certificates/update.d.ts +1 -0
  238. package/dist/commands/ecdn/certificates/validate.d.ts +1 -0
  239. package/dist/commands/ecdn/cipher-suites/get.d.ts +1 -0
  240. package/dist/commands/ecdn/cipher-suites/update.d.ts +1 -0
  241. package/dist/commands/ecdn/firewall/create.d.ts +1 -0
  242. package/dist/commands/ecdn/firewall/delete.d.ts +1 -0
  243. package/dist/commands/ecdn/firewall/get.d.ts +1 -0
  244. package/dist/commands/ecdn/firewall/list.d.ts +1 -0
  245. package/dist/commands/ecdn/firewall/reorder.d.ts +1 -0
  246. package/dist/commands/ecdn/firewall/update.d.ts +1 -0
  247. package/dist/commands/ecdn/logpush/jobs/create.d.ts +1 -0
  248. package/dist/commands/ecdn/logpush/jobs/delete.d.ts +1 -0
  249. package/dist/commands/ecdn/logpush/jobs/get.d.ts +1 -0
  250. package/dist/commands/ecdn/logpush/jobs/list.d.ts +1 -0
  251. package/dist/commands/ecdn/logpush/jobs/update.d.ts +1 -0
  252. package/dist/commands/ecdn/logpush/ownership.d.ts +1 -0
  253. package/dist/commands/ecdn/mrt-rules/create.d.ts +1 -0
  254. package/dist/commands/ecdn/mrt-rules/delete.d.ts +1 -0
  255. package/dist/commands/ecdn/mrt-rules/get.d.ts +1 -0
  256. package/dist/commands/ecdn/mrt-rules/rules/delete.d.ts +1 -0
  257. package/dist/commands/ecdn/mrt-rules/rules/update.d.ts +1 -0
  258. package/dist/commands/ecdn/mrt-rules/update.d.ts +1 -0
  259. package/dist/commands/ecdn/mtls/create.d.ts +1 -0
  260. package/dist/commands/ecdn/mtls/delete.d.ts +1 -0
  261. package/dist/commands/ecdn/mtls/get.d.ts +1 -0
  262. package/dist/commands/ecdn/mtls/issue.d.ts +1 -0
  263. package/dist/commands/ecdn/mtls/list.d.ts +1 -0
  264. package/dist/commands/ecdn/mtls/setup.d.ts +1 -0
  265. package/dist/commands/ecdn/origin-headers/delete.d.ts +1 -0
  266. package/dist/commands/ecdn/origin-headers/get.d.ts +1 -0
  267. package/dist/commands/ecdn/origin-headers/set.d.ts +1 -0
  268. package/dist/commands/ecdn/page-shield/notifications/create.d.ts +1 -0
  269. package/dist/commands/ecdn/page-shield/notifications/delete.d.ts +1 -0
  270. package/dist/commands/ecdn/page-shield/notifications/list.d.ts +1 -0
  271. package/dist/commands/ecdn/page-shield/policies/create.d.ts +1 -0
  272. package/dist/commands/ecdn/page-shield/policies/delete.d.ts +1 -0
  273. package/dist/commands/ecdn/page-shield/policies/get.d.ts +1 -0
  274. package/dist/commands/ecdn/page-shield/policies/list.d.ts +1 -0
  275. package/dist/commands/ecdn/page-shield/policies/update.d.ts +1 -0
  276. package/dist/commands/ecdn/page-shield/scripts/get.d.ts +1 -0
  277. package/dist/commands/ecdn/page-shield/scripts/list.d.ts +1 -0
  278. package/dist/commands/ecdn/rate-limit/create.d.ts +1 -0
  279. package/dist/commands/ecdn/rate-limit/delete.d.ts +1 -0
  280. package/dist/commands/ecdn/rate-limit/get.d.ts +1 -0
  281. package/dist/commands/ecdn/rate-limit/list.d.ts +1 -0
  282. package/dist/commands/ecdn/rate-limit/update.d.ts +1 -0
  283. package/dist/commands/ecdn/security/get.d.ts +1 -0
  284. package/dist/commands/ecdn/security/update.d.ts +1 -0
  285. package/dist/commands/ecdn/speed/get.d.ts +1 -0
  286. package/dist/commands/ecdn/speed/update.d.ts +1 -0
  287. package/dist/commands/ecdn/waf/groups/list.d.ts +1 -0
  288. package/dist/commands/ecdn/waf/groups/update.d.ts +1 -0
  289. package/dist/commands/ecdn/waf/managed-rules/list.d.ts +1 -0
  290. package/dist/commands/ecdn/waf/managed-rules/update.d.ts +1 -0
  291. package/dist/commands/ecdn/waf/migrate.d.ts +1 -0
  292. package/dist/commands/ecdn/waf/owasp/get.d.ts +1 -0
  293. package/dist/commands/ecdn/waf/owasp/update.d.ts +1 -0
  294. package/dist/commands/ecdn/waf/rules/get.d.ts +1 -0
  295. package/dist/commands/ecdn/waf/rules/list.d.ts +1 -0
  296. package/dist/commands/ecdn/waf/rules/update.d.ts +1 -0
  297. package/dist/commands/ecdn/waf/rulesets/list.d.ts +1 -0
  298. package/dist/commands/ecdn/waf/rulesets/update.d.ts +1 -0
  299. package/dist/commands/ecdn/zones/create.d.ts +1 -0
  300. package/dist/commands/ecdn/zones/list.d.ts +1 -0
  301. package/dist/commands/job/execution/delete.d.ts +1 -0
  302. package/dist/commands/job/export.d.ts +1 -0
  303. package/dist/commands/job/import-set.d.ts +1 -0
  304. package/dist/commands/job/import.d.ts +1 -0
  305. package/dist/commands/job/log.d.ts +1 -0
  306. package/dist/commands/job/run.d.ts +1 -0
  307. package/dist/commands/job/search.d.ts +1 -0
  308. package/dist/commands/job/wait.d.ts +1 -0
  309. package/dist/commands/logs/get.d.ts +1 -0
  310. package/dist/commands/logs/list.d.ts +1 -0
  311. package/dist/commands/logs/tail.d.ts +1 -0
  312. package/dist/commands/metrics/controller.d.ts +1 -0
  313. package/dist/commands/metrics/ecdn.d.ts +1 -0
  314. package/dist/commands/metrics/mrt.d.ts +1 -0
  315. package/dist/commands/metrics/ocapi.d.ts +1 -0
  316. package/dist/commands/metrics/overall.d.ts +1 -0
  317. package/dist/commands/metrics/sales.d.ts +1 -0
  318. package/dist/commands/metrics/scapi-hooks.d.ts +1 -0
  319. package/dist/commands/metrics/scapi.d.ts +1 -0
  320. package/dist/commands/metrics/third-party.d.ts +1 -0
  321. package/dist/commands/mrt/bundle/delete.d.ts +1 -0
  322. package/dist/commands/mrt/bundle/deploy.d.ts +1 -0
  323. package/dist/commands/mrt/bundle/download.d.ts +1 -0
  324. package/dist/commands/mrt/bundle/history.d.ts +1 -0
  325. package/dist/commands/mrt/bundle/list.d.ts +1 -0
  326. package/dist/commands/mrt/bundle/save.d.ts +1 -0
  327. package/dist/commands/mrt/bundle/upload-v2.d.ts +1 -0
  328. package/dist/commands/mrt/env/access-control/list.d.ts +1 -0
  329. package/dist/commands/mrt/env/b2c.d.ts +1 -0
  330. package/dist/commands/mrt/env/clone.d.ts +1 -0
  331. package/dist/commands/mrt/env/create.d.ts +1 -0
  332. package/dist/commands/mrt/env/delete.d.ts +1 -0
  333. package/dist/commands/mrt/env/get.d.ts +1 -0
  334. package/dist/commands/mrt/env/invalidate.d.ts +1 -0
  335. package/dist/commands/mrt/env/list.d.ts +1 -0
  336. package/dist/commands/mrt/env/redirect/clone.d.ts +1 -0
  337. package/dist/commands/mrt/env/redirect/create.d.ts +1 -0
  338. package/dist/commands/mrt/env/redirect/delete.d.ts +1 -0
  339. package/dist/commands/mrt/env/redirect/list.d.ts +1 -0
  340. package/dist/commands/mrt/env/update.d.ts +1 -0
  341. package/dist/commands/mrt/env/var/delete.d.ts +1 -0
  342. package/dist/commands/mrt/env/var/list.d.ts +1 -0
  343. package/dist/commands/mrt/env/var/push.d.ts +1 -0
  344. package/dist/commands/mrt/env/var/set.d.ts +1 -0
  345. package/dist/commands/mrt/org/b2c.d.ts +1 -0
  346. package/dist/commands/mrt/org/cert/create.d.ts +1 -0
  347. package/dist/commands/mrt/org/cert/delete.d.ts +1 -0
  348. package/dist/commands/mrt/org/cert/get.d.ts +1 -0
  349. package/dist/commands/mrt/org/cert/list.d.ts +1 -0
  350. package/dist/commands/mrt/org/cert/restart-validation.d.ts +1 -0
  351. package/dist/commands/mrt/org/list.d.ts +1 -0
  352. package/dist/commands/mrt/org/member/add.d.ts +1 -0
  353. package/dist/commands/mrt/org/member/get.d.ts +1 -0
  354. package/dist/commands/mrt/org/member/list.d.ts +1 -0
  355. package/dist/commands/mrt/org/member/remove.d.ts +1 -0
  356. package/dist/commands/mrt/org/member/update.d.ts +1 -0
  357. package/dist/commands/mrt/project/create.d.ts +1 -0
  358. package/dist/commands/mrt/project/delete.d.ts +1 -0
  359. package/dist/commands/mrt/project/get.d.ts +1 -0
  360. package/dist/commands/mrt/project/list.d.ts +1 -0
  361. package/dist/commands/mrt/project/member/add.d.ts +1 -0
  362. package/dist/commands/mrt/project/member/get.d.ts +1 -0
  363. package/dist/commands/mrt/project/member/list.d.ts +1 -0
  364. package/dist/commands/mrt/project/member/remove.d.ts +1 -0
  365. package/dist/commands/mrt/project/member/update.d.ts +1 -0
  366. package/dist/commands/mrt/project/notification/delete.d.ts +1 -0
  367. package/dist/commands/mrt/project/notification/get.d.ts +1 -0
  368. package/dist/commands/mrt/project/update.d.ts +1 -0
  369. package/dist/commands/mrt/save-credentials.d.ts +1 -0
  370. package/dist/commands/mrt/tail-logs.d.ts +1 -0
  371. package/dist/commands/mrt/user/api-key.d.ts +1 -0
  372. package/dist/commands/mrt/user/email-prefs.d.ts +1 -0
  373. package/dist/commands/mrt/user/profile.d.ts +1 -0
  374. package/dist/commands/scaffold/init.js +2 -1
  375. package/dist/commands/scaffold/init.js.map +1 -1
  376. package/dist/commands/scapi/custom/status.d.ts +1 -0
  377. package/dist/commands/scapi/schemas/get.d.ts +1 -0
  378. package/dist/commands/scapi/schemas/list.d.ts +1 -0
  379. package/dist/commands/setup/ide/tsserver-plugin.d.ts +1 -0
  380. package/dist/commands/setup/ide/vscode-types.d.ts +1 -0
  381. package/dist/commands/setup/index.js +4 -3
  382. package/dist/commands/setup/index.js.map +1 -1
  383. package/dist/commands/setup/inspect.d.ts +1 -0
  384. package/dist/commands/setup/inspect.js +17 -2
  385. package/dist/commands/setup/inspect.js.map +1 -1
  386. package/dist/commands/setup/instance/create.d.ts +1 -0
  387. package/dist/commands/setup/instance/list.d.ts +1 -0
  388. package/dist/commands/setup/instance/remove.d.ts +1 -0
  389. package/dist/commands/setup/instance/set-active.d.ts +1 -0
  390. package/dist/commands/setup/openshell.d.ts +1 -0
  391. package/dist/commands/setup/skills.d.ts +1 -0
  392. package/dist/commands/slas/client/create.d.ts +1 -0
  393. package/dist/commands/slas/client/delete.d.ts +1 -0
  394. package/dist/commands/slas/client/get.d.ts +1 -0
  395. package/dist/commands/slas/client/list.d.ts +1 -0
  396. package/dist/commands/slas/client/open.d.ts +1 -0
  397. package/dist/commands/slas/client/update.d.ts +1 -0
  398. package/dist/commands/slas/token.d.ts +1 -0
  399. package/dist/commands/slas/token.js +2 -1
  400. package/dist/commands/slas/token.js.map +1 -1
  401. package/dist/commands/webdav/get.d.ts +1 -0
  402. package/dist/commands/webdav/rm.d.ts +1 -0
  403. package/dist/help.d.ts +25 -0
  404. package/dist/help.js +96 -0
  405. package/dist/help.js.map +1 -0
  406. package/dist/lib/scaffold/generate-helper.js +3 -2
  407. package/dist/lib/scaffold/generate-helper.js.map +1 -1
  408. package/dist/lib/skills.d.ts +19 -0
  409. package/dist/lib/skills.js +75 -0
  410. package/dist/lib/skills.js.map +1 -0
  411. package/dist/utils/cip/command.d.ts +1 -0
  412. package/dist/utils/ecdn/zone-command.d.ts +1 -0
  413. package/dist/utils/slas/client.d.ts +1 -0
  414. package/oclif.manifest.json +21814 -18473
  415. package/package.json +11 -5
@@ -0,0 +1,458 @@
1
+ # Business Manager Extensions XML Reference
2
+
3
+ Complete reference for `bm_extensions.xml`, based on the authoritative `bmext.xsd` schema (`bmmodules/2007-12-11`).
4
+
5
+ ## XSD Schema Reference
6
+
7
+ The schema is authoritative. View it any time with the `b2c` CLI:
8
+
9
+ ```bash
10
+ # Print the BM extensions XSD
11
+ b2c docs schema bmext
12
+
13
+ # Or just its filesystem path
14
+ b2c docs schema bmext --path
15
+ ```
16
+
17
+ ## File Location & Encoding
18
+
19
+ ```
20
+ /bm_cartridge_name
21
+ /cartridge
22
+ bm_extensions.xml <-- Required file
23
+ ```
24
+
25
+ Use `ISO-8859-1` encoding to match platform samples.
26
+
27
+ ## Root Element
28
+
29
+ ```xml
30
+ <?xml version="1.0" encoding="ISO-8859-1" ?>
31
+ <extensions xmlns="http://www.demandware.com/xml/bmmodules/2007-12-11"
32
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
33
+ xsi:schemaLocation="http://www.demandware.com/xml/bmmodules/2007-12-11 bmext.xsd">
34
+ <!-- menuitem | menuaction | dialogaction | formextension (any order, any number) -->
35
+ </extensions>
36
+ ```
37
+
38
+ > The namespace is `bmmodules/2007-12-11`. The `extensibility/*` namespace is **not** the BM-extension schema — using it will not load.
39
+
40
+ ## Localized text: `LocalizedString`
41
+
42
+ `name`, `short_description`, `description`, `extended_description`, and `<label>` are **child elements** of type `LocalizedString` — a string with a **required** `xml:lang` attribute. They are not attributes and not resource-bundle keys. Localize by repeating the element:
43
+
44
+ ```xml
45
+ <name xml:lang="x-default">Product Export</name>
46
+ <name xml:lang="de">Produktexport</name>
47
+ <name xml:lang="fr">Exportation de produits</name>
48
+ ```
49
+
50
+ Because text is inline, BM extensions do **not** need a `bm_extensions.properties` resource bundle.
51
+
52
+ ## Positioning
53
+
54
+ `position` is an integer and sorts **ascending — lower numbers appear higher**. Core BM menu items run from `2000` (Products and Catalogs) to `12000` (Site Preferences). Conventions:
55
+
56
+ - `99999` (large) → sit at the bottom of a menu.
57
+ - `-1` → float a "Home" action to the very top of its section.
58
+
59
+ ## Menu Item Element
60
+
61
+ Creates a navigation container.
62
+
63
+ ```xml
64
+ <menuitem id="acme_id01" position="99999" site="false">
65
+ <name xml:lang="x-default">ACME Tools</name>
66
+ <short_description xml:lang="x-default">ACME admin tools</short_description>
67
+ <description xml:lang="x-default">Tools and utilities from the ACME team</description>
68
+ <icon>icons/acme.png</icon>
69
+ </menuitem>
70
+ ```
71
+
72
+ ### Attributes
73
+
74
+ | Attribute | Required | Default | Description |
75
+ |-----------|----------|---------|-------------|
76
+ | `id` | Yes | - | Unique identifier |
77
+ | `site` | No | `true` | `true` = site menu, `false` = Administration menu |
78
+ | `position` | No | - | Sort order (lower = higher) |
79
+ | `type` | No | `BM` | `BM` or `CSC` |
80
+
81
+ ### Child Elements (in schema order)
82
+
83
+ | Element | Required | Description |
84
+ |---------|----------|-------------|
85
+ | `<name xml:lang="...">` | Yes | Display name (repeat per locale) |
86
+ | `<short_description xml:lang="...">` | No | Short description / tooltip |
87
+ | `<description xml:lang="...">` | No | Long description |
88
+ | `<icon>path</icon>` | No | Icon path (string element, relative to `static/`) |
89
+ | `<sldsIconName>` | No | SLDS *utility* icon name; preferred in the modern BM UI |
90
+ | `<exec>` | No | Optional direct action |
91
+
92
+ ## Menu Action Element
93
+
94
+ Creates a functional page/link wired to a controller node.
95
+
96
+ ```xml
97
+ <menuaction id="acme-export" menupath="acme_id01" position="20" site="false">
98
+ <name xml:lang="x-default">Product Export</name>
99
+ <short_description xml:lang="x-default">Export products to CSV</short_description>
100
+ <exec pipeline="ACME" node="Export"/>
101
+ <sub-pipelines>
102
+ <pipeline name="ACME-Export"/>
103
+ <pipeline name="ACME-Download"/>
104
+ </sub-pipelines>
105
+ <parameters>
106
+ <parameter name="defaultFormat" value="csv"/>
107
+ </parameters>
108
+ <icon>icons/export.png</icon>
109
+ </menuaction>
110
+ ```
111
+
112
+ ### Attributes
113
+
114
+ | Attribute | Required | Default | Description |
115
+ |-----------|----------|---------|-------------|
116
+ | `id` | Yes | - | Unique identifier |
117
+ | `menupath` | No | - | Parent menu item id (yours, or a core BM id) |
118
+ | `site` | No | `true` | Must match the parent menu item |
119
+ | `position` | No | - | Sort order (lower = higher; `-1` floats to top) |
120
+ | `extern` | No | `false` | `true` opens in a new window |
121
+ | `type` | No | `BM` | `BM` or `CSC` |
122
+
123
+ ### Child Elements
124
+
125
+ | Element | Required | Description |
126
+ |---------|----------|-------------|
127
+ | `<name>` | Yes | Display name (localized) |
128
+ | `<short_description>` / `<description>` / `<extended_description>` | No | Localized descriptions |
129
+ | `<exec>` | No | Controller/pipeline entry point |
130
+ | `<sub-pipelines>` | No | All nodes used by this action (drives the permission check) |
131
+ | `<parameters>` | No | Static parameters passed to the action |
132
+ | `<icon>` | No | Icon path (string element) |
133
+
134
+ > The schema also defines `permissions` (deprecated — use `sub-pipelines`), and `apis`/`scapis`/`required-features`, but those are **not supported for custom menu actions**.
135
+
136
+ ### exec Element
137
+
138
+ ```xml
139
+ <exec pipeline="ACME" node="Export"/>
140
+ ```
141
+
142
+ | Attribute | Required | Description |
143
+ |-----------|----------|-------------|
144
+ | `pipeline` | Yes | Controller name (e.g. `ACME` → `controllers/ACME.js`) |
145
+ | `node` | Yes | Exported function name (e.g. `Export` → `exports.Export`, `.public = true`) |
146
+
147
+ There is no `https` attribute.
148
+
149
+ ### sub-pipelines and the permission check
150
+
151
+ `<sub-pipelines>` lists every `Controller-Node` the action can reach (`<pipeline name="ACME-Export"/>`). BM uses this list for its permission check: a user must have the action's module to invoke any node registered under it.
152
+
153
+ ### The `NoPermissionCheck` idiom
154
+
155
+ To expose nodes that must work **without** a module permission check (keepalive, service workers, polling/AJAX endpoints triggered by page JS), declare a menu action with the reserved id `NoPermissionCheck` and **no `<exec>`**:
156
+
157
+ ```xml
158
+ <menuaction id="NoPermissionCheck" site="false">
159
+ <name xml:lang="x-default">Dummy</name>
160
+ <short_description xml:lang="x-default">Holds pipelines that do not require a permission check</short_description>
161
+ <sub-pipelines>
162
+ <pipeline name="ACME-Keepalive"/>
163
+ <pipeline name="ACME-ServiceWorker"/>
164
+ </sub-pipelines>
165
+ </menuaction>
166
+ ```
167
+
168
+ Only list nodes that are safe for any authenticated BM user.
169
+
170
+ ## Dialog Action Element
171
+
172
+ Adds buttons/actions to existing BM pages at a defined extension point.
173
+
174
+ ```xml
175
+ <dialogaction id="acme-order-sync" xp_ref="OrderPage-OrderDetails" position="100">
176
+ <name xml:lang="x-default">Sync Order</name>
177
+ <exec pipeline="ACME" node="OrderSync"/>
178
+ <parameters>
179
+ <parameter name="OrderNo"/>
180
+ </parameters>
181
+ <menuactions>
182
+ <menuaction-ref action-id="acme-home"/>
183
+ </menuactions>
184
+ </dialogaction>
185
+ ```
186
+
187
+ ### Attributes
188
+
189
+ | Attribute | Required | Default | Description |
190
+ |-----------|----------|---------|-------------|
191
+ | `id` | Yes | - | Unique identifier |
192
+ | `xp_ref` | Yes | - | Extension point id (**underscore**, not `xp-ref`) |
193
+ | `position` | No | - | Sort order |
194
+ | `class` | No | - | Optional CSS class |
195
+ | `extern` | No | `false` | `true` opens in a new window |
196
+
197
+ ### Child Elements
198
+
199
+ | Element | Required | Description |
200
+ |---------|----------|-------------|
201
+ | `<name>` | No | Button label (localized) |
202
+ | `<exec>` | Yes | Controller/pipeline entry point |
203
+ | `<parameters>` | No | Context parameters passed from the host page (e.g. `OrderNo`) |
204
+ | `<menuactions>` | No | One or more `<menuaction-ref action-id="..."/>` linking to the menu action that owns the permission check |
205
+
206
+ > There is no `menuaction-ref` attribute and no `icon`/`extern` child element — `extern` is an attribute, and linkage is the `<menuactions>` child.
207
+
208
+ ### Common Extension Points (`xp_ref`)
209
+
210
+ | Extension Point | Page |
211
+ |-----------------|------|
212
+ | `OrderPage-OrderDetails` | Order detail page |
213
+ | `OrderPage-OrderAttributes` | Order attributes section |
214
+ | `ProductPage-General` | Product general section |
215
+ | `ProductPage-Images` | Product images section |
216
+ | `CustomerPage-Profile` | Customer profile page |
217
+ | `CustomerPage-Addresses` | Customer addresses |
218
+ | `ContentPage-General` | Content asset page |
219
+ | `CatalogPage-CategoryGeneral` | Category general section |
220
+
221
+ ## Form Extension Element
222
+
223
+ Adds fields to existing BM search forms.
224
+
225
+ ```xml
226
+ <formextension id="order-search">
227
+ <valueinput type="string" name="invoiceNumber">
228
+ <label xml:lang="x-default">Invoice Number</label>
229
+ <label xml:lang="de">Rechnungsnummer</label>
230
+ </valueinput>
231
+ <valueinput type="string" name="syncStatus" defaultvalue="">
232
+ <label xml:lang="x-default">Sync Status</label>
233
+ <option>All</option>
234
+ <option>Synced</option>
235
+ <option>Pending</option>
236
+ <option>Failed</option>
237
+ </valueinput>
238
+ <valueinput type="int" name="minQuantity">
239
+ <label xml:lang="x-default">Minimum Quantity</label>
240
+ </valueinput>
241
+ </formextension>
242
+ ```
243
+
244
+ ### formextension attributes
245
+
246
+ | Attribute | Required | Description |
247
+ |-----------|----------|-------------|
248
+ | `id` | Yes | Target form id (e.g. `order-search`, `customer-search`) |
249
+
250
+ ### valueinput attributes
251
+
252
+ | Attribute | Required | Description |
253
+ |-----------|----------|-------------|
254
+ | `type` | Yes | `string`, `int`, or `double` |
255
+ | `name` | Yes | Field name |
256
+ | `defaultvalue` | No | Default value |
257
+
258
+ ### valueinput child elements
259
+
260
+ | Element | Description |
261
+ |---------|-------------|
262
+ | `<label xml:lang="...">` | Localized label (repeatable) |
263
+ | `<option>` | Dropdown option (repeatable, optional) |
264
+
265
+ ## Complete Example
266
+
267
+ ```xml
268
+ <?xml version="1.0" encoding="ISO-8859-1" ?>
269
+ <extensions xmlns="http://www.demandware.com/xml/bmmodules/2007-12-11"
270
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
271
+ xsi:schemaLocation="http://www.demandware.com/xml/bmmodules/2007-12-11 bmext.xsd">
272
+
273
+ <!-- Administration menu container -->
274
+ <menuitem id="acme_id01" position="99999" site="false">
275
+ <name xml:lang="x-default">ACME Tools</name>
276
+ <short_description xml:lang="x-default">ACME admin tools</short_description>
277
+ <icon>icons/acme.png</icon>
278
+ </menuitem>
279
+
280
+ <!-- Home page (floats to top of the section) -->
281
+ <menuaction id="acme-home" menupath="acme_id01" position="-1" site="false">
282
+ <name xml:lang="x-default">Home</name>
283
+ <exec pipeline="ACME" node="Start"/>
284
+ <sub-pipelines>
285
+ <pipeline name="ACME-Start"/>
286
+ </sub-pipelines>
287
+ <icon>icons/acme.png</icon>
288
+ </menuaction>
289
+
290
+ <!-- Export action -->
291
+ <menuaction id="acme-export" menupath="acme_id01" position="20" site="false">
292
+ <name xml:lang="x-default">Product Export</name>
293
+ <exec pipeline="ACME" node="Export"/>
294
+ <sub-pipelines>
295
+ <pipeline name="ACME-Export"/>
296
+ </sub-pipelines>
297
+ <parameters>
298
+ <parameter name="defaultFormat" value="csv"/>
299
+ </parameters>
300
+ </menuaction>
301
+
302
+ <!-- Action attached to an existing core menu (Site Preferences) -->
303
+ <menuaction id="acme-pref" menupath="site-prefs" position="2000" site="true">
304
+ <name xml:lang="x-default">ACME Preferences</name>
305
+ <exec pipeline="ACME" node="Preferences"/>
306
+ <sub-pipelines>
307
+ <pipeline name="ACME-Preferences"/>
308
+ </sub-pipelines>
309
+ </menuaction>
310
+
311
+ <!-- Permission-free endpoints (page JS, keepalive) -->
312
+ <menuaction id="NoPermissionCheck" site="false">
313
+ <name xml:lang="x-default">Dummy</name>
314
+ <short_description xml:lang="x-default">Pipelines that do not require a permission check</short_description>
315
+ <sub-pipelines>
316
+ <pipeline name="ACME-Keepalive"/>
317
+ <pipeline name="ACME-ServiceWorker"/>
318
+ </sub-pipelines>
319
+ </menuaction>
320
+
321
+ <!-- Button on the order detail page -->
322
+ <dialogaction id="acme-order-sync" xp_ref="OrderPage-OrderDetails" position="100">
323
+ <name xml:lang="x-default">Sync Order</name>
324
+ <exec pipeline="ACME" node="OrderSync"/>
325
+ <parameters>
326
+ <parameter name="OrderNo"/>
327
+ </parameters>
328
+ <menuactions>
329
+ <menuaction-ref action-id="acme-home"/>
330
+ </menuactions>
331
+ </dialogaction>
332
+
333
+ <!-- Order search form field -->
334
+ <formextension id="order-search">
335
+ <valueinput type="string" name="acmeOrderId">
336
+ <label xml:lang="x-default">ACME Order ID</label>
337
+ </valueinput>
338
+ </formextension>
339
+
340
+ </extensions>
341
+ ```
342
+
343
+ ## Controller Template
344
+
345
+ ```javascript
346
+ 'use strict';
347
+
348
+ var ISML = require('dw/template/ISML');
349
+ var URLUtils = require('dw/web/URLUtils');
350
+ var Logger = require('dw/system/Logger');
351
+
352
+ var log = Logger.getLogger('bm', 'ACME');
353
+
354
+ /**
355
+ * Dashboard — <exec pipeline="ACME" node="Start"/>
356
+ */
357
+ function Start() {
358
+ if (!session.userAuthenticated) {
359
+ response.setStatus(403);
360
+ return;
361
+ }
362
+ ISML.renderTemplate('extensions/acme/dashboard', {
363
+ stats: calculateStats()
364
+ });
365
+ }
366
+ Start.public = true;
367
+ module.exports.Start = Start;
368
+
369
+ /**
370
+ * Process and redirect.
371
+ */
372
+ function Process() {
373
+ var action = request.httpParameterMap.action.stringValue;
374
+ try {
375
+ performAction(action);
376
+ response.redirect(URLUtils.url('ACME-Start', 'message', 'Action completed'));
377
+ } catch (e) {
378
+ log.error('Action failed: {0}', e.message);
379
+ response.redirect(URLUtils.url('ACME-Start', 'error', e.message));
380
+ }
381
+ }
382
+ Process.public = true;
383
+ module.exports.Process = Process;
384
+
385
+ /**
386
+ * Permission-free endpoint — registered under NoPermissionCheck.
387
+ */
388
+ function Keepalive() {
389
+ response.setContentType('application/json');
390
+ response.writer.print('{"ok":true}');
391
+ }
392
+ Keepalive.public = true;
393
+ module.exports.Keepalive = Keepalive;
394
+ ```
395
+
396
+ Every node referenced by `<exec>` or `<sub-pipelines>` must be exported and `.public = true`.
397
+
398
+ ## ISML Template
399
+
400
+ Decorate with `application/MenuFrame` for standard BM chrome:
401
+
402
+ ```html
403
+ <isdecorate template="application/MenuFrame">
404
+ <isinclude template="inc/Modules"/>
405
+ <div class="acme-dashboard">
406
+ <h1>ACME Dashboard</h1>
407
+
408
+ <isif condition="${request.httpParameterMap.message.submitted}">
409
+ <div class="success">${request.httpParameterMap.message.stringValue}</div>
410
+ </isif>
411
+
412
+ <table class="data">
413
+ <thead><tr><th>Metric</th><th>Value</th></tr></thead>
414
+ <tbody>
415
+ <isloop items="${pdict.stats}" var="stat">
416
+ <tr><td>${stat.label}</td><td>${stat.value}</td></tr>
417
+ </isloop>
418
+ </tbody>
419
+ </table>
420
+
421
+ <a href="${URLUtils.url('ACME-Process', 'action', 'refresh')}" class="button">Refresh</a>
422
+ </div>
423
+ </isdecorate>
424
+ ```
425
+
426
+ For a single-page-app style page, render one container template and mount your JS bundle into it instead of using `MenuFrame`.
427
+
428
+ ## Core Business Manager Menu IDs
429
+
430
+ Reference these ids in `menupath` to attach a menu action to an existing BM menu. **Do not reuse them for your own `id`** — that hides your extension. (Source: platform `bm_extensions.xml` sample; subset of the most useful.)
431
+
432
+ ### Site Menu (`site="true"`)
433
+
434
+ | Menu Item | `id` | Notable child actions (`id`) |
435
+ |-----------|------|------------------------------|
436
+ | Products and Catalogs | `prod-cat` | `prod-cat_products`, `prod-cat_catalogs`, `prod-cat_inventory`, `prod-cat_impex` |
437
+ | Content | `content` | `library_content_libraries`, `library_content`, `content_impex` |
438
+ | Search | `search` | `search_indexes`, `search_preferences`, `search_impex` |
439
+ | Online Marketing | `marketing` | `marketing_campaigns`, `marketing_promotions`, `marketing_slot`, `marketing_coupons` |
440
+ | Customers | `customers` | `customers_manage`, `customers_groups`, `customers_impex` |
441
+ | Custom Objects | `site-obj` | `site-obj_editor`, `site-obj_impex` |
442
+ | Ordering | `orders` | `orders_manage`, `orders_paymethods`, `orders_shipmethods`, `orders_export` |
443
+ | Analytics | `analytics` | `analytics_conversion`, `analytics_technical` |
444
+ | SEO | `seo` | `seo_aliases`, `seo_url-rules`, `seo_sitemaps` |
445
+ | Site Preferences | `site-prefs` | `site-prefs_custom_prefs`, `site-prefs_sitelocales`, `site-prefs_currencies` |
446
+
447
+ ### Administration Menu (`site="false"`)
448
+
449
+ | Menu Item | `id` | Notable child actions (`id`) |
450
+ |-----------|------|------------------------------|
451
+ | Replication | `global-replication` | `global-data-rep-processes`, `global-code-rep-processes` |
452
+ | Organization | `organization` | `organization_users`, `organization_roles`, `webdavclient_permissions` |
453
+ | Sites | `sites` | `sites_manage`, `cdnManager` |
454
+ | Site Development | `studio` | `studio_code_deployment`, `studio_system_obj`, `studio_custom_obj`, `wapi_settings` |
455
+ | Global Preferences | `global-prefs` | `feature_switch_manager`, `global-prefs_locales`, `global-prefs_custom_prefs` |
456
+ | Operations | `operations` | `jobschedules`, `operations_services`, `operations_customlogging`, `operations_certificates` |
457
+
458
+ To list the rest, see the platform sample or inspect a live instance's menu structure.