@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,118 @@
1
+ # Import Options
2
+
3
+ ## Import Commands
4
+
5
+ ### Import Local Directory
6
+
7
+ ```bash
8
+ # Import a local directory as a site archive (waits for completion by default)
9
+ b2c job import ./my-site-data
10
+
11
+ # Import and return immediately without waiting
12
+ b2c job import ./my-site-data --no-wait
13
+
14
+ # Import a local zip file
15
+ b2c job import ./export.zip
16
+
17
+ # Keep the archive on the instance after import
18
+ b2c job import ./my-site-data --keep-archive
19
+
20
+ # Show job log if the import fails
21
+ b2c job import ./my-site-data --show-log
22
+ ```
23
+
24
+ ### Import Remote Archive
25
+
26
+ ```bash
27
+ # Import an archive that already exists on the instance (in Impex/src/instance/)
28
+ b2c job import existing-archive.zip --remote
29
+ ```
30
+
31
+ ### Apply an Ordered, Idempotent Import Set
32
+
33
+ Use `job import-set` when site import/export archives must be applied in order and skipped after the instance records their successful import. By default, the command reads discovered cartridge metadata first and the migrations directory second. This section is a summary; for the full migration workflow — source exclusions, post-import README notes, import history, set IDs, CI/CD patterns, and recovery — use the dedicated `b2c-cli:b2c-import-set-migrations` skill.
34
+
35
+ Cartridge metadata supports two project layouts:
36
+
37
+ - A standard site import/export archive directly inside `metadata/`, applied as one archive.
38
+ - An ordered collection of immediate child directories or `.zip` files inside `metadata/`, with each child applied as one archive.
39
+
40
+ Use one layout consistently within a cartridge. Cartridges are ordered by name, their archives are ordered lexically, and every cartridge archive is considered before the explicit import-set directory. Every directory-based archive must contain at least one file; empty directory trees are rejected before upload. The explicit directory uses the ordered-child layout:
41
+
42
+ ```text
43
+ migrations/
44
+ ├── 20260801T140000-add-preferences/
45
+ │ ├── meta/
46
+ │ └── sites/
47
+ ├── 20260802T091500-seed-content.zip
48
+ └── README.md # ignored
49
+ ```
50
+
51
+ Name every archive `YYYYMMDDTHHmmss-description`, using UTC for cross-time-zone teams. The timestamp supplies ordering and helps keep archive names unique across projects.
52
+
53
+ ```bash
54
+ # Show pending and already-applied archives without writing anything
55
+ b2c job import-set --dry-run
56
+
57
+ # Apply the default ./migrations directory
58
+ b2c job import-set
59
+
60
+ # Ignore discovered cartridge metadata and apply only ./migrations
61
+ b2c job import-set --no-cartridge-metadata
62
+
63
+ # Ignore project directories recursively during source discovery
64
+ b2c job import-set --import-set-exclude fixtures --import-set-exclude test/integration
65
+
66
+ # Apply a different directory
67
+ b2c job import-set ./data-migrations
68
+
69
+ # Keep uploaded archives for inspection
70
+ b2c job import-set --keep-archive
71
+ ```
72
+
73
+ Important semantics:
74
+
75
+ - After an archive succeeds, later runs against the same instance skip it, including runs from other machines.
76
+ - The archive name determines whether it has run; changing its contents does not cause another import. Never edit an applied archive—add a new, later-sorting archive for each change.
77
+ - An interrupted run can retry its current archive. Make every archive safe to apply more than once.
78
+ - Only one runner applies a history at a time. Other runners wait and then skip work completed while they were waiting.
79
+ - An inactive run becomes recoverable after 30 minutes by default. Adjust this with `--stale-lock-seconds`; use `--break-lock` only after confirming the previous runner has stopped.
80
+ - `--timeout` applies to each archive import, `--poll-interval` controls job polling, and `--lock-poll-interval` controls waiting for another runner.
81
+ - `--import-set-exclude` can be repeated or comma-separated. Paths are relative to the project directory and exclude the named source directory and all descendants. Configure the same project default with `b2c.importSetExclude` in `package.json`, `import-set-exclude` in `dw.json`, or `SFCC_IMPORT_SET_EXCLUDE`.
82
+
83
+ The default directory is `./migrations`; it may be absent if discovered cartridges supply at least one metadata archive. The default history name is `migrations` and is shared across runs against the target instance, regardless of local path. Most users should omit `--set-id`; use it only when intentionally creating an independent history. Cartridge discovery is enabled by default; use `--no-cartridge-metadata` to opt out.
84
+
85
+ To start over without deleting the previous history, use a new set ID and keep using it on subsequent runs:
86
+
87
+ ```bash
88
+ b2c job import-set --set-id migrations-reset-20260818
89
+ ```
90
+
91
+ To reset the default history in place, remove it and rerun the import set:
92
+
93
+ ```bash
94
+ b2c webdav rm --root=impex b2c-cli/import-sets/migrations
95
+ b2c job import-set
96
+ ```
97
+
98
+ For a custom set ID, replace the final `migrations` path segment with that ID. Resetting in place permanently forgets which archives succeeded and makes every current archive pending again, so only use it when every archive is safe to reapply. `--break-lock` is for recovery and does not reset history.
99
+
100
+ ### Import Archives Larger Than the Instance Limit
101
+
102
+ An instance rejects a single import archive above its size limit (typically 200 MB). Use `--split` on a directory import to import the data in multiple smaller parts:
103
+
104
+ ```bash
105
+ # Split a large directory import into multiple archive parts
106
+ b2c job import ./big-site-data --split
107
+
108
+ # Tune the per-archive size limit (default 190mb; bare number is MiB)
109
+ b2c job import ./big-site-data --split --max-size 150mb
110
+ ```
111
+
112
+ How splitting works:
113
+
114
+ - **Metadata/XML is imported first**, kept together in one archive when it fits (so internal references and dependency ordering resolve within a single import). If the XML alone is too large, it splits at top-level data-unit boundaries (`catalogs`, `libraries`, `sites`, `meta`, …) in dependency order — never splitting a single unit.
115
+ - **Static assets** (files under a `static/` folder) are deferred into later archive parts, packed by compressed size. They attach to the catalogs/libraries created by the metadata import.
116
+ - Parts import sequentially; the command stops on the first failure.
117
+
118
+ If a single file, or a single data unit's XML, is larger than `--max-size` on its own, the command errors (a file is never split across archives). A normal directory import that exceeds the limit warns and recommends `--split`. `--split` cannot be combined with `--remote`, subset paths, or `--no-wait`.
@@ -0,0 +1,381 @@
1
+ # Metadata XML Patterns
2
+
3
+ Common XML patterns for site archive imports.
4
+
5
+ ## XSD Schema Reference
6
+
7
+ For authoritative XML schema definitions, use the `b2c` CLI (if installed):
8
+
9
+ ```bash
10
+ # View the metadata XSD schema
11
+ b2c docs schema metadata
12
+
13
+ # List all available schemas
14
+ b2c docs schema --list
15
+ ```
16
+
17
+ ## Other Import Formats
18
+
19
+ For service configurations (HTTP services, credentials, profiles), see the `b2c:b2c-webservices` skill.
20
+
21
+ ## System Object Extensions
22
+
23
+ ### Add String Attribute to Product
24
+
25
+ ```xml
26
+ <?xml version="1.0" encoding="UTF-8"?>
27
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
28
+ <type-extension type-id="Product">
29
+ <custom-attribute-definitions>
30
+ <attribute-definition attribute-id="externalId">
31
+ <display-name xml:lang="x-default">External ID</display-name>
32
+ <type>string</type>
33
+ <mandatory-flag>false</mandatory-flag>
34
+ <externally-managed-flag>true</externally-managed-flag>
35
+ <max-length>100</max-length>
36
+ </attribute-definition>
37
+ </custom-attribute-definitions>
38
+ <group-definitions>
39
+ <attribute-group group-id="ExternalData">
40
+ <display-name xml:lang="x-default">External Data</display-name>
41
+ <attribute attribute-id="externalId"/>
42
+ </attribute-group>
43
+ </group-definitions>
44
+ </type-extension>
45
+ </metadata>
46
+ ```
47
+
48
+ ### Add Enum Attribute to Order
49
+
50
+ ```xml
51
+ <?xml version="1.0" encoding="UTF-8"?>
52
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
53
+ <type-extension type-id="Order">
54
+ <custom-attribute-definitions>
55
+ <attribute-definition attribute-id="fulfillmentStatus">
56
+ <display-name xml:lang="x-default">Fulfillment Status</display-name>
57
+ <type>enum-of-string</type>
58
+ <mandatory-flag>false</mandatory-flag>
59
+ <value-definitions>
60
+ <value-definition default="true">
61
+ <display xml:lang="x-default">Pending</display>
62
+ <value>pending</value>
63
+ </value-definition>
64
+ <value-definition>
65
+ <display xml:lang="x-default">Processing</display>
66
+ <value>processing</value>
67
+ </value-definition>
68
+ <value-definition>
69
+ <display xml:lang="x-default">Shipped</display>
70
+ <value>shipped</value>
71
+ </value-definition>
72
+ <value-definition>
73
+ <display xml:lang="x-default">Delivered</display>
74
+ <value>delivered</value>
75
+ </value-definition>
76
+ </value-definitions>
77
+ </attribute-definition>
78
+ </custom-attribute-definitions>
79
+ <group-definitions>
80
+ <attribute-group group-id="FulfillmentInfo">
81
+ <display-name xml:lang="x-default">Fulfillment Info</display-name>
82
+ <attribute attribute-id="fulfillmentStatus"/>
83
+ </attribute-group>
84
+ </group-definitions>
85
+ </type-extension>
86
+ </metadata>
87
+ ```
88
+
89
+ ### Add Boolean Attribute to Customer Profile
90
+
91
+ ```xml
92
+ <?xml version="1.0" encoding="UTF-8"?>
93
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
94
+ <type-extension type-id="Profile">
95
+ <custom-attribute-definitions>
96
+ <attribute-definition attribute-id="marketingOptIn">
97
+ <display-name xml:lang="x-default">Marketing Opt-In</display-name>
98
+ <type>boolean</type>
99
+ <mandatory-flag>false</mandatory-flag>
100
+ <default-value>false</default-value>
101
+ </attribute-definition>
102
+ <attribute-definition attribute-id="loyaltyMember">
103
+ <display-name xml:lang="x-default">Loyalty Member</display-name>
104
+ <type>boolean</type>
105
+ <mandatory-flag>false</mandatory-flag>
106
+ <default-value>false</default-value>
107
+ </attribute-definition>
108
+ </custom-attribute-definitions>
109
+ </type-extension>
110
+ </metadata>
111
+ ```
112
+
113
+ ## Site Preferences
114
+
115
+ ### Boolean Preference
116
+
117
+ ```xml
118
+ <?xml version="1.0" encoding="UTF-8"?>
119
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
120
+ <type-extension type-id="SitePreferences">
121
+ <custom-attribute-definitions>
122
+ <attribute-definition attribute-id="enableReviews">
123
+ <display-name xml:lang="x-default">Enable Product Reviews</display-name>
124
+ <type>boolean</type>
125
+ <default-value>true</default-value>
126
+ </attribute-definition>
127
+ </custom-attribute-definitions>
128
+ </type-extension>
129
+ </metadata>
130
+ ```
131
+
132
+ ### String Preference (API Key)
133
+
134
+ ```xml
135
+ <?xml version="1.0" encoding="UTF-8"?>
136
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
137
+ <type-extension type-id="SitePreferences">
138
+ <custom-attribute-definitions>
139
+ <attribute-definition attribute-id="analyticsApiKey">
140
+ <display-name xml:lang="x-default">Analytics API Key</display-name>
141
+ <type>password</type>
142
+ </attribute-definition>
143
+ <attribute-definition attribute-id="analyticsEndpoint">
144
+ <display-name xml:lang="x-default">Analytics Endpoint</display-name>
145
+ <type>string</type>
146
+ </attribute-definition>
147
+ </custom-attribute-definitions>
148
+ <group-definitions>
149
+ <attribute-group group-id="AnalyticsSettings">
150
+ <display-name xml:lang="x-default">Analytics Settings</display-name>
151
+ <attribute attribute-id="analyticsApiKey"/>
152
+ <attribute attribute-id="analyticsEndpoint"/>
153
+ </attribute-group>
154
+ </group-definitions>
155
+ </type-extension>
156
+ </metadata>
157
+ ```
158
+
159
+ ### Preference Values
160
+
161
+ **sites/RefArch/preferences.xml:**
162
+
163
+ Preferences can be set per instance type:
164
+
165
+ ```xml
166
+ <?xml version="1.0" encoding="UTF-8"?>
167
+ <preferences xmlns="http://www.demandware.com/xml/impex/preferences/2007-03-31">
168
+ <custom-preferences>
169
+ <all-instances>
170
+ <preference preference-id="enableReviews">true</preference>
171
+ </all-instances>
172
+ <development>
173
+ <preference preference-id="analyticsEndpoint">https://dev-analytics.example.com/api</preference>
174
+ </development>
175
+ <production>
176
+ <preference preference-id="analyticsEndpoint">https://analytics.example.com/api</preference>
177
+ </production>
178
+ </custom-preferences>
179
+ </preferences>
180
+ ```
181
+
182
+ ## Custom Object Types
183
+
184
+ ### Simple Custom Object
185
+
186
+ ```xml
187
+ <?xml version="1.0" encoding="UTF-8"?>
188
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
189
+ <custom-type type-id="Banner">
190
+ <display-name xml:lang="x-default">Banner</display-name>
191
+ <staging-mode>source-to-target</staging-mode>
192
+ <storage-scope>site</storage-scope>
193
+ <key-definition attribute-id="bannerId">
194
+ <display-name xml:lang="x-default">Banner ID</display-name>
195
+ <type>string</type>
196
+ <min-length>1</min-length>
197
+ </key-definition>
198
+ <attribute-definitions>
199
+ <attribute-definition attribute-id="title">
200
+ <display-name xml:lang="x-default">Title</display-name>
201
+ <type>string</type>
202
+ </attribute-definition>
203
+ <attribute-definition attribute-id="imageUrl">
204
+ <display-name xml:lang="x-default">Image URL</display-name>
205
+ <type>string</type>
206
+ </attribute-definition>
207
+ <attribute-definition attribute-id="linkUrl">
208
+ <display-name xml:lang="x-default">Link URL</display-name>
209
+ <type>string</type>
210
+ </attribute-definition>
211
+ <attribute-definition attribute-id="startDate">
212
+ <display-name xml:lang="x-default">Start Date</display-name>
213
+ <type>datetime</type>
214
+ </attribute-definition>
215
+ <attribute-definition attribute-id="endDate">
216
+ <display-name xml:lang="x-default">End Date</display-name>
217
+ <type>datetime</type>
218
+ </attribute-definition>
219
+ <attribute-definition attribute-id="isActive">
220
+ <display-name xml:lang="x-default">Active</display-name>
221
+ <type>boolean</type>
222
+ <default-value>true</default-value>
223
+ </attribute-definition>
224
+ </attribute-definitions>
225
+ </custom-type>
226
+ </metadata>
227
+ ```
228
+
229
+ ### Custom Object Data
230
+
231
+ **customobjects/Banner.xml:**
232
+ ```xml
233
+ <?xml version="1.0" encoding="UTF-8"?>
234
+ <custom-objects xmlns="http://www.demandware.com/xml/impex/customobject/2006-10-31">
235
+ <custom-object type-id="Banner" object-id="homepage-hero">
236
+ <object-attribute attribute-id="title">Summer Sale</object-attribute>
237
+ <object-attribute attribute-id="imageUrl">/images/banners/summer-sale.jpg</object-attribute>
238
+ <object-attribute attribute-id="linkUrl">/sale</object-attribute>
239
+ <object-attribute attribute-id="startDate">2024-06-01T00:00:00.000Z</object-attribute>
240
+ <object-attribute attribute-id="endDate">2024-08-31T23:59:59.000Z</object-attribute>
241
+ <object-attribute attribute-id="isActive">true</object-attribute>
242
+ </custom-object>
243
+ <custom-object type-id="Banner" object-id="promo-banner">
244
+ <object-attribute attribute-id="title">Free Shipping</object-attribute>
245
+ <object-attribute attribute-id="imageUrl">/images/banners/free-shipping.jpg</object-attribute>
246
+ <object-attribute attribute-id="linkUrl">/shipping-info</object-attribute>
247
+ <object-attribute attribute-id="isActive">true</object-attribute>
248
+ </custom-object>
249
+ </custom-objects>
250
+ ```
251
+
252
+ ## Content Assets
253
+
254
+ **sites/RefArch/library/content/content.xml:**
255
+ ```xml
256
+ <?xml version="1.0" encoding="UTF-8"?>
257
+ <library xmlns="http://www.demandware.com/xml/impex/library/2006-10-31">
258
+ <content content-id="terms-conditions">
259
+ <display-name xml:lang="x-default">Terms and Conditions</display-name>
260
+ <online-flag>true</online-flag>
261
+ <searchable-flag>false</searchable-flag>
262
+ <custom-attributes>
263
+ <custom-attribute attribute-id="body" xml:lang="x-default">
264
+ <![CDATA[<h1>Terms and Conditions</h1><p>Content here...</p>]]>
265
+ </custom-attribute>
266
+ </custom-attributes>
267
+ </content>
268
+ </library>
269
+ ```
270
+
271
+ ## Attribute Types Reference
272
+
273
+ | Type | XML Value | Example |
274
+ |------|-----------|---------|
275
+ | `string` | `<type>string</type>` | Text up to 4000 chars |
276
+ | `text` | `<type>text</type>` | Unlimited text |
277
+ | `int` | `<type>int</type>` | Whole numbers |
278
+ | `double` | `<type>double</type>` | Decimal numbers |
279
+ | `boolean` | `<type>boolean</type>` | true/false |
280
+ | `date` | `<type>date</type>` | Date only |
281
+ | `datetime` | `<type>datetime</type>` | Date and time |
282
+ | `email` | `<type>email</type>` | Email format |
283
+ | `password` | `<type>password</type>` | Encrypted |
284
+ | `html` | `<type>html</type>` | HTML content |
285
+ | `image` | `<type>image</type>` | Image reference |
286
+ | `enum-of-string` | `<type>enum-of-string</type>` | Single select |
287
+ | `set-of-string` | `<type>set-of-string</type>` | Multi-select |
288
+
289
+ ## Complete Import Example
290
+
291
+ Directory structure for adding a custom integration:
292
+
293
+ ```
294
+ integration-import/
295
+ ├── meta/
296
+ │ ├── system-objecttype-extensions.xml
297
+ │ └── custom-objecttype-definitions.xml
298
+ ├── sites/
299
+ │ └── RefArch/
300
+ │ └── preferences.xml
301
+ └── customobjects/
302
+ └── IntegrationConfig.xml
303
+ ```
304
+
305
+ **meta/system-objecttype-extensions.xml:**
306
+ ```xml
307
+ <?xml version="1.0" encoding="UTF-8"?>
308
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
309
+ <type-extension type-id="SitePreferences">
310
+ <custom-attribute-definitions>
311
+ <attribute-definition attribute-id="integrationEnabled">
312
+ <display-name xml:lang="x-default">Enable Integration</display-name>
313
+ <type>boolean</type>
314
+ <default-value>false</default-value>
315
+ </attribute-definition>
316
+ </custom-attribute-definitions>
317
+ </type-extension>
318
+ <type-extension type-id="Order">
319
+ <custom-attribute-definitions>
320
+ <attribute-definition attribute-id="integrationId">
321
+ <display-name xml:lang="x-default">Integration ID</display-name>
322
+ <type>string</type>
323
+ <externally-managed-flag>true</externally-managed-flag>
324
+ </attribute-definition>
325
+ </custom-attribute-definitions>
326
+ </type-extension>
327
+ </metadata>
328
+ ```
329
+
330
+ **meta/custom-objecttype-definitions.xml:**
331
+ ```xml
332
+ <?xml version="1.0" encoding="UTF-8"?>
333
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
334
+ <custom-type type-id="IntegrationConfig">
335
+ <display-name xml:lang="x-default">Integration Configuration</display-name>
336
+ <staging-mode>source-to-target</staging-mode>
337
+ <storage-scope>organization</storage-scope>
338
+ <key-definition attribute-id="configKey">
339
+ <display-name xml:lang="x-default">Config Key</display-name>
340
+ <type>string</type>
341
+ </key-definition>
342
+ <attribute-definitions>
343
+ <attribute-definition attribute-id="endpoint">
344
+ <display-name xml:lang="x-default">Endpoint</display-name>
345
+ <type>string</type>
346
+ </attribute-definition>
347
+ <attribute-definition attribute-id="apiKey">
348
+ <display-name xml:lang="x-default">API Key</display-name>
349
+ <type>password</type>
350
+ </attribute-definition>
351
+ </attribute-definitions>
352
+ </custom-type>
353
+ </metadata>
354
+ ```
355
+
356
+ **sites/RefArch/preferences.xml:**
357
+ ```xml
358
+ <?xml version="1.0" encoding="UTF-8"?>
359
+ <preferences xmlns="http://www.demandware.com/xml/impex/preferences/2007-03-31">
360
+ <custom-preferences>
361
+ <all-instances>
362
+ <preference preference-id="integrationEnabled">true</preference>
363
+ </all-instances>
364
+ </custom-preferences>
365
+ </preferences>
366
+ ```
367
+
368
+ **customobjects/IntegrationConfig.xml:**
369
+ ```xml
370
+ <?xml version="1.0" encoding="UTF-8"?>
371
+ <custom-objects xmlns="http://www.demandware.com/xml/impex/customobject/2006-10-31">
372
+ <custom-object type-id="IntegrationConfig" object-id="production">
373
+ <object-attribute attribute-id="endpoint">https://api.integration.com/v1</object-attribute>
374
+ </custom-object>
375
+ </custom-objects>
376
+ ```
377
+
378
+ Import command:
379
+ ```bash
380
+ b2c job import ./integration-import --wait --show-log
381
+ ```
@@ -0,0 +1,182 @@
1
+ # Archive Workflows
2
+
3
+ ## Common Workflows
4
+
5
+ ### Adding a Custom Attribute to Products
6
+
7
+ 1. Create the metadata XML file:
8
+
9
+ **meta/system-objecttype-extensions.xml:**
10
+
11
+ ```xml
12
+ <?xml version="1.0" encoding="UTF-8"?>
13
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
14
+ <type-extension type-id="Product">
15
+ <custom-attribute-definitions>
16
+ <attribute-definition attribute-id="vendorSKU">
17
+ <display-name xml:lang="x-default">Vendor SKU</display-name>
18
+ <type>string</type>
19
+ <mandatory-flag>false</mandatory-flag>
20
+ <externally-managed-flag>true</externally-managed-flag>
21
+ </attribute-definition>
22
+ </custom-attribute-definitions>
23
+ <group-definitions>
24
+ <attribute-group group-id="CustomAttributes">
25
+ <display-name xml:lang="x-default">Custom Attributes</display-name>
26
+ <attribute attribute-id="vendorSKU"/>
27
+ </attribute-group>
28
+ </group-definitions>
29
+ </type-extension>
30
+ </metadata>
31
+ ```
32
+
33
+ 2. Create the directory structure:
34
+
35
+ ```
36
+ my-import/
37
+ └── meta/
38
+ └── system-objecttype-extensions.xml
39
+ ```
40
+
41
+ 3. Import:
42
+
43
+ ```bash
44
+ b2c job import ./my-import
45
+ ```
46
+
47
+ ### Adding Site Preferences
48
+
49
+ 1. Create metadata for the preference:
50
+
51
+ **meta/system-objecttype-extensions.xml:**
52
+
53
+ ```xml
54
+ <?xml version="1.0" encoding="UTF-8"?>
55
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
56
+ <type-extension type-id="SitePreferences">
57
+ <custom-attribute-definitions>
58
+ <attribute-definition attribute-id="enableFeatureX">
59
+ <display-name xml:lang="x-default">Enable Feature X</display-name>
60
+ <type>boolean</type>
61
+ <default-value>false</default-value>
62
+ </attribute-definition>
63
+ </custom-attribute-definitions>
64
+ </type-extension>
65
+ </metadata>
66
+ ```
67
+
68
+ 2. Create preference values:
69
+
70
+ **sites/MySite/preferences.xml:**
71
+
72
+ ```xml
73
+ <?xml version="1.0" encoding="UTF-8"?>
74
+ <preferences xmlns="http://www.demandware.com/xml/impex/preferences/2007-03-31">
75
+ <custom-preferences>
76
+ <all-instances>
77
+ <preference preference-id="enableFeatureX">true</preference>
78
+ </all-instances>
79
+ </custom-preferences>
80
+ </preferences>
81
+ ```
82
+
83
+ 3. Directory structure:
84
+
85
+ ```
86
+ my-import/
87
+ ├── meta/
88
+ │ └── system-objecttype-extensions.xml
89
+ └── sites/
90
+ └── MySite/
91
+ └── preferences.xml
92
+ ```
93
+
94
+ 4. Import:
95
+
96
+ ```bash
97
+ b2c job import ./my-import
98
+ ```
99
+
100
+ ### Creating a Custom Object Type
101
+
102
+ 1. Define the custom object:
103
+
104
+ **meta/custom-objecttype-definitions.xml:**
105
+
106
+ ```xml
107
+ <?xml version="1.0" encoding="UTF-8"?>
108
+ <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31">
109
+ <custom-type type-id="APIConfiguration">
110
+ <display-name xml:lang="x-default">API Configuration</display-name>
111
+ <staging-mode>source-to-target</staging-mode>
112
+ <storage-scope>site</storage-scope>
113
+ <key-definition attribute-id="configId">
114
+ <display-name xml:lang="x-default">Config ID</display-name>
115
+ <type>string</type>
116
+ <min-length>1</min-length>
117
+ </key-definition>
118
+ <attribute-definitions>
119
+ <attribute-definition attribute-id="endpoint">
120
+ <display-name xml:lang="x-default">API Endpoint</display-name>
121
+ <type>string</type>
122
+ </attribute-definition>
123
+ <attribute-definition attribute-id="apiKey">
124
+ <display-name xml:lang="x-default">API Key</display-name>
125
+ <type>password</type>
126
+ </attribute-definition>
127
+ <attribute-definition attribute-id="isActive">
128
+ <display-name xml:lang="x-default">Active</display-name>
129
+ <type>boolean</type>
130
+ <default-value>true</default-value>
131
+ </attribute-definition>
132
+ </attribute-definitions>
133
+ </custom-type>
134
+ </metadata>
135
+ ```
136
+
137
+ 2. Import:
138
+
139
+ ```bash
140
+ b2c job import ./my-import
141
+ ```
142
+
143
+ ### Importing Custom Object Data
144
+
145
+ **customobjects/APIConfiguration.xml:**
146
+
147
+ ```xml
148
+ <?xml version="1.0" encoding="UTF-8"?>
149
+ <custom-objects xmlns="http://www.demandware.com/xml/impex/customobject/2006-10-31">
150
+ <custom-object type-id="APIConfiguration" object-id="payment-gateway">
151
+ <object-attribute attribute-id="endpoint">https://api.payment.com/v2</object-attribute>
152
+ <object-attribute attribute-id="isActive">true</object-attribute>
153
+ </custom-object>
154
+ </custom-objects>
155
+ ```
156
+
157
+ ## Site Archive Structure
158
+
159
+ ```
160
+ site-archive/
161
+ ├── services.xml # Service configurations (credentials, profiles, services)
162
+ ├── meta/
163
+ │ ├── system-objecttype-extensions.xml # Custom attributes on system objects
164
+ │ └── custom-objecttype-definitions.xml # Custom object type definitions
165
+ ├── sites/
166
+ │ └── {SiteID}/
167
+ │ ├── preferences.xml # Site preference values
168
+ │ └── library/
169
+ │ └── content/
170
+ │ └── content.xml # Content assets
171
+ ├── catalogs/
172
+ │ └── {CatalogID}/
173
+ │ └── catalog.xml # Products and categories
174
+ ├── pricebooks/
175
+ │ └── {PriceBookID}/
176
+ │ └── pricebook.xml # Price definitions
177
+ ├── customobjects/
178
+ │ └── {ObjectTypeID}.xml # Custom object instances
179
+ └── inventory-lists/
180
+ └── {InventoryListID}/
181
+ └── inventory.xml # Inventory records
182
+ ```