@salesforce/b2c-cli 2.3.0 → 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.
- package/bin/dev.js +8 -8
- package/bin/run.js +5 -7
- package/content/guidance/b2c/b2c-business-manager-extensions/SKILL.md +361 -0
- package/content/guidance/b2c/b2c-business-manager-extensions/references/EXTENSIONS-XML.md +458 -0
- package/content/guidance/b2c/b2c-controllers/SKILL.md +301 -0
- package/content/guidance/b2c/b2c-controllers/references/CLASSIC-PATTERNS.md +335 -0
- package/content/guidance/b2c/b2c-controllers/references/SFRA-PATTERNS.md +400 -0
- package/content/guidance/b2c/b2c-custom-api-development/SKILL.md +281 -0
- package/content/guidance/b2c/b2c-custom-api-development/references/CONTRACT.md +142 -0
- package/content/guidance/b2c/b2c-custom-api-development/references/IMPLEMENTATION.md +153 -0
- package/content/guidance/b2c/b2c-custom-api-development/references/TESTING.md +118 -0
- package/content/guidance/b2c/b2c-custom-caches/SKILL.md +279 -0
- package/content/guidance/b2c/b2c-custom-job-steps/SKILL.md +520 -0
- package/content/guidance/b2c/b2c-custom-job-steps/references/CHUNK-ORIENTED.md +377 -0
- package/content/guidance/b2c/b2c-custom-job-steps/references/JOBS-XML.md +212 -0
- package/content/guidance/b2c/b2c-custom-job-steps/references/STEPTYPES-JSON.md +373 -0
- package/content/guidance/b2c/b2c-custom-job-steps/references/TASK-ORIENTED.md +344 -0
- package/content/guidance/b2c/b2c-custom-objects/SKILL.md +327 -0
- package/content/guidance/b2c/b2c-custom-objects/references/OCAPI-SEARCH.md +298 -0
- package/content/guidance/b2c/b2c-forms/SKILL.md +242 -0
- package/content/guidance/b2c/b2c-forms/references/FORM-XML.md +409 -0
- package/content/guidance/b2c/b2c-hooks/SKILL.md +500 -0
- package/content/guidance/b2c/b2c-hooks/references/OCAPI-SCAPI-HOOKS.md +403 -0
- package/content/guidance/b2c/b2c-hooks/references/ORDER-HOOK-LIFECYCLE.md +169 -0
- package/content/guidance/b2c/b2c-hooks/references/SYSTEM-HOOKS.md +433 -0
- package/content/guidance/b2c/b2c-isml/SKILL.md +320 -0
- package/content/guidance/b2c/b2c-isml/references/EXPRESSIONS.md +366 -0
- package/content/guidance/b2c/b2c-isml/references/TAGS.md +443 -0
- package/content/guidance/b2c/b2c-localization/SKILL.md +344 -0
- package/content/guidance/b2c/b2c-localization/references/PATTERNS.md +407 -0
- package/content/guidance/b2c/b2c-logging/SKILL.md +352 -0
- package/content/guidance/b2c/b2c-logging/references/LOG-FILES.md +282 -0
- package/content/guidance/b2c/b2c-metadata/SKILL.md +406 -0
- package/content/guidance/b2c/b2c-metadata/references/SYSTEM-OBJECTS.md +320 -0
- package/content/guidance/b2c/b2c-metadata/references/XML-EXAMPLES.md +366 -0
- package/content/guidance/b2c/b2c-onboarding/SKILL.md +154 -0
- package/content/guidance/b2c/b2c-ordering/SKILL.md +391 -0
- package/content/guidance/b2c/b2c-page-designer/SKILL.md +410 -0
- package/content/guidance/b2c/b2c-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
- package/content/guidance/b2c/b2c-page-designer/references/META-DEFINITIONS.md +340 -0
- package/content/guidance/b2c/b2c-querying-data/SKILL.md +289 -0
- package/content/guidance/b2c/b2c-querying-data/references/PERFORMANCE-APIS.md +74 -0
- package/content/guidance/b2c/b2c-scapi-admin/SKILL.md +53 -0
- package/content/guidance/b2c/b2c-scapi-admin/references/CLIENT-EXAMPLES.md +440 -0
- package/content/guidance/b2c/b2c-scapi-admin/references/INTEGRATION-PATTERNS.md +518 -0
- package/content/guidance/b2c/b2c-scapi-admin/references/OAUTH-SCOPES.md +337 -0
- package/content/guidance/b2c/b2c-scapi-shopper/SKILL.md +56 -0
- package/content/guidance/b2c/b2c-scapi-shopper/references/CHECKOUT-FLOW.md +466 -0
- package/content/guidance/b2c/b2c-scapi-shopper/references/CLIENT-EXAMPLES.md +351 -0
- package/content/guidance/b2c/b2c-scapi-shopper/references/COMMON-PATTERNS.md +390 -0
- package/content/guidance/b2c/b2c-scapi-shopper/references/SCOPES.md +290 -0
- package/content/guidance/b2c/b2c-slas-auth-patterns/SKILL.md +420 -0
- package/content/guidance/b2c/b2c-slas-auth-patterns/references/PASSKEYS.md +126 -0
- package/content/guidance/b2c/b2c-slas-auth-patterns/references/SESSION-BRIDGE.md +267 -0
- package/content/guidance/b2c/b2c-slas-auth-patterns/references/TOKEN-LIFECYCLE.md +367 -0
- package/content/guidance/b2c/b2c-webservices/SKILL.md +318 -0
- package/content/guidance/b2c/b2c-webservices/references/FTP-SERVICES.md +524 -0
- package/content/guidance/b2c/b2c-webservices/references/HTTP-SERVICES.md +578 -0
- package/content/guidance/b2c/b2c-webservices/references/SERVICES-XML.md +351 -0
- package/content/guidance/b2c/b2c-webservices/references/SOAP-SERVICES.md +587 -0
- package/content/guidance/b2c-cli/b2c-am/SKILL.md +277 -0
- package/content/guidance/b2c-cli/b2c-bm-users-roles/SKILL.md +210 -0
- package/content/guidance/b2c-cli/b2c-cap/SKILL.md +131 -0
- package/content/guidance/b2c-cli/b2c-cip/SKILL.md +116 -0
- package/content/guidance/b2c-cli/b2c-cip/references/KNOWN_TABLES.md +105 -0
- package/content/guidance/b2c-cli/b2c-cip/references/SALES_ANALYSIS.md +50 -0
- package/content/guidance/b2c-cli/b2c-cip/references/STARTER_QUERIES.md +147 -0
- package/content/guidance/b2c-cli/b2c-code/SKILL.md +146 -0
- package/content/guidance/b2c-cli/b2c-config/SKILL.md +462 -0
- package/content/guidance/b2c-cli/b2c-content/SKILL.md +176 -0
- package/content/guidance/b2c-cli/b2c-debug/SKILL.md +138 -0
- package/content/guidance/b2c-cli/b2c-docs/SKILL.md +301 -0
- package/content/guidance/b2c-cli/b2c-ecdn/SKILL.md +135 -0
- package/content/guidance/b2c-cli/b2c-ecdn/references/ADVANCED.md +97 -0
- package/content/guidance/b2c-cli/b2c-ecdn/references/SECURITY.md +75 -0
- package/content/guidance/b2c-cli/b2c-import-set-migrations/SKILL.md +265 -0
- package/content/guidance/b2c-cli/b2c-job/SKILL.md +64 -0
- package/content/guidance/b2c-cli/b2c-job/references/EXPORT.md +121 -0
- package/content/guidance/b2c-cli/b2c-job/references/IMPORT.md +55 -0
- package/content/guidance/b2c-cli/b2c-job/references/RUN-AND-MONITOR.md +119 -0
- package/content/guidance/b2c-cli/b2c-logs/SKILL.md +249 -0
- package/content/guidance/b2c-cli/b2c-metrics/SKILL.md +315 -0
- package/content/guidance/b2c-cli/b2c-mrt/SKILL.md +207 -0
- package/content/guidance/b2c-cli/b2c-mrt/references/BUNDLE-COMMANDS.md +203 -0
- package/content/guidance/b2c-cli/b2c-mrt/references/ENVIRONMENT-COMMANDS.md +218 -0
- package/content/guidance/b2c-cli/b2c-mrt/references/PROJECT-COMMANDS.md +154 -0
- package/content/guidance/b2c-cli/b2c-sandbox/SKILL.md +112 -0
- package/content/guidance/b2c-cli/b2c-scapi-custom/SKILL.md +126 -0
- package/content/guidance/b2c-cli/b2c-scapi-schemas/SKILL.md +66 -0
- package/content/guidance/b2c-cli/b2c-scapi-schemas/references/CLI-EXAMPLES.md +108 -0
- package/content/guidance/b2c-cli/b2c-site-import-export/SKILL.md +57 -0
- package/content/guidance/b2c-cli/b2c-site-import-export/references/IMPORT-OPTIONS.md +118 -0
- package/content/guidance/b2c-cli/b2c-site-import-export/references/METADATA-XML.md +381 -0
- package/content/guidance/b2c-cli/b2c-site-import-export/references/WORKFLOWS.md +182 -0
- package/content/guidance/b2c-cli/b2c-sites/SKILL.md +112 -0
- package/content/guidance/b2c-cli/b2c-slas/SKILL.md +182 -0
- package/content/guidance/b2c-cli/b2c-webdav/SKILL.md +186 -0
- package/content/guidance/b2c-ops/b2c-checkout-triage/SKILL.md +68 -0
- package/content/guidance/b2c-ops/b2c-job-health/SKILL.md +75 -0
- package/content/guidance/b2c-ops/b2c-job-health/references/job-logs.md +21 -0
- package/content/guidance/b2c-ops/b2c-order-failure-triage/SKILL.md +66 -0
- package/content/guidance/b2c-ops/b2c-order-failure-triage/references/order-evidence.md +87 -0
- package/content/guidance/b2c-ops/b2c-production-triage/SKILL.md +87 -0
- package/content/guidance/b2c-ops/b2c-production-triage/references/escalation.md +57 -0
- package/content/guidance/index.json +1949 -0
- package/content/guidance/storefront-next/sfnext-accessibility/SKILL.md +103 -0
- package/content/guidance/storefront-next/sfnext-accessibility/references/checklist.md +64 -0
- package/content/guidance/storefront-next/sfnext-analytics-consent/SKILL.md +91 -0
- package/content/guidance/storefront-next/sfnext-analytics-consent/references/CUSTOM-ADAPTER.md +49 -0
- package/content/guidance/storefront-next/sfnext-authentication/SKILL.md +127 -0
- package/content/guidance/storefront-next/sfnext-authentication/references/COOKIES.md +39 -0
- package/content/guidance/storefront-next/sfnext-authentication/references/LOGIN-FLOWS.md +59 -0
- package/content/guidance/storefront-next/sfnext-commerce-features/SKILL.md +67 -0
- package/content/guidance/storefront-next/sfnext-commerce-features/references/FEATURE-PREREQUISITES.md +37 -0
- package/content/guidance/storefront-next/sfnext-components/SKILL.md +153 -0
- package/content/guidance/storefront-next/sfnext-components/references/COMPONENT-AUTHORING.md +118 -0
- package/content/guidance/storefront-next/sfnext-components/references/SHAPE-TOKENS.md +51 -0
- package/content/guidance/storefront-next/sfnext-components/references/STORYBOOK.md +54 -0
- package/content/guidance/storefront-next/sfnext-components/references/TOKEN-SYSTEM.md +53 -0
- package/content/guidance/storefront-next/sfnext-components/references/TROUBLESHOOTING.md +19 -0
- package/content/guidance/storefront-next/sfnext-configuration/SKILL.md +163 -0
- package/content/guidance/storefront-next/sfnext-configuration/references/ENV-VARIABLES.md +55 -0
- package/content/guidance/storefront-next/sfnext-configuration/references/MULTI-SITE-URLS.md +137 -0
- package/content/guidance/storefront-next/sfnext-data-fetching/SKILL.md +140 -0
- package/content/guidance/storefront-next/sfnext-data-fetching/references/ACTIONS.md +53 -0
- package/content/guidance/storefront-next/sfnext-data-fetching/references/API-CLIENTS.md +34 -0
- package/content/guidance/storefront-next/sfnext-data-fetching/references/LOADERS.md +73 -0
- package/content/guidance/storefront-next/sfnext-data-fetching/references/SCAPI-FETCHER.md +39 -0
- package/content/guidance/storefront-next/sfnext-deployment/SKILL.md +127 -0
- package/content/guidance/storefront-next/sfnext-deployment/references/MRT-DEPLOYMENT.md +59 -0
- package/content/guidance/storefront-next/sfnext-extensions/SKILL.md +118 -0
- package/content/guidance/storefront-next/sfnext-extensions/references/ACTION-HOOKS.md +57 -0
- package/content/guidance/storefront-next/sfnext-extensions/references/BASE-AUDIT.md +68 -0
- package/content/guidance/storefront-next/sfnext-extensions/references/CLI-AND-INSTALL.md +58 -0
- package/content/guidance/storefront-next/sfnext-extensions/references/EXTENSION-EXAMPLES.md +79 -0
- package/content/guidance/storefront-next/sfnext-hybrid-storefronts/SKILL.md +93 -0
- package/content/guidance/storefront-next/sfnext-hybrid-storefronts/references/HYBRID-PROXY-CONFIG.md +86 -0
- package/content/guidance/storefront-next/sfnext-i18n/SKILL.md +152 -0
- package/content/guidance/storefront-next/sfnext-i18n/references/locale-config.md +35 -0
- package/content/guidance/storefront-next/sfnext-overview/SKILL.md +101 -0
- package/content/guidance/storefront-next/sfnext-page-designer/SKILL.md +202 -0
- package/content/guidance/storefront-next/sfnext-page-designer/references/BUSINESS-MANAGER.md +46 -0
- package/content/guidance/storefront-next/sfnext-page-designer/references/COMPONENT-REGISTRY.md +111 -0
- package/content/guidance/storefront-next/sfnext-page-designer/references/DECORATOR-PATTERNS.md +168 -0
- package/content/guidance/storefront-next/sfnext-page-designer/references/REVIEW-CHECKLIST.md +83 -0
- package/content/guidance/storefront-next/sfnext-page-designer/references/TROUBLESHOOTING.md +35 -0
- package/content/guidance/storefront-next/sfnext-performance/SKILL.md +102 -0
- package/content/guidance/storefront-next/sfnext-performance/references/PERFORMANCE-REVIEW-CHECKLIST.md +85 -0
- package/content/guidance/storefront-next/sfnext-performance/references/SUSPENSE-AND-STREAMING.md +58 -0
- package/content/guidance/storefront-next/sfnext-project-setup/SKILL.md +147 -0
- package/content/guidance/storefront-next/sfnext-project-setup/references/PROJECT-STRUCTURE.md +61 -0
- package/content/guidance/storefront-next/sfnext-project-setup/references/SCRIPTS.md +47 -0
- package/content/guidance/storefront-next/sfnext-project-setup/references/SFNEXT-CLI.md +63 -0
- package/content/guidance/storefront-next/sfnext-quality-gates/SKILL.md +70 -0
- package/content/guidance/storefront-next/sfnext-quality-gates/references/lint-and-budgets.md +39 -0
- package/content/guidance/storefront-next/sfnext-revalidation/SKILL.md +121 -0
- package/content/guidance/storefront-next/sfnext-revalidation/references/POLICIES-AND-TAGS.md +55 -0
- package/content/guidance/storefront-next/sfnext-routing/SKILL.md +123 -0
- package/content/guidance/storefront-next/sfnext-routing/references/ROUTE-CONVENTIONS.md +65 -0
- package/content/guidance/storefront-next/sfnext-routing/references/URLS-AND-SEO-ROUTES.md +22 -0
- package/content/guidance/storefront-next/sfnext-scapi/SKILL.md +126 -0
- package/content/guidance/storefront-next/sfnext-scapi/references/WORKED-EXAMPLE.md +39 -0
- package/content/guidance/storefront-next/sfnext-security/SKILL.md +129 -0
- package/content/guidance/storefront-next/sfnext-security/references/COOKIE-DOMAIN.md +39 -0
- package/content/guidance/storefront-next/sfnext-security/references/TURNSTILE.md +43 -0
- package/content/guidance/storefront-next/sfnext-seo/SKILL.md +95 -0
- package/content/guidance/storefront-next/sfnext-seo/references/MULTI-DOMAIN-BASE-PATH.md +17 -0
- package/content/guidance/storefront-next/sfnext-seo/references/SEO-ROUTES.md +31 -0
- package/content/guidance/storefront-next/sfnext-state-management/SKILL.md +114 -0
- package/content/guidance/storefront-next/sfnext-state-management/references/PATTERNS.md +45 -0
- package/content/guidance/storefront-next/sfnext-testing/SKILL.md +151 -0
- package/content/guidance/storefront-next/sfnext-testing/references/E2E.md +38 -0
- package/content/guidance/storefront-next/sfnext-testing/references/STORYBOOK-PATTERNS.md +97 -0
- package/content/guidance/storefront-next/sfnext-testing/references/UNIT-AND-ROUTE-TESTS.md +60 -0
- package/content/guidance/storefront-next/sfnext-theming/SKILL.md +104 -0
- package/content/guidance/storefront-next/sfnext-theming/references/REBRAND-CHECKLIST.md +29 -0
- package/dist/commands/cap/install.d.ts +1 -0
- package/dist/commands/cap/list.d.ts +1 -0
- package/dist/commands/cap/pull.d.ts +1 -0
- package/dist/commands/cap/tasks.d.ts +1 -0
- package/dist/commands/cap/uninstall.d.ts +1 -0
- package/dist/commands/cip/describe.d.ts +1 -0
- package/dist/commands/cip/query.d.ts +1 -0
- package/dist/commands/cip/report/bot-traffic-share.d.ts +1 -0
- package/dist/commands/cip/report/checkout-funnel-dropoff.d.ts +1 -0
- package/dist/commands/cip/report/controller-error-rate-trend.d.ts +1 -0
- package/dist/commands/cip/report/controller-health-scorecard.d.ts +1 -0
- package/dist/commands/cip/report/customer-registration-trends.d.ts +1 -0
- package/dist/commands/cip/report/discount-depth-breakdown.d.ts +1 -0
- package/dist/commands/cip/report/inventory-stockout-by-location.d.ts +1 -0
- package/dist/commands/cip/report/new-vs-returning-buyer-revenue.d.ts +1 -0
- package/dist/commands/cip/report/ocapi-client-usage.d.ts +1 -0
- package/dist/commands/cip/report/ocapi-requests.d.ts +1 -0
- package/dist/commands/cip/report/payment-method-performance.d.ts +1 -0
- package/dist/commands/cip/report/product-co-purchase-analysis.d.ts +1 -0
- package/dist/commands/cip/report/promotion-discount-analysis.d.ts +1 -0
- package/dist/commands/cip/report/promotion-roi-leaderboard.d.ts +1 -0
- package/dist/commands/cip/report/recommender-effectiveness.d.ts +1 -0
- package/dist/commands/cip/report/remote-include-performance.d.ts +1 -0
- package/dist/commands/cip/report/revenue-by-channel.d.ts +1 -0
- package/dist/commands/cip/report/sales-analytics.d.ts +1 -0
- package/dist/commands/cip/report/sales-summary.d.ts +1 -0
- package/dist/commands/cip/report/scapi-cache-hit-ratio.d.ts +1 -0
- package/dist/commands/cip/report/scapi-error-rate-by-status.d.ts +1 -0
- package/dist/commands/cip/report/scapi-latency-distribution.d.ts +1 -0
- package/dist/commands/cip/report/scapi-traffic-latency.d.ts +1 -0
- package/dist/commands/cip/report/search-query-performance.d.ts +1 -0
- package/dist/commands/cip/report/top-referrers.d.ts +1 -0
- package/dist/commands/cip/report/top-selling-products.d.ts +1 -0
- package/dist/commands/cip/report/zero-result-searches.d.ts +1 -0
- package/dist/commands/cip/tables.d.ts +1 -0
- package/dist/commands/code/activate.d.ts +1 -0
- package/dist/commands/code/delete.d.ts +1 -0
- package/dist/commands/code/deploy.d.ts +1 -0
- package/dist/commands/code/download.d.ts +1 -0
- package/dist/commands/code/watch.d.ts +1 -0
- package/dist/commands/commands/search.d.ts +35 -0
- package/dist/commands/commands/search.js +85 -0
- package/dist/commands/commands/search.js.map +1 -0
- package/dist/commands/content/export.d.ts +1 -0
- package/dist/commands/content/list.d.ts +1 -0
- package/dist/commands/content/validate.d.ts +1 -0
- package/dist/commands/debug/cli.d.ts +1 -0
- package/dist/commands/debug/index.d.ts +1 -0
- package/dist/commands/docs/cache.d.ts +1 -0
- package/dist/commands/docs/download.d.ts +1 -0
- package/dist/commands/docs/read.d.ts +1 -0
- package/dist/commands/docs/schema.d.ts +1 -0
- package/dist/commands/docs/search.d.ts +1 -0
- package/dist/commands/docs/skill.d.ts +41 -0
- package/dist/commands/docs/skill.js +183 -0
- package/dist/commands/docs/skill.js.map +1 -0
- package/dist/commands/ecdn/cache/purge.d.ts +1 -0
- package/dist/commands/ecdn/certificates/add.d.ts +1 -0
- package/dist/commands/ecdn/certificates/delete.d.ts +1 -0
- package/dist/commands/ecdn/certificates/list.d.ts +1 -0
- package/dist/commands/ecdn/certificates/update.d.ts +1 -0
- package/dist/commands/ecdn/certificates/validate.d.ts +1 -0
- package/dist/commands/ecdn/cipher-suites/get.d.ts +1 -0
- package/dist/commands/ecdn/cipher-suites/update.d.ts +1 -0
- package/dist/commands/ecdn/firewall/create.d.ts +1 -0
- package/dist/commands/ecdn/firewall/delete.d.ts +1 -0
- package/dist/commands/ecdn/firewall/get.d.ts +1 -0
- package/dist/commands/ecdn/firewall/list.d.ts +1 -0
- package/dist/commands/ecdn/firewall/reorder.d.ts +1 -0
- package/dist/commands/ecdn/firewall/update.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/create.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/delete.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/get.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/list.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/update.d.ts +1 -0
- package/dist/commands/ecdn/logpush/ownership.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/create.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/delete.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/get.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/rules/delete.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/rules/update.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/update.d.ts +1 -0
- package/dist/commands/ecdn/mtls/create.d.ts +1 -0
- package/dist/commands/ecdn/mtls/delete.d.ts +1 -0
- package/dist/commands/ecdn/mtls/get.d.ts +1 -0
- package/dist/commands/ecdn/mtls/issue.d.ts +1 -0
- package/dist/commands/ecdn/mtls/list.d.ts +1 -0
- package/dist/commands/ecdn/mtls/setup.d.ts +1 -0
- package/dist/commands/ecdn/origin-headers/delete.d.ts +1 -0
- package/dist/commands/ecdn/origin-headers/get.d.ts +1 -0
- package/dist/commands/ecdn/origin-headers/set.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/notifications/create.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/notifications/delete.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/notifications/list.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/create.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/delete.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/get.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/list.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/update.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/scripts/get.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/scripts/list.d.ts +1 -0
- package/dist/commands/ecdn/rate-limit/create.d.ts +1 -0
- package/dist/commands/ecdn/rate-limit/delete.d.ts +1 -0
- package/dist/commands/ecdn/rate-limit/get.d.ts +1 -0
- package/dist/commands/ecdn/rate-limit/list.d.ts +1 -0
- package/dist/commands/ecdn/rate-limit/update.d.ts +1 -0
- package/dist/commands/ecdn/security/get.d.ts +1 -0
- package/dist/commands/ecdn/security/update.d.ts +1 -0
- package/dist/commands/ecdn/speed/get.d.ts +1 -0
- package/dist/commands/ecdn/speed/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/groups/list.d.ts +1 -0
- package/dist/commands/ecdn/waf/groups/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/managed-rules/list.d.ts +1 -0
- package/dist/commands/ecdn/waf/managed-rules/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/migrate.d.ts +1 -0
- package/dist/commands/ecdn/waf/owasp/get.d.ts +1 -0
- package/dist/commands/ecdn/waf/owasp/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/rules/get.d.ts +1 -0
- package/dist/commands/ecdn/waf/rules/list.d.ts +1 -0
- package/dist/commands/ecdn/waf/rules/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/rulesets/list.d.ts +1 -0
- package/dist/commands/ecdn/waf/rulesets/update.d.ts +1 -0
- package/dist/commands/ecdn/zones/create.d.ts +1 -0
- package/dist/commands/ecdn/zones/list.d.ts +1 -0
- package/dist/commands/job/execution/delete.d.ts +1 -0
- package/dist/commands/job/export.d.ts +1 -0
- package/dist/commands/job/import-set.d.ts +1 -0
- package/dist/commands/job/import.d.ts +1 -0
- package/dist/commands/job/log.d.ts +1 -0
- package/dist/commands/job/run.d.ts +1 -0
- package/dist/commands/job/search.d.ts +1 -0
- package/dist/commands/job/wait.d.ts +1 -0
- package/dist/commands/logs/get.d.ts +1 -0
- package/dist/commands/logs/list.d.ts +1 -0
- package/dist/commands/logs/tail.d.ts +1 -0
- package/dist/commands/metrics/controller.d.ts +1 -0
- package/dist/commands/metrics/ecdn.d.ts +1 -0
- package/dist/commands/metrics/mrt.d.ts +1 -0
- package/dist/commands/metrics/ocapi.d.ts +1 -0
- package/dist/commands/metrics/overall.d.ts +1 -0
- package/dist/commands/metrics/sales.d.ts +1 -0
- package/dist/commands/metrics/scapi-hooks.d.ts +1 -0
- package/dist/commands/metrics/scapi.d.ts +1 -0
- package/dist/commands/metrics/third-party.d.ts +1 -0
- package/dist/commands/mrt/bundle/delete.d.ts +1 -0
- package/dist/commands/mrt/bundle/deploy.d.ts +1 -0
- package/dist/commands/mrt/bundle/download.d.ts +1 -0
- package/dist/commands/mrt/bundle/history.d.ts +1 -0
- package/dist/commands/mrt/bundle/list.d.ts +1 -0
- package/dist/commands/mrt/bundle/save.d.ts +1 -0
- package/dist/commands/mrt/bundle/upload-v2.d.ts +1 -0
- package/dist/commands/mrt/env/access-control/list.d.ts +1 -0
- package/dist/commands/mrt/env/b2c.d.ts +1 -0
- package/dist/commands/mrt/env/clone.d.ts +1 -0
- package/dist/commands/mrt/env/create.d.ts +1 -0
- package/dist/commands/mrt/env/delete.d.ts +1 -0
- package/dist/commands/mrt/env/get.d.ts +1 -0
- package/dist/commands/mrt/env/invalidate.d.ts +1 -0
- package/dist/commands/mrt/env/list.d.ts +1 -0
- package/dist/commands/mrt/env/redirect/clone.d.ts +1 -0
- package/dist/commands/mrt/env/redirect/create.d.ts +1 -0
- package/dist/commands/mrt/env/redirect/delete.d.ts +1 -0
- package/dist/commands/mrt/env/redirect/list.d.ts +1 -0
- package/dist/commands/mrt/env/update.d.ts +1 -0
- package/dist/commands/mrt/env/var/delete.d.ts +1 -0
- package/dist/commands/mrt/env/var/list.d.ts +1 -0
- package/dist/commands/mrt/env/var/push.d.ts +1 -0
- package/dist/commands/mrt/env/var/set.d.ts +1 -0
- package/dist/commands/mrt/org/b2c.d.ts +1 -0
- package/dist/commands/mrt/org/cert/create.d.ts +1 -0
- package/dist/commands/mrt/org/cert/delete.d.ts +1 -0
- package/dist/commands/mrt/org/cert/get.d.ts +1 -0
- package/dist/commands/mrt/org/cert/list.d.ts +1 -0
- package/dist/commands/mrt/org/cert/restart-validation.d.ts +1 -0
- package/dist/commands/mrt/org/list.d.ts +1 -0
- package/dist/commands/mrt/org/member/add.d.ts +1 -0
- package/dist/commands/mrt/org/member/get.d.ts +1 -0
- package/dist/commands/mrt/org/member/list.d.ts +1 -0
- package/dist/commands/mrt/org/member/remove.d.ts +1 -0
- package/dist/commands/mrt/org/member/update.d.ts +1 -0
- package/dist/commands/mrt/project/create.d.ts +1 -0
- package/dist/commands/mrt/project/delete.d.ts +1 -0
- package/dist/commands/mrt/project/get.d.ts +1 -0
- package/dist/commands/mrt/project/list.d.ts +1 -0
- package/dist/commands/mrt/project/member/add.d.ts +1 -0
- package/dist/commands/mrt/project/member/get.d.ts +1 -0
- package/dist/commands/mrt/project/member/list.d.ts +1 -0
- package/dist/commands/mrt/project/member/remove.d.ts +1 -0
- package/dist/commands/mrt/project/member/update.d.ts +1 -0
- package/dist/commands/mrt/project/notification/delete.d.ts +1 -0
- package/dist/commands/mrt/project/notification/get.d.ts +1 -0
- package/dist/commands/mrt/project/update.d.ts +1 -0
- package/dist/commands/mrt/save-credentials.d.ts +1 -0
- package/dist/commands/mrt/tail-logs.d.ts +1 -0
- package/dist/commands/mrt/user/api-key.d.ts +1 -0
- package/dist/commands/mrt/user/email-prefs.d.ts +1 -0
- package/dist/commands/mrt/user/profile.d.ts +1 -0
- package/dist/commands/scaffold/init.js +2 -1
- package/dist/commands/scaffold/init.js.map +1 -1
- package/dist/commands/scapi/custom/status.d.ts +1 -0
- package/dist/commands/scapi/schemas/get.d.ts +1 -0
- package/dist/commands/scapi/schemas/list.d.ts +1 -0
- package/dist/commands/setup/ide/tsserver-plugin.d.ts +1 -0
- package/dist/commands/setup/ide/vscode-types.d.ts +1 -0
- package/dist/commands/setup/index.js +4 -3
- package/dist/commands/setup/index.js.map +1 -1
- package/dist/commands/setup/inspect.d.ts +1 -0
- package/dist/commands/setup/inspect.js +17 -2
- package/dist/commands/setup/inspect.js.map +1 -1
- package/dist/commands/setup/instance/create.d.ts +1 -0
- package/dist/commands/setup/instance/list.d.ts +1 -0
- package/dist/commands/setup/instance/remove.d.ts +1 -0
- package/dist/commands/setup/instance/set-active.d.ts +1 -0
- package/dist/commands/setup/openshell.d.ts +1 -0
- package/dist/commands/setup/skills.d.ts +1 -0
- package/dist/commands/slas/client/create.d.ts +1 -0
- package/dist/commands/slas/client/delete.d.ts +1 -0
- package/dist/commands/slas/client/get.d.ts +1 -0
- package/dist/commands/slas/client/list.d.ts +1 -0
- package/dist/commands/slas/client/open.d.ts +1 -0
- package/dist/commands/slas/client/update.d.ts +1 -0
- package/dist/commands/slas/token.d.ts +1 -0
- package/dist/commands/slas/token.js +2 -1
- package/dist/commands/slas/token.js.map +1 -1
- package/dist/commands/webdav/get.d.ts +1 -0
- package/dist/commands/webdav/mkdir.d.ts +2 -0
- package/dist/commands/webdav/mkdir.js +5 -3
- package/dist/commands/webdav/mkdir.js.map +1 -1
- package/dist/commands/webdav/put.d.ts +2 -0
- package/dist/commands/webdav/put.js +5 -3
- package/dist/commands/webdav/put.js.map +1 -1
- package/dist/commands/webdav/rm.d.ts +1 -0
- package/dist/help.d.ts +25 -0
- package/dist/help.js +96 -0
- package/dist/help.js.map +1 -0
- package/dist/lib/scaffold/generate-helper.js +3 -2
- package/dist/lib/scaffold/generate-helper.js.map +1 -1
- package/dist/lib/skills.d.ts +19 -0
- package/dist/lib/skills.js +75 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/utils/cip/command.d.ts +1 -0
- package/dist/utils/ecdn/zone-command.d.ts +1 -0
- package/dist/utils/slas/client.d.ts +1 -0
- package/oclif.manifest.json +10994 -7653
- 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.
|