From be72f3870a0ffa1277a34749607712e1bf81063e Mon Sep 17 00:00:00 2001 From: Bruce Denham Date: Sun, 22 Jun 2025 17:41:52 -0500 Subject: [PATCH] rework navigation to make sense --- astro.config.mjs | 707 +++++++++--------- .../docs/dropins/{all => }/_eventbus.mdx | 0 .../docs/dropins/{all => }/branding.mdx | 0 src/content/docs/dropins/cart/slots.mdx | 2 +- src/content/docs/dropins/checkout/slots.mdx | 2 +- .../docs/dropins/{all => }/creating.mdx | 0 .../docs/dropins/{all => }/extending.mdx | 0 .../docs/dropins/{all => }/installing.mdx | 0 .../docs/dropins/{all => }/introduction.mdx | 8 +- .../docs/dropins/{all => }/labeling.mdx | 4 +- .../docs/dropins/{all => }/layouts.mdx | 0 .../docs/dropins/{all => }/linking.mdx | 0 src/content/docs/dropins/order/slots.mdx | 2 +- .../docs/dropins/product-details/index.mdx | 2 +- .../docs/dropins/product-details/slots.mdx | 2 +- src/content/docs/dropins/{all => }/slots.mdx | 0 .../docs/dropins/{all => }/styling.mdx | 0 src/content/docs/dropins/user-auth/slots.mdx | 2 +- .../docs/get-started/boilerplate-project.mdx | 4 +- .../{troubleshooting => get-started}/faq.mdx | 0 .../pagespeed-issues.mdx | 0 .../merchants/get-started/experiments.mdx | 2 +- .../docs/merchants/get-started/multistore.mdx | 6 +- src/content/docs/releases/index.mdx | 4 +- src/content/docs/resources/index.mdx | 23 - src/content/docs/resources/placeholders.mdx | 528 ------------- .../setup/{discovery => }/architecture.mdx | 10 +- .../commerce-configuration.mdx | 2 +- .../index.mdx => configuration.mdx} | 4 +- .../content-delivery-network.mdx | 4 +- .../data-export-validation.mdx | 2 +- .../{configuration => }/gated-content.mdx | 2 +- src/content/docs/setup/index.mdx | 2 +- .../setup/{analytics => }/instrumentation.mdx | 2 +- .../setup/{launch/index.mdx => launch.mdx} | 10 +- .../setup/{discovery => }/luma-bridge.mdx | 0 src/content/docs/setup/{seo => }/metadata.mdx | 4 +- src/content/docs/setup/multistore-setup.mdx | 291 +++++++ .../docs/setup/{seo/indexing.mdx => seo.mdx} | 8 +- .../storefront-compatibility/install.mdx | 0 .../storefront-compatibility/v247.mdx | 0 .../storefront-compatibility/v248.mdx | 0 42 files changed, 709 insertions(+), 930 deletions(-) rename src/content/docs/dropins/{all => }/_eventbus.mdx (100%) rename src/content/docs/dropins/{all => }/branding.mdx (100%) rename src/content/docs/dropins/{all => }/creating.mdx (100%) rename src/content/docs/dropins/{all => }/extending.mdx (100%) rename src/content/docs/dropins/{all => }/installing.mdx (100%) rename src/content/docs/dropins/{all => }/introduction.mdx (79%) rename src/content/docs/dropins/{all => }/labeling.mdx (98%) rename src/content/docs/dropins/{all => }/layouts.mdx (100%) rename src/content/docs/dropins/{all => }/linking.mdx (100%) rename src/content/docs/dropins/{all => }/slots.mdx (100%) rename src/content/docs/dropins/{all => }/styling.mdx (100%) rename src/content/docs/{troubleshooting => get-started}/faq.mdx (100%) rename src/content/docs/{troubleshooting => get-started}/pagespeed-issues.mdx (100%) delete mode 100644 src/content/docs/resources/index.mdx delete mode 100644 src/content/docs/resources/placeholders.mdx rename src/content/docs/setup/{discovery => }/architecture.mdx (90%) rename src/content/docs/setup/{configuration => }/commerce-configuration.mdx (99%) rename src/content/docs/setup/{configuration/index.mdx => configuration.mdx} (91%) rename src/content/docs/setup/{configuration => }/content-delivery-network.mdx (99%) rename src/content/docs/setup/{discovery => }/data-export-validation.mdx (89%) rename src/content/docs/setup/{configuration => }/gated-content.mdx (99%) rename src/content/docs/setup/{analytics => }/instrumentation.mdx (99%) rename src/content/docs/setup/{launch/index.mdx => launch.mdx} (92%) rename src/content/docs/setup/{discovery => }/luma-bridge.mdx (100%) rename src/content/docs/setup/{seo => }/metadata.mdx (97%) create mode 100644 src/content/docs/setup/multistore-setup.mdx rename src/content/docs/setup/{seo/indexing.mdx => seo.mdx} (94%) rename src/content/docs/setup/{configuration => }/storefront-compatibility/install.mdx (100%) rename src/content/docs/setup/{configuration => }/storefront-compatibility/v247.mdx (100%) rename src/content/docs/setup/{configuration => }/storefront-compatibility/v248.mdx (100%) diff --git a/astro.config.mjs b/astro.config.mjs index b9c364edc..ee22c3ab6 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -62,17 +62,17 @@ async function config() { '/customize/localize': `${basePath}/dropins/all/localizing`, '/customize/slots': `${basePath}/dropins/all/extending`, '/customize/style': `${basePath}/dropins/all/styling`, - '/customize': `${basePath}/dropins/all/introduction`, - '/dropins': `${basePath}/dropins/all/introduction`, + '/customize': `${basePath}/dropins/introduction`, + '/dropins': `${basePath}/dropins/introduction`, '/dropins/cart/cart-introduction': `${basePath}/dropins/cart`, '/dropins/cart/cart-containers': `${basePath}/dropins/cart/`, '/dropins/checkout/checkout-introduction': `${basePath}/dropins/checkout`, '/dropins/user-account/useraccount-introduction': `${basePath}/dropins/user-account`, '/dropins/user-auth/userauth-introduction': `${basePath}/dropins/user-auth`, '/faq': `${basePath}/troublshooting/faq`, - '/get-started/launch-checklist': `${basePath}/launch`, - '/get-started/requirements': `${basePath}/setup/discovery/architecture`, - '/get-started/configurations': `${basePath}/setup/configuration/commerce-configuration`, + '/get-started/launch-checklist': `${basePath}/setup/launch`, + '/get-started/requirements': `${basePath}/setup/architecture`, + '/get-started/configurations': `${basePath}/setup/commerce-configuration`, '/get-started/storefront-structure': `${basePath}/get-started/boilerplate-project`, '/product-details/pdp-containers': `${basePath}/dropins/product-details/containers`, '/product-details/pdp-functions': `${basePath}/dropins/product-details/functions`, @@ -80,8 +80,8 @@ async function config() { '/product-details/pdp-introduction': `${basePath}/dropins/product-details/`, '/product-details/pdp-slots': `${basePath}/dropins/product-details/slots`, '/product-details/pdp-styles': `${basePath}/dropins/product-details/styles`, - '/references/configurations': `${basePath}/setup/configuration/commerce-configuration`, - '/references/requirements': `${basePath}/setup/discovery/architecture`, + '/references/configurations': `${basePath}/setup/commerce-configuration`, + '/references/requirements': `${basePath}/setup/architecture`, '/dropins/cart/cart-installation': `${basePath}/dropins/cart/installation`, '/dropins/cart/cart-styles': `${basePath}/dropins/cart/styles`, '/dropins/cart/cart-containers': `${basePath}/dropins/cart/containers`, @@ -90,25 +90,48 @@ async function config() { '/dropins/cart/cart-dictionary': `${basePath}/dropins/cart/dictionary`, '/dropins/order/order-dictionary': `${basePath}/dropins/order/dictionary`, '/config': `${basePath}/setup/configuration`, - '/config/commerce-configuration': `${basePath}/setup/configuration/commerce-configuration`, - '/config/content-delivery-network': `${basePath}/setup/configuration/content-delivery-network`, - '/config/gated-content': `${basePath}/setup/configuration/gated-content`, - '/config/storefront-compatibility': `${basePath}/setup/configuration/storefront-compatibility`, + '/config/commerce-configuration': `${basePath}/setup/commerce-configuration`, + '/config/content-delivery-network': `${basePath}/setup/content-delivery-network`, + '/config/gated-content': `${basePath}/setup/gated-content`, + '/config/storefront-compatibility': `${basePath}/setup/storefront-compatibility`, '/get-started/release': `${basePath}/releases/`, - '/seo/indexing': `${basePath}/setup/seo/indexing`, - '/seo/metadata': `${basePath}/setup/seo/metadata`, + '/seo/indexing': `${basePath}/setup/seo`, + '/seo/metadata': `${basePath}/setup/metadata`, '/merchant/multistore': `${basePath}/merchants/get-started/multistore`, '/merchants/multistore': `${basePath}/merchants/get-started/multistore`, '/merchants/terms-and-conditions': `${basePath}/merchants/get-started/terms-and-conditions`, '/dropins/all/enriching': `${basePath}/merchants/get-started/enrichment`, '/dropins/all/experimenting': `${basePath}/merchants/get-started/experiments`, - '/analytics/instrumentation': `${basePath}/setup/analytics/instrumentation`, + '/analytics/instrumentation': `${basePath}/setup/instrumentation`, '/launch': `${basePath}/setup/launch`, '/discovery': `${basePath}/setup`, - '/discovery/architecture': `${basePath}/setup/discovery/architecture`, - '/discovery/data-export-validation': `${basePath}/setup/discovery/data-export-validation`, - '/discovery/luma-bridge': `${basePath}/setup/discovery/luma-bridge`, - '/dropins/all/eventbus': `${basePath}/sdk/reference/events` + '/discovery/architecture': `${basePath}/setup/architecture`, + '/discovery/data-export-validation': `${basePath}/setup/data-export-validation`, + '/discovery/luma-bridge': `${basePath}/setup/luma-bridge`, + '/setup/discovery/luma-bridge': `${basePath}/setup/luma-bridge`, + '/dropins/all/eventbus': `${basePath}/sdk/reference/events`, + '/dropins/all/branding': `${basePath}/dropins/branding`, + '/dropins/all/creating': `${basePath}/dropins/creating`, + '/dropins/all/extending': `${basePath}/dropins/extending`, + '/dropins/all/installing': `${basePath}/dropins/installing`, + '/dropins/all/introduction': `${basePath}/dropins/introduction`, + '/dropins/all/labeling': `${basePath}/dropins/labeling`, + '/dropins/all/layouts': `${basePath}/dropins/layouts`, + '/dropins/all/linking': `${basePath}/dropins/linking`, + '/dropins/all/slots': `${basePath}/dropins/slots`, + '/dropins/all/styling': `${basePath}/dropins/styling`, + '/merchants/get-started/developer-tutorial': `${basePath}/merchants/multistore/developer-tutorial`, + '/setup/discovery/architecture': `${basePath}/setup/architecture`, + '/setup/configuration/commerce-configuration': `${basePath}/setup/commerce-configuration`, + '/setup/configuration/content-delivery-network': `${basePath}/setup/content-delivery-network`, + '/setup/discovery/data-export-validation': `${basePath}/setup/data-export-validation`, + '/setup/configuration/gated-content': `${basePath}/setup/gated-content`, + '/setup/analytics/instrumentation': `${basePath}/setup/instrumentation`, + '/setup/discovery/luma-bridge': `${basePath}/setup/luma-bridge`, + '/setup/seo/metadata': `${basePath}/setup/metadata`, + '/setup/seo/indexing': `${basePath}/setup/seo`, + '/setup/launch/index': `${basePath}/setup/launch`, + '/setup/configuration/index': `${basePath}/setup/configuration`, }, integrations: [ starlight({ @@ -133,6 +156,38 @@ async function config() { lastUpdated: true, plugins: [ starlightSidebarTopics([ + { + label: 'Storefront Builder', + link: 'merchants/get-started/', + icon: 'seti:svg', + items: [ + { + label: 'Getting Started', + items: [ + { + label: 'Introduction', + link: 'merchants/get-started/' + }, + { + label: 'Enrichment', + link: 'merchants/get-started/enrichment/' + }, + { + label: 'Experiments', + link: 'merchants/get-started/experiments/' + }, + { + label: 'Multistore setup', + link: 'merchants/get-started/multistore/' + }, + { + label: 'Terms and conditions', + link: 'merchants/get-started/terms-and-conditions/' + }, + ], + }, + ], + }, { label: 'Developers', link: '/get-started/', @@ -153,10 +208,18 @@ async function config() { label: 'Run Lighthouse audits', link: '/get-started/run-lighthouse/' }, + { + label: 'Audit issues', + link: '/get-started/pagespeed-issues/' + }, + { + label: 'Frequently asked questions', + link: '/get-started/faq/' + }, ] }, { - label: 'Setup', + label: 'Storefront Setup', collapsed: true, items: [ { @@ -164,357 +227,345 @@ async function config() { link: '/setup/' }, { - label: 'Discovery', - collapsed: true, - autogenerate: { - directory: '/setup/discovery/' - }, + label: 'Storefront architecture', + link: '/setup/architecture/' + }, + { + label: 'Multistore setup', + link: '/setup/multistore-setup/' + }, + { + label: 'Data export validation', + link: '/setup/data-export-validation/' + }, + { + label: 'Luma Bridge', + link: '/setup/luma-bridge/' + }, + { + label: 'Configuration overview', + link: '/setup/configuration/' + }, + { + label: 'Storefront configuration', + link: '/setup/commerce-configuration/' }, { - label: 'Configuration', + label: 'CDN configuration', + link: '/setup/content-delivery-network/' + }, + { + label: 'Gated content configuration', + link: '/setup/gated-content/' + }, + { + label: 'Instrumentation', + link: '/setup/instrumentation/' + }, + { + label: 'SEO indexing', + link: '/setup/seo/' + }, + { + label: 'SEO metadata', + link: '/setup/metadata/' + }, + { + label: 'Launch checklist', + link: '/setup/launch/' + }, + { + label: 'Storefront Compatibility', collapsed: true, items: [ { - label: 'Overview', - link: '/setup/configuration/' - }, - { - label: 'Storefront configuration', - link: '/setup/configuration/commerce-configuration/' + label: 'Installation', + link: '/setup/storefront-compatibility/install/' }, { - label: 'Content delivery network', - link: '/setup/configuration/content-delivery-network/' + label: '2.4.8', + link: '/setup/storefront-compatibility/v248/' }, { - label: 'Gated content', - link: '/setup/configuration/gated-content/' - }, - { - label: 'Storefront Compatibility Package', - collapsed: true, - autogenerate: - { - directory: '/setup/configuration/storefront-compatibility/', - }, + label: '2.4.7', + link: '/setup/storefront-compatibility/v247/' }, ] }, + ] + }, + { + label: 'Drop-ins Overview', + collapsed: true, + items: [ { - label: 'Analytics', - collapsed: true, - autogenerate: { - directory: '/setup/analytics/' - }, + label: 'Overview', + link: '/dropins/introduction/' }, { - label: 'SEO', - collapsed: true, - autogenerate: { - directory: '/setup/seo/' - }, + label: 'Creating', + link: '/dropins/creating/' }, { - label: 'Launch', - collapsed: true, - autogenerate: { - directory: '/setup/launch/' - }, + label: 'Installing', + link: '/dropins/installing/' + }, + { + label: 'Branding', + link: '/dropins/branding/' + }, + { + label: 'Localizing', + link: '/dropins/labeling/' + }, + { + label: 'Linking', + link: '/dropins/linking/' + }, + { + label: 'Styling', + link: '/dropins/styling/' + }, + { + label: 'Slots', + link: '/dropins/slots/' + }, + { + label: 'Layouts', + link: '/dropins/layouts/' + }, + { + label: 'Extending', + link: '/dropins/extending/' }, ] }, { - label: 'Drop-ins', + label: 'Cart', collapsed: true, items: [ - { - label: 'Overview', - link: '/dropins/all/introduction/' - }, - { - label: 'Common', - collapsed: true, + { label: 'Overview', link: '/dropins/cart/' }, + { label: 'Installation', link: '/dropins/cart/installation/' }, + { label: 'Initialization', link: '/dropins/cart/initialization/' }, + { label: 'Styles', link: '/dropins/cart/styles/' }, + { label: 'Slots', link: '/dropins/cart/slots/' }, + { label: 'Functions', link: '/dropins/cart/functions/' }, + { label: 'Dictionary', link: '/dropins/cart/dictionary/' }, + { + label: 'Containers', collapsed: true, items: [ - { - label: 'Creating', - link: '/dropins/all/creating/' - }, - { - label: 'Installing', - link: '/dropins/all/installing/' - }, - { - label: 'Branding', - link: '/dropins/all/branding/' - }, - { - label: 'Labeling', - link: '/dropins/all/labeling/' - }, - { - label: 'Linking', - link: '/dropins/all/linking/' - }, - { - label: 'Styling', - link: '/dropins/all/styling/' - }, - { - label: 'Slots', - link: '/dropins/all/slots/' - }, - { - label: 'Layouts', - link: '/dropins/all/layouts/' - }, - { - label: 'Extending', - link: '/dropins/all/extending/' - }, - ], + { label: 'CartSummaryGrid', link: '/dropins/cart/containers/cart-summary-grid/' }, + { label: 'CartSummaryList', link: '/dropins/cart/containers/cart-summary-list/' }, + { label: 'CartSummaryTable', link: '/dropins/cart/containers/cart-summary-table/' }, + { label: 'Coupons', link: '/dropins/cart/containers/coupons/' }, + { label: 'EmptyCart', link: '/dropins/cart/containers/empty-cart/' }, + { label: 'EstimateShipping', link: '/dropins/cart/containers/estimate-shipping/' }, + { label: 'GiftCards', link: '/dropins/cart/containers/gift-cards/' }, + { label: "GiftOptions", link: '/dropins/cart/containers/gift-options/' }, + { label: 'MiniCart', link: '/dropins/cart/containers/minicart/' }, + { label: 'OrderSummary', link: '/dropins/cart/containers/order-summary/' }, + { label: 'OrderSummaryLine', link: '/dropins/cart/containers/order-summary-line/' }, + ] }, { - label: 'Product details page', + label: 'Tutorials', collapsed: true, items: [ - { label: 'Overview', link: '/dropins/product-details/' }, - { label: 'Installation', link: '/dropins/product-details/installation/' }, - { label: 'Initialization', link: '/dropins/product-details/initialization/' }, - { label: 'Styles', link: '/dropins/product-details/styles/' }, - { - label: 'Containers', collapsed: true, - items: [ - { label: 'ProductAttributes', link: '/dropins/product-details/containers/product-attributes/' }, - { label: 'ProductDescription', link: '/dropins/product-details/containers/product-description/' }, - { label: 'ProductGallery', link: '/dropins/product-details/containers/product-gallery/' }, - { label: 'ProductHeader', link: '/dropins/product-details/containers/product-header/' }, - { label: 'ProductOptions', link: '/dropins/product-details/containers/product-options/' }, - { label: 'ProductPrice', link: '/dropins/product-details/containers/product-price/' }, - { label: 'ProductQuantity', link: '/dropins/product-details/containers/product-quantity/' }, - { label: 'ProductShortDescription', link: '/dropins/product-details/containers/product-short-description/' }, - { label: 'ProductDetails', link: '/dropins/product-details/containers/product-details/', badge: 'Deprecated' }, - ] - }, - { label: 'Slots', link: '/dropins/product-details/slots/' }, - { label: 'Functions', link: '/dropins/product-details/functions/' }, - { label: 'Dictionary', link: '/dropins/product-details/dictionary/' }, + { label: 'Configure the cart summary block', link: '/dropins/cart/tutorials/configure-cart-summary/' }, + { label: 'Add custom product lines to the cart summary', link: '/dropins/cart/tutorials/add-product-lines-to-cart-summary/' }, + { label: 'Order summary lines', link: '/dropins/cart/tutorials/order-summary-lines/' }, + { label: 'Add gift options to a PDP', link: '/dropins/cart/tutorials/gift-options/' }, + { label: 'Add messages to the mini cart', link: '/dropins/cart/tutorials/add-messages-to-mini-cart/' }, + { label: 'Enable product variation updates', link: '/dropins/cart/tutorials/enable-product-variation-updates-in-cart/' }, ] }, - { - label: 'Cart', + ] + }, + { + label: 'Checkout', + collapsed: true, + items: [ + { label: 'Overview', link: '/dropins/checkout/' }, + { label: 'Installation', link: '/dropins/checkout/installation/' }, + { label: 'Initialization', link: '/dropins/checkout/initialization/' }, + { label: 'Styles', link: '/dropins/checkout/styles/' }, + { label: 'Slots', link: '/dropins/checkout/slots/' }, + { label: 'Functions', link: '/dropins/checkout/functions/' }, + { label: 'Dictionary', link: '/dropins/checkout/dictionary/' }, + { + label: 'Containers', collapsed: true, items: [ - { label: 'Overview', link: '/dropins/cart/' }, - { label: 'Installation', link: '/dropins/cart/installation/' }, - { label: 'Initialization', link: '/dropins/cart/initialization/' }, - { label: 'Styles', link: '/dropins/cart/styles/' }, - { - label: 'Containers', collapsed: true, - items: [ - { label: 'CartSummaryGrid', link: '/dropins/cart/containers/cart-summary-grid/' }, - { label: 'CartSummaryList', link: '/dropins/cart/containers/cart-summary-list/' }, - { label: 'CartSummaryTable', link: '/dropins/cart/containers/cart-summary-table/' }, - { label: 'Coupons', link: '/dropins/cart/containers/coupons/' }, - { label: 'EmptyCart', link: '/dropins/cart/containers/empty-cart/' }, - { label: 'EstimateShipping', link: '/dropins/cart/containers/estimate-shipping/' }, - { label: 'GiftCards', link: '/dropins/cart/containers/gift-cards/' }, - { label: "GiftOptions", link: '/dropins/cart/containers/gift-options/' }, - { label: 'MiniCart', link: '/dropins/cart/containers/minicart/' }, - { label: 'OrderSummary', link: '/dropins/cart/containers/order-summary/' }, - { label: 'OrderSummaryLine', link: '/dropins/cart/containers/order-summary-line/' }, - ] - }, - { label: 'Slots', link: '/dropins/cart/slots/' }, - { label: 'Functions', link: '/dropins/cart/functions/' }, - { label: 'Dictionary', link: '/dropins/cart/dictionary/' }, - { - label: 'Tutorials', - collapsed: true, - items: [ - { label: 'Configure the cart summary block', link: '/dropins/cart/tutorials/configure-cart-summary/' }, - { label: 'Add custom product lines to the cart summary', link: '/dropins/cart/tutorials/add-product-lines-to-cart-summary/' }, - { label: 'Order summary lines', link: '/dropins/cart/tutorials/order-summary-lines/' }, - { label: 'Add gift options to a PDP', link: '/dropins/cart/tutorials/gift-options/' }, - { label: 'Add messages to the mini cart', link: '/dropins/cart/tutorials/add-messages-to-mini-cart/' }, - { label: 'Enable product variation updates', link: '/dropins/cart/tutorials/enable-product-variation-updates-in-cart/' }, - ] - }, + { label: 'Overview', link: '/dropins/checkout/containers/overview/' }, + { label: 'BillToShippingAddress', link: '/dropins/checkout/containers/bill-to-shipping-address/' }, + { label: 'EstimateShipping', link: '/dropins/checkout/containers/estimate-shipping/' }, + { label: 'LoginForm', link: '/dropins/checkout/containers/login-form/' }, + { label: 'MergedCartBanner', link: '/dropins/checkout/containers/merged-cart-banner/' }, + { label: 'OutOfStock', link: '/dropins/checkout/containers/out-of-stock/' }, + { label: 'PaymentMethods', link: '/dropins/checkout/containers/payment-methods/' }, + { label: 'PlaceOrder', link: '/dropins/checkout/containers/place-order/' }, + { label: 'ServerError', link: '/dropins/checkout/containers/server-error/' }, + { label: 'ShippingMethods', link: '/dropins/checkout/containers/shipping-methods/' }, + { label: 'TermsAndConditions', link: '/dropins/checkout/containers/terms-and-conditions/' }, ] }, { - label: 'Checkout', + label: 'Tutorials', collapsed: true, items: [ - { label: 'Overview', link: '/dropins/checkout/' }, - { label: 'Installation', link: '/dropins/checkout/installation/' }, - { label: 'Initialization', link: '/dropins/checkout/initialization/' }, - { label: 'Styles', link: '/dropins/checkout/styles/' }, - { - label: 'Containers', - collapsed: true, - items: [ - { label: 'Overview', link: '/dropins/checkout/containers/overview/' }, - { label: 'BillToShippingAddress', link: '/dropins/checkout/containers/bill-to-shipping-address/' }, - { label: 'EstimateShipping', link: '/dropins/checkout/containers/estimate-shipping/' }, - { label: 'LoginForm', link: '/dropins/checkout/containers/login-form/' }, - { label: 'MergedCartBanner', link: '/dropins/checkout/containers/merged-cart-banner/' }, - { label: 'OutOfStock', link: '/dropins/checkout/containers/out-of-stock/' }, - { label: 'PaymentMethods', link: '/dropins/checkout/containers/payment-methods/' }, - { label: 'PlaceOrder', link: '/dropins/checkout/containers/place-order/' }, - { label: 'ServerError', link: '/dropins/checkout/containers/server-error/' }, - { label: 'ShippingMethods', link: '/dropins/checkout/containers/shipping-methods/' }, - { label: 'TermsAndConditions', link: '/dropins/checkout/containers/terms-and-conditions/' }, - ] - }, - { label: 'Slots', link: '/dropins/checkout/slots/' }, - { label: 'Functions', link: '/dropins/checkout/functions/' }, - { label: 'Dictionary', link: '/dropins/checkout/dictionary/' }, - { - label: 'Tutorials', - collapsed: true, - items: [ - { label: 'Add a payment method', link: '/dropins/checkout/tutorials/add-payment-method/' }, - { label: 'Buy online, pickup in store', link: '/dropins/checkout/tutorials/buy-online-pickup-in-store/' }, - { label: 'Multi-step guest checkout', link: '/dropins/checkout/tutorials/multi-step/' }, - { label: 'Address verification', link: '/dropins/checkout/tutorials/address-integration/' }, - ] - }, - ], + { label: 'Add a payment method', link: '/dropins/checkout/tutorials/add-payment-method/' }, + { label: 'Buy online, pickup in store', link: '/dropins/checkout/tutorials/buy-online-pickup-in-store/' }, + { label: 'Multi-step guest checkout', link: '/dropins/checkout/tutorials/multi-step/' }, + { label: 'Address verification', link: '/dropins/checkout/tutorials/address-integration/' }, + ] }, - { - label: 'Order', + ], + }, + { + label: 'Order', + collapsed: true, + items: [ + { label: 'Overview', link: '/dropins/order/' }, + { label: 'Initialization', link: '/dropins/order/initialization/' }, + { label: 'Styles', link: '/dropins/order/styles/' }, + { label: 'Slots', link: '/dropins/order/slots/' }, + { label: 'Functions', link: '/dropins/order/functions/' }, + { label: 'Dictionary', link: '/dropins/order/dictionary/' }, + { + label: 'Containers', collapsed: true, items: [ - { label: 'Overview', link: '/dropins/order/' }, - { label: 'Initialization', link: '/dropins/order/initialization/' }, - { label: 'Styles', link: '/dropins/order/styles/' }, - { - label: 'Containers', - collapsed: true, - items: [ - { label: 'CreateReturn', link: '/dropins/order/containers/create-return/' }, - { label: 'CustomerDetails', link: '/dropins/order/containers/customer-details/' }, - { label: 'OrderCancelForm', link: '/dropins/order/containers/order-cancel-form/' }, - { label: 'OrderCostSummary', link: '/dropins/order/containers/order-cost-summary/' }, - { label: 'OrderProductList', link: '/dropins/order/containers/order-product-list/' }, - { label: 'OrderReturns', link: '/dropins/order/containers/order-returns/' }, - { label: 'OrderSearch', link: '/dropins/order/containers/order-search/' }, - { label: 'ReturnsList', link: '/dropins/order/containers/returns-list/' }, - { label: 'ShippingStatus', link: '/dropins/order/containers/shipping-status/' }, - ] - }, - { label: 'Slots', link: '/dropins/order/slots/' }, - { label: 'Functions', link: '/dropins/order/functions/' }, - { label: 'Dictionary', link: '/dropins/order/dictionary/' }, - { - label: 'Tutorials', - collapsed: true, - items: [ - { label: 'Order cancellation', link: '/dropins/order/tutorials/order-cancellation/' }, - ] - }, + { label: 'CreateReturn', link: '/dropins/order/containers/create-return/' }, + { label: 'CustomerDetails', link: '/dropins/order/containers/customer-details/' }, + { label: 'OrderCancelForm', link: '/dropins/order/containers/order-cancel-form/' }, + { label: 'OrderCostSummary', link: '/dropins/order/containers/order-cost-summary/' }, + { label: 'OrderProductList', link: '/dropins/order/containers/order-product-list/' }, + { label: 'OrderReturns', link: '/dropins/order/containers/order-returns/' }, + { label: 'OrderSearch', link: '/dropins/order/containers/order-search/' }, + { label: 'ReturnsList', link: '/dropins/order/containers/returns-list/' }, + { label: 'ShippingStatus', link: '/dropins/order/containers/shipping-status/' }, ] }, { - label: 'Payment Services', + label: 'Tutorials', collapsed: true, items: [ - { label: 'Overview', link: '/dropins/payment-services/' }, - { label: 'Installation', link: '/dropins/payment-services/installation/' }, - { - label: 'Containers', collapsed: true, - items: [ - { label: 'CreditCard', link: '/dropins/payment-services/containers/credit-card/' }, - ] - }, - { label: 'Dictionary', link: '/dropins/payment-services/dictionary/' }, + { label: 'Order cancellation', link: '/dropins/order/tutorials/order-cancellation/' }, ] }, + ] + }, + { + label: 'Payment Services', + collapsed: true, + items: [ + { label: 'Overview', link: '/dropins/payment-services/' }, + { label: 'Installation', link: '/dropins/payment-services/installation/' }, + { label: 'Dictionary', link: '/dropins/payment-services/dictionary/' }, { - label: 'User auth', - collapsed: true, + label: 'Containers', collapsed: true, items: [ - { label: 'Overview', link: '/dropins/user-auth/' }, - { label: 'reCAPTCHA', link: '/dropins/user-auth/recaptcha/' }, - { - label: 'Containers', - collapsed: true, - items: [ - { label: 'AuthCombine', link: '/dropins/user-auth/containers/auth-combine/' }, - { label: 'ResetPassword', link: '/dropins/user-auth/containers/reset-password/' }, - { label: 'SignIn', link: '/dropins/user-auth/containers/sign-in/' }, - { label: 'SignUp', link: '/dropins/user-auth/containers/sign-up/' }, - { label: 'SuccessNotification', link: '/dropins/user-auth/containers/success-notification/' }, - { label: 'UpdatePassword', link: '/dropins/user-auth/containers/update-password/' }, - ] - }, - { label: 'Slots', link: '/dropins/user-auth/slots/' }, - { label: 'Functions', link: '/dropins/user-auth/auth-functions/' }, - { label: 'Dictionary', link: '/dropins/user-auth/dictionary/' }, - ], + { label: 'CreditCard', link: '/dropins/payment-services/containers/credit-card/' }, + ] }, - { - label: 'User account', - collapsed: true, + ] + }, + { + label: 'Product Details', + collapsed: true, + items: [ + { label: 'Overview', link: '/dropins/product-details/' }, + { label: 'Installation', link: '/dropins/product-details/installation/' }, + { label: 'Initialization', link: '/dropins/product-details/initialization/' }, + { label: 'Styles', link: '/dropins/product-details/styles/' }, + { label: 'Slots', link: '/dropins/product-details/slots/' }, + { label: 'Functions', link: '/dropins/product-details/functions/' }, + { label: 'Dictionary', link: '/dropins/product-details/dictionary/' }, + { + label: 'Containers', collapsed: true, items: [ - { label: 'Overview', link: '/dropins/user-account/' }, - { label: 'Initialization', link: '/dropins/user-account/initialization/' }, - { label: 'Styles', link: '/dropins/user-account/styles/' }, - { - label: 'Containers', - collapsed: true, - items: [ - { label: 'Addresses', link: '/dropins/user-account/containers/addresses/' }, - { label: 'AddressForm', link: '/dropins/user-account/containers/address-form/' }, - { label: 'CustomerInformation', link: '/dropins/user-account/containers/customer-information/' }, - { label: 'OrdersList', link: '/dropins/user-account/containers/orders-list/' }, - ] - }, - // { label: 'Slots', link: '/dropins/user-account/slots/' }, - { label: 'Functions', link: '/dropins/user-account/functions/' }, - { label: 'Dictionary', link: '/dropins/user-account/dictionary/' }, - { label: 'Sidebar', link: '/dropins/user-account/sidebar/' }, - { label: 'Tutorial', link: '/dropins/user-account/tutorials/' }, + { label: 'ProductAttributes', link: '/dropins/product-details/containers/product-attributes/' }, + { label: 'ProductDescription', link: '/dropins/product-details/containers/product-description/' }, + { label: 'ProductGallery', link: '/dropins/product-details/containers/product-gallery/' }, + { label: 'ProductHeader', link: '/dropins/product-details/containers/product-header/' }, + { label: 'ProductOptions', link: '/dropins/product-details/containers/product-options/' }, + { label: 'ProductPrice', link: '/dropins/product-details/containers/product-price/' }, + { label: 'ProductQuantity', link: '/dropins/product-details/containers/product-quantity/' }, + { label: 'ProductShortDescription', link: '/dropins/product-details/containers/product-short-description/' }, + { label: 'ProductDetails', link: '/dropins/product-details/containers/product-details/', badge: 'Deprecated' }, ] }, - { - label: 'Other', + ] + }, + { + label: 'User Account', + collapsed: true, + items: [ + { label: 'Overview', link: '/dropins/user-account/' }, + { label: 'Initialization', link: '/dropins/user-account/initialization/' }, + { label: 'Styles', link: '/dropins/user-account/styles/' }, + // { label: 'Slots', link: '/dropins/user-account/slots/' }, + { label: 'Functions', link: '/dropins/user-account/functions/' }, + { label: 'Dictionary', link: '/dropins/user-account/dictionary/' }, + { label: 'Sidebar', link: '/dropins/user-account/sidebar/' }, + { + label: 'Containers', collapsed: true, items: [ - { - label: 'Live Search', - link: '/dropins/other/search/' - }, - { - label: 'Product Recommendations', - link: '/dropins/other/recommendations/' - }, - ], + { label: 'Addresses', link: '/dropins/user-account/containers/addresses/' }, + { label: 'AddressForm', link: '/dropins/user-account/containers/address-form/' }, + { label: 'CustomerInformation', link: '/dropins/user-account/containers/customer-information/' }, + { label: 'OrdersList', link: '/dropins/user-account/containers/orders-list/' }, + ] }, + { label: 'Tutorial', link: '/dropins/user-account/tutorials/' }, ] }, { - label: 'Troubleshooting', + label: 'User Auth', collapsed: true, - autogenerate: { - directory: '/troubleshooting/' - } + items: [ + { label: 'Overview', link: '/dropins/user-auth/' }, + { label: 'reCAPTCHA', link: '/dropins/user-auth/recaptcha/' }, + { label: 'Slots', link: '/dropins/user-auth/slots/' }, + { label: 'Functions', link: '/dropins/user-auth/auth-functions/' }, + { label: 'Dictionary', link: '/dropins/user-auth/dictionary/' }, + { + label: 'Containers', + collapsed: true, + items: [ + { label: 'AuthCombine', link: '/dropins/user-auth/containers/auth-combine/' }, + { label: 'ResetPassword', link: '/dropins/user-auth/containers/reset-password/' }, + { label: 'SignIn', link: '/dropins/user-auth/containers/sign-in/' }, + { label: 'SignUp', link: '/dropins/user-auth/containers/sign-up/' }, + { label: 'SuccessNotification', link: '/dropins/user-auth/containers/success-notification/' }, + { label: 'UpdatePassword', link: '/dropins/user-auth/containers/update-password/' }, + ] + }, + ], }, { - label: 'Resources', + label: 'Other Drop-ins', collapsed: true, - autogenerate: { - directory: '/resources/' - }, + items: [ + { + label: 'Product Discovery', + link: '/dropins/other/search/' + }, + { + label: 'Product Recommendations', + link: '/dropins/other/recommendations/' + }, + ], }, { - label: 'Releases', + label: 'Troubleshooting', collapsed: true, autogenerate: { - directory: '/releases/' - }, + directory: '/troubleshooting/' + } }, - ], + ] }, { label: 'Drop-in SDK', @@ -773,38 +824,6 @@ async function config() { }, ], }, - { - label: 'Merchants', - link: 'merchants/get-started/', - icon: 'seti:svg', - items: [ - { - label: 'Getting started', - items: [ - { - label: 'Introduction', - link: 'merchants/get-started/' - }, - { - label: 'Enrichment', - link: 'merchants/get-started/enrichment/' - }, - { - label: 'Experiments', - link: 'merchants/get-started/experiments/' - }, - { - label: 'Multi-store setup', - link: 'merchants/get-started/multistore/' - }, - { - label: 'Terms and conditions', - link: 'merchants/get-started/terms-and-conditions/' - }, - ], - }, - ], - }, { label: 'Videos', link: '/videos/', @@ -855,6 +874,26 @@ async function config() { }, ], }, + { + label: 'Releases', + link: '/releases/', + icon: 'rocket', + items: [ + { + label: 'Releases', + items: [ + { + label: 'All Releases', + link: '/releases/' + }, + { + label: 'Changelog', + link: '/releases/changelog/' + }, + ], + }, + ], + }, ]), starlightHeadingBadges(), starlightLinksValidator({ diff --git a/src/content/docs/dropins/all/_eventbus.mdx b/src/content/docs/dropins/_eventbus.mdx similarity index 100% rename from src/content/docs/dropins/all/_eventbus.mdx rename to src/content/docs/dropins/_eventbus.mdx diff --git a/src/content/docs/dropins/all/branding.mdx b/src/content/docs/dropins/branding.mdx similarity index 100% rename from src/content/docs/dropins/all/branding.mdx rename to src/content/docs/dropins/branding.mdx diff --git a/src/content/docs/dropins/cart/slots.mdx b/src/content/docs/dropins/cart/slots.mdx index 32da83176..39a13c624 100644 --- a/src/content/docs/dropins/cart/slots.mdx +++ b/src/content/docs/dropins/cart/slots.mdx @@ -8,7 +8,7 @@ tableOfContents: Learn about the slots provided in the Cart drop-in component. -[Extending drop-in components](/dropins/all/extending/) describes default properties available to all slots. +[Extending drop-in components](/dropins/extending/) describes default properties available to all slots. ## CartSummaryList slots diff --git a/src/content/docs/dropins/checkout/slots.mdx b/src/content/docs/dropins/checkout/slots.mdx index 132678ca6..aa498c596 100644 --- a/src/content/docs/dropins/checkout/slots.mdx +++ b/src/content/docs/dropins/checkout/slots.mdx @@ -10,7 +10,7 @@ import Aside from '@components/Aside.astro'; Learn about the slots provided in the checkout drop-in component. -[Extending drop-in components](/dropins/all/extending/) describes the default properties available to all slots. +[Extending drop-in components](/dropins/extending/) describes the default properties available to all slots. ## PaymentMethods slots diff --git a/src/content/docs/dropins/all/creating.mdx b/src/content/docs/dropins/creating.mdx similarity index 100% rename from src/content/docs/dropins/all/creating.mdx rename to src/content/docs/dropins/creating.mdx diff --git a/src/content/docs/dropins/all/extending.mdx b/src/content/docs/dropins/extending.mdx similarity index 100% rename from src/content/docs/dropins/all/extending.mdx rename to src/content/docs/dropins/extending.mdx diff --git a/src/content/docs/dropins/all/installing.mdx b/src/content/docs/dropins/installing.mdx similarity index 100% rename from src/content/docs/dropins/all/installing.mdx rename to src/content/docs/dropins/installing.mdx diff --git a/src/content/docs/dropins/all/introduction.mdx b/src/content/docs/dropins/introduction.mdx similarity index 79% rename from src/content/docs/dropins/all/introduction.mdx rename to src/content/docs/dropins/introduction.mdx index 4ba208651..f4ac8b3c1 100644 --- a/src/content/docs/dropins/all/introduction.mdx +++ b/src/content/docs/dropins/introduction.mdx @@ -66,16 +66,16 @@ All drop-in components can be customized in five ways: design tokens, CSS classe ### Design tokens -[Design tokens](/dropins/all/branding/) are the quickest way to customize your storefront. By changing the default token values with your own brand colors, typography, spacing, and shapes, you can make quick, global brand changes to your entire storefront. +[Design tokens](/dropins/branding/) are the quickest way to customize your storefront. By changing the default token values with your own brand colors, typography, spacing, and shapes, you can make quick, global brand changes to your entire storefront. ### CSS classes -[CSS classes](/dropins/all/styling/) provide deeper style changes for drop-in components than design tokens. Overriding or adding new CSS classes allows you to restyle specific areas of the drop-in component. You'll find best practices for styling here. +[CSS classes](/dropins/styling/) provide deeper style changes for drop-in components than design tokens. Overriding or adding new CSS classes allows you to restyle specific areas of the drop-in component. You'll find best practices for styling here. ### Slots -[Slots](/dropins/all/extending/) provide the deepest level of customization. Slots are built-in extension points in the drop-in component to add your own UI components and functions. You'll learn how powerful slots can be. +[Slots](/dropins/extending/) provide the deepest level of customization. Slots are built-in extension points in the drop-in component to add your own UI components and functions. You'll learn how powerful slots can be. ### Localization -[Localization](/dropins/all/labeling/) is one of the easiest ways to customize drop-in components for a region. This topic shows you how to add and use a second language file in your drop-in components. +[Localization](/dropins/labeling/) is one of the easiest ways to customize drop-in components for a region. This topic shows you how to add and use a second language file in your drop-in components. diff --git a/src/content/docs/dropins/all/labeling.mdx b/src/content/docs/dropins/labeling.mdx similarity index 98% rename from src/content/docs/dropins/all/labeling.mdx rename to src/content/docs/dropins/labeling.mdx index d72f23c23..310200004 100644 --- a/src/content/docs/dropins/all/labeling.mdx +++ b/src/content/docs/dropins/labeling.mdx @@ -1,5 +1,5 @@ --- -title: Labeling and localizing drop-in components +title: Localizing drop-in components description: How to localize your drop-in components. sidebar: label: Labeling @@ -26,7 +26,7 @@ In this topic, you will learn how to update drop-in component labels by using th ### Placeholders file -A `placeholders` content sheet where you can manage labels for your storefront, which includes localization. See the [Placeholders file](/resources/placeholders/) for more information. +A `placeholders` content sheet where you can manage labels for your storefront, which includes localization. See the [Placeholders file](https://www.aem.live/docs/placeholders) for more information. ### Language objects diff --git a/src/content/docs/dropins/all/layouts.mdx b/src/content/docs/dropins/layouts.mdx similarity index 100% rename from src/content/docs/dropins/all/layouts.mdx rename to src/content/docs/dropins/layouts.mdx diff --git a/src/content/docs/dropins/all/linking.mdx b/src/content/docs/dropins/linking.mdx similarity index 100% rename from src/content/docs/dropins/all/linking.mdx rename to src/content/docs/dropins/linking.mdx diff --git a/src/content/docs/dropins/order/slots.mdx b/src/content/docs/dropins/order/slots.mdx index 6447d1daf..754f0ff81 100644 --- a/src/content/docs/dropins/order/slots.mdx +++ b/src/content/docs/dropins/order/slots.mdx @@ -5,7 +5,7 @@ description: Learn about the slots provided in the order drop-in component. This topic describes the slots that are provided in the order drop-in component. -[Extending drop-in components](/dropins/all/extending/) describes the default properties available to all slots. +[Extending drop-in components](/dropins/extending/) describes the default properties available to all slots. ## CreateReturn slots diff --git a/src/content/docs/dropins/product-details/index.mdx b/src/content/docs/dropins/product-details/index.mdx index 9ff2ca4d3..a1e0b2dd2 100644 --- a/src/content/docs/dropins/product-details/index.mdx +++ b/src/content/docs/dropins/product-details/index.mdx @@ -59,4 +59,4 @@ The PDP component supports rendering different product types configured in your Generating product metadata is crucial for optimizing search engine visibility, enhancing user experience, integrating with social media, supporting ecommerce functionality, ensuring compliance, and enabling data-driven decision-making. -The Commerce boilerplate provides a [metadata generation script](/setup/seo/metadata/#generate-metadata) that fetches product data from the Catalog Service GraphQL API and generates meta tags and structured data in JSON-LD format. The script writes the metadata to an Excel file, which you can upload to Edge Delivery Services. +The Commerce boilerplate provides a [metadata generation script](/setup/metadata/#generate-metadata) that fetches product data from the Catalog Service GraphQL API and generates meta tags and structured data in JSON-LD format. The script writes the metadata to an Excel file, which you can upload to Edge Delivery Services. diff --git a/src/content/docs/dropins/product-details/slots.mdx b/src/content/docs/dropins/product-details/slots.mdx index 4fe0bf544..12bad82b3 100644 --- a/src/content/docs/dropins/product-details/slots.mdx +++ b/src/content/docs/dropins/product-details/slots.mdx @@ -39,7 +39,7 @@ The following slots are not currently in use within the default PDP drop-in: ## PDP SlotProps -The slots for product details are defined in the `ProductDetailsProps` interface. Each slot comes with a set of [primitive functions](/dropins/all/extending/) and may be extended with custom functions, such as `appendButton`. +The slots for product details are defined in the `ProductDetailsProps` interface. Each slot comes with a set of [primitive functions](/dropins/extending/) and may be extended with custom functions, such as `appendButton`. ```typescript slots?: { diff --git a/src/content/docs/dropins/all/slots.mdx b/src/content/docs/dropins/slots.mdx similarity index 100% rename from src/content/docs/dropins/all/slots.mdx rename to src/content/docs/dropins/slots.mdx diff --git a/src/content/docs/dropins/all/styling.mdx b/src/content/docs/dropins/styling.mdx similarity index 100% rename from src/content/docs/dropins/all/styling.mdx rename to src/content/docs/dropins/styling.mdx diff --git a/src/content/docs/dropins/user-auth/slots.mdx b/src/content/docs/dropins/user-auth/slots.mdx index 9e9a985a3..f4d2b85ef 100644 --- a/src/content/docs/dropins/user-auth/slots.mdx +++ b/src/content/docs/dropins/user-auth/slots.mdx @@ -9,7 +9,7 @@ import OptionsTable from '@components/OptionsTable.astro'; The UserAuth drop-in component provides several slots that can be used to customize the presentation of its containers. -[Extending drop-in components](/dropins/all/extending/) describes default properties available to all slots. +[Extending drop-in components](/dropins/extending/) describes default properties available to all slots. ## PrivacyPolicyConsent slot diff --git a/src/content/docs/get-started/boilerplate-project.mdx b/src/content/docs/get-started/boilerplate-project.mdx index ecc9f5072..2deaddcc9 100644 --- a/src/content/docs/get-started/boilerplate-project.mdx +++ b/src/content/docs/get-started/boilerplate-project.mdx @@ -109,11 +109,11 @@ The file structure of the storefront boilerplate is shown here. Detailed descrip ### Commerce drop-in components -Full-featured shopping components that turn websites into storefronts. [Drop-in components](/setup/discovery/architecture/#drop-in-components-and-widgets) are not primitive components, like Carousels and Galleries. They provide the entire storefront shopping experience for a website using pages and other commerce features. +Full-featured shopping components that turn websites into storefronts. [Drop-in components](/setup/architecture/#drop-in-components-and-widgets) are not primitive components, like Carousels and Galleries. They provide the entire storefront shopping experience for a website using pages and other commerce features. ### Commerce blocks -The integration of Commerce drop-in components into the Edge Delivery Services architecture of JavaScript blocks and document-based authoring. [Commerce blocks](/setup/discovery/architecture/#commerce-blocks) are the components that provide the content and layout for commerce pages in the storefront. +The integration of Commerce drop-in components into the Edge Delivery Services architecture of JavaScript blocks and document-based authoring. [Commerce blocks](/setup/architecture/#commerce-blocks) are the components that provide the content and layout for commerce pages in the storefront. ### Content blocks diff --git a/src/content/docs/troubleshooting/faq.mdx b/src/content/docs/get-started/faq.mdx similarity index 100% rename from src/content/docs/troubleshooting/faq.mdx rename to src/content/docs/get-started/faq.mdx diff --git a/src/content/docs/troubleshooting/pagespeed-issues.mdx b/src/content/docs/get-started/pagespeed-issues.mdx similarity index 100% rename from src/content/docs/troubleshooting/pagespeed-issues.mdx rename to src/content/docs/get-started/pagespeed-issues.mdx diff --git a/src/content/docs/merchants/get-started/experiments.mdx b/src/content/docs/merchants/get-started/experiments.mdx index f7c6fe626..ea13d1b42 100644 --- a/src/content/docs/merchants/get-started/experiments.mdx +++ b/src/content/docs/merchants/get-started/experiments.mdx @@ -46,7 +46,7 @@ To install and configure the plugin, follow the instructions in the [AEM Experim ### Placeholders file -A `placeholders` sheet in your content folder where you change and maintain your storefront's labels, which includes localization. See the [Placeholders file](/resources/placeholders/) for more information. +A `placeholders` sheet in your content folder where you change and maintain your storefront's labels, which includes localization. diff --git a/src/content/docs/merchants/get-started/multistore.mdx b/src/content/docs/merchants/get-started/multistore.mdx index f2bed7a90..47a3c2450 100644 --- a/src/content/docs/merchants/get-started/multistore.mdx +++ b/src/content/docs/merchants/get-started/multistore.mdx @@ -17,7 +17,7 @@ To maintain storefronts that implement Edge Delivery Services, you must be famil * [Authoring and Publishing Content](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/edge-delivery/document-authoring/authoring) * [Placeholders](https://www.aem.live/docs/placeholders) * [Adobe Commerce Configuration Scope](https://experienceleague.adobe.com/en/docs/commerce-admin/config/scope-change) -* [Storefront Configuration](/setup/configuration/commerce-configuration/) +* [Storefront Configuration](/setup/commerce-configuration/) * [Folder Mapping](https://www.aem.live/developer/folder-mapping) ## Big Picture @@ -120,9 +120,9 @@ To learn more about the Config Service, please see [aem.live's documentation](ht ### Site Config -You must update your [storefront config](/setup/configuration/commerce-configuration/) to include configuration overrides for the new store view. In this file, you'll define store-view specific settings, such as service headers and analytics values. The `key` of each overridden object must match the root folder path of the corresponding store view. These values will be merged into the default configuration. +You must update your [storefront config](/setup/commerce-configuration/) to include configuration overrides for the new store view. In this file, you'll define store-view specific settings, such as service headers and analytics values. The `key` of each overridden object must match the root folder path of the corresponding store view. These values will be merged into the default configuration. -The `analytics` section contains the Adobe Commerce environment variables for the store view. These variables are used by the Analytics API. For more details, see [Analytics](/setup/analytics/instrumentation). +The `analytics` section contains the Adobe Commerce environment variables for the store view. These variables are used by the Analytics API. For more details, see [Analytics](/setup/instrumentation). ```json { diff --git a/src/content/docs/releases/index.mdx b/src/content/docs/releases/index.mdx index 3f29926a8..9156cc2ca 100644 --- a/src/content/docs/releases/index.mdx +++ b/src/content/docs/releases/index.mdx @@ -49,12 +49,12 @@ Slots are built-in extension points in the drop-in components to add your own UI | Type | Description | |---|---| | Default properties available to all slots: | Function signatures of the following functions:
`prependSibling`
`prependChild`
`replaceWith`
`appendChild`
`appendSibling`
`getSlotElement`
`onChange` | -| | Structure of the [`dictionary`](/dropins/all/labeling/#drop-in-component-dictionaries) object | +| | Structure of the [`dictionary`](/dropins/labeling/#drop-in-component-dictionaries) object | | Individual drop-in slots | Function signatures as defined elsewhere on this site (for example, [cart slots](https://experienceleague.adobe.com/developer/commerce/storefront/dropins/cart/slots/)) | #### Drop-in design tokens -Drop-in [design tokens](/dropins/all/branding/#design-tokens) are defined in the drop-in SDK and are used by the drop-in components to style the storefront application. +Drop-in [design tokens](/dropins/branding/#design-tokens) are defined in the drop-in SDK and are used by the drop-in components to style the storefront application. ## Drop-in components diff --git a/src/content/docs/resources/index.mdx b/src/content/docs/resources/index.mdx deleted file mode 100644 index b558d83ff..000000000 --- a/src/content/docs/resources/index.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Overview -description: Reference the files that power the Adobe Commerce Storefront. ---- - -import PlaceholdersTable from './placeholders.mdx'; -import CardGrid from '@components/CardGrid.astro'; -import Card from '@components/Card.astro'; -import LinkCard from '@components/LinkCard.astro'; - - - - \ No newline at end of file diff --git a/src/content/docs/resources/placeholders.mdx b/src/content/docs/resources/placeholders.mdx deleted file mode 100644 index 7712a1fb7..000000000 --- a/src/content/docs/resources/placeholders.mdx +++ /dev/null @@ -1,528 +0,0 @@ ---- -title: Placeholders file -description: Placeholders file -tableOfContents: false ---- - - -The `placeholders` file is the source for storefront labels across drop-in components. The `placeholders` file has two columns: **Key** and **Value**. The Key column contains the text variables that are replaced at runtime. The Value column contains the text values that replace the variables. This file provides a quick and easy way for content creators and merchants to make changes to the site's labels without developer involvement. - -## Placeholders default values - -The initial values in the `placeholder` file within the boilerplate's starter content provides the default out-of-the-box labels for the drop-in components. - -| **Key** | **Value** | -|-----------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PDP\.Product\.Incrementer\.label | Item Quantity | -| PDP\.Product\.OutOfStock\.label | Out of Stock | -| PDP\.Product\.AddToCart\.label | Add to Cart | -| PDP\.Product\.Details\.label | Details | -| PDP\.Product\.RegularPrice\.label | Regular Price | -| PDP\.Product\.SpecialPrice\.label | Special Price | -| PDP\.Product\.PriceRange\.From\.label | From | -| PDP\.Product\.PriceRange\.To\.label | to | -| PDP\.Product\.Image\.label | \{product\} Image \{key\} of \{total\} | -| PDP\.Swatches\.Required\.label | Required | -| PDP\.Swatches\.ChooseOption\.label | Choose an option | -| PDP\.Carousel\.label | Carousel | -| PDP\.Carousel\.Next\.label | Next | -| PDP\.Carousel\.Previous\.label | Previous | -| PDP\.Carousel\.Slide\.label | Slide | -| PDP\.Carousel\.Controls\.label | Carousel Controls | -| PDP\.Carousel\.Controls\.Button\.label | Show slide \{key\} of \{total\} | -| PDP\.Overlay\.Close\.label | Close | -| PDP\.Zoom\.Close\.label | Close | -| Cart\.Cart\.heading | Shopping Cart \(\{count\}\) | -| Cart\.Cart\.editCart | Edit | -| Cart\.Cart\.viewAll | View all in cart | -| Cart\.Cart\.viewMore | View more | -| Cart\.MiniCart\.heading | Shopping Cart \(\{count\}\) | -| Cart\.MiniCart\.subtotal | Subtotal | -| Cart\.MiniCart\.subtotalExcludingTaxes | Subtotal excluding taxes | -| Cart\.MiniCart\.cartLink | View Cart | -| Cart\.MiniCart\.checkoutLink | Checkout | -| Cart\.EmptyCart\.heading | Your cart is empty | -| Cart\.EmptyCart\.cta | Start shopping | -| Cart\.PriceSummary\.taxToBeDetermined | TBD | -| Cart\.PriceSummary\.checkout | Checkout | -| Cart\.PriceSummary\.orderSummary | Order Summary | -| Cart\.PriceSummary\.subTotal\.label | Subtotal | -| Cart\.PriceSummary\.subTotal\.withTaxes | Including taxes | -| Cart\.PriceSummary\.subTotal\.withoutTaxes | excluding taxes | -| Cart\.PriceSummary\.shipping\.label | Shipping | -| Cart\.PriceSummary\.shipping\.editZipAction | Apply | -| Cart\.PriceSummary\.shipping\.estimated | Estimated Shipping | -| Cart\.PriceSummary\.shipping\.estimatedDestination | Estimated Shipping to | -| Cart\.PriceSummary\.shipping\.destinationLinkAriaLabel | Change destination | -| Cart\.PriceSummary\.shipping\.zipPlaceholder | Zip Code | -| Cart\.PriceSummary\.shipping\.withTaxes | Including taxes | -| Cart\.PriceSummary\.shipping\.withoutTaxes | excluding taxes | -| Cart\.PriceSummary\.shipping\.alternateField\.zip | Estimate using country/zip | -| Cart\.PriceSummary\.shipping\.alternateField\.state | Estimate using country/state | -| Cart\.PriceSummary\.taxes\.total | Tax Total | -| Cart\.PriceSummary\.taxes\.totalOnly | Tax | -| Cart\.PriceSummary\.taxes\.breakdown | Taxes | -| Cart\.PriceSummary\.taxes\.showBreakdown | Show Tax Breakdown | -| Cart\.PriceSummary\.taxes\.hideBreakdown | Hide Tax Breakdown | -| Cart\.PriceSummary\.taxes\.estimated | Estimated Tax | -| Cart\.PriceSummary\.total\.estimated | Estimated Total | -| Cart\.PriceSummary\.total\.free | Free | -| Cart\.PriceSummary\.total\.label | Total | -| Cart\.PriceSummary\.total\.withoutTax | Total excluding taxes | -| Cart\.PriceSummary\.estimatedShippingForm\.country\.placeholder | Country | -| Cart\.PriceSummary\.estimatedShippingForm\.state\.placeholder | State | -| Cart\.PriceSummary\.estimatedShippingForm\.zip\.placeholder | Zip Code | -| Cart\.PriceSummary\.estimatedShippingForm\.apply\.label | Apply | -| Cart\.PriceSummary\.freeShipping | Free | -| Cart\.PriceSummary\.coupon\.applyAction | Apply | -| Cart\.PriceSummary\.coupon\.placeholder | Enter code | -| Cart\.PriceSummary\.coupon\.title | Discount code | -| Cart\.CartItem\.discountedPrice | Discounted Price | -| Cart\.CartItem\.download | file | -| Cart\.CartItem\.message | Note | -| Cart\.CartItem\.recipient | To | -| Cart\.CartItem\.regularPrice | Regular Price | -| Cart\.CartItem\.sender | From | -| Cart\.CartItem\.file | \{count\} file | -| Cart\.CartItem\.files | \{count\} files | -| Cart\.CartItem\.lowInventory | Only \{count\} left\! | -| Cart\.CartItem\.insufficientQuantity | Only \{inventory\} of \{count\} in stock | -| Cart\.CartItem\.insufficientQuantityGeneral | Not enough items for sale | -| Cart\.CartItem\.notAvailableMessage | Requested qty\. not available | -| Cart\.CartItem\.discountPercentage | \{discount\}% off | -| Cart\.CartItem\.savingsAmount | Savings | -| Cart\.EstimateShipping\.label | Shipping | -| Cart\.EstimateShipping\.editZipAction | Apply | -| Cart\.EstimateShipping\.estimated | Estimated Shipping | -| Cart\.EstimateShipping\.estimatedDestination | Estimated Shipping to | -| Cart\.EstimateShipping\.destinationLinkAriaLabel | Change destination | -| Cart\.EstimateShipping\.zipPlaceholder | Zip Code | -| Cart\.EstimateShipping\.withTaxes | Including taxes | -| Cart\.EstimateShipping\.withoutTaxes | excluding taxes | -| Cart\.EstimateShipping\.alternateField\.zip | Estimate using country/zip | -| Cart\.EstimateShipping\.alternateField\.state | Estimate using country/state | -| Cart\.OutOfStockMessage\.heading | Your cart contains items with limited stock | -| Cart\.OutOfStockMessage\.message | Please adjust quantities to continue | -| Cart\.OutOfStockMessage\.alert | Out of stock | -| Cart\.OutOfStockMessage\.action | Remove all out of stock items from cart | -| Checkout\.title | Checkout | -| Checkout\.LoginForm\.title | Contact details | -| Checkout\.LoginForm\.account | Already have an account? | -| Checkout\.LoginForm\.ariaLabel | Email | -| Checkout\.LoginForm\.invalidEmailError | Please enter a valid email address\. | -| Checkout\.LoginForm\.missingEmailError | Enter an email address\. | -| Checkout\.LoginForm\.emailExists\.alreadyHaveAccount | It looks like you already have an account\. | -| Checkout\.LoginForm\.emailExists\.signInButton | Sign in | -| Checkout\.LoginForm\.emailExists\.forFasterCheckout | for a faster checkout\. | -| Checkout\.LoginForm\.floatingLabel | Email \* | -| Checkout\.LoginForm\.placeholder | Enter your email address | -| Checkout\.LoginForm\.signIn | Sign In | -| Checkout\.LoginForm\.switch | Do you want to switch account? | -| Checkout\.LoginForm\.signOut | Sign Out | -| Checkout\.ShippingMethods\.title | Shipping options | -| Checkout\.ShippingMethods\.emptyState | This order can't be shipped to the address provided\. Please review the address details you entered and make sure they're correct\. | -| Checkout\.BillToShippingAddress\.title | Bill to shipping address | -| Checkout\.PaymentMethods\.title | Payment | -| Checkout\.PaymentMethods\.emptyState | No payment methods available | -| Checkout\.OutOfStock\.title | Your cart contains items that are out of stock | -| Checkout\.OutOfStock\.message | The following items are out of stock: | -| Checkout\.OutOfStock\.actions\.reviewCart | Review cart | -| Checkout\.OutOfStock\.actions\.removeOutOfStock | Remove out of stock items | -| Checkout\.OutOfStock\.lowInventory\.one | Last item\! | -| Checkout\.OutOfStock\.lowInventory\.many | Only \{\{count\}\} left\! | -| Checkout\.OutOfStock\.alert | Out of stock\! | -| Checkout\.PlaceOrder\.button | Place Order | -| Checkout\.ServerError\.title | We were unable to process your order | -| Checkout\.ServerError\.contactSupport | If you continue to have issues, please contact support\. | -| Checkout\.ServerError\.unexpected | An unexpected error occurred while processing your order\. Please try again later\. | -| Checkout\.ServerError\.button | Try again | -| Checkout\.EmptyCart\.title | Your cart is empty | -| Checkout\.EmptyCart\.button | Start shopping | -| Checkout\.MergedCartBanner\.items\.one | 1 item from a previous session was added to your cart\. Please review your new subtotal\. | -| Checkout\.MergedCartBanner\.items\.many | \{\{count\}\} items from a previous session were added to your cart\. Please review your new subtotal\. | -| Checkout\.EstimateShipping\.estimated | Estimated Shipping | -| Checkout\.EstimateShipping\.freeShipping | Free | -| Checkout\.EstimateShipping\.label | Shipping | -| Checkout\.EstimateShipping\.taxToBeDetermined | TBD | -| Checkout\.EstimateShipping\.withTaxes | Including taxes | -| Checkout\.EstimateShipping\.withoutTaxes | Excluding taxes | -| Checkout\.OrderConfirmationHeader\.title | \{\{name\}\}, thank you for your order\! | -| Checkout\.OrderConfirmationHeader\.defaultTitle | Thank you for your order\! | -| Checkout\.OrderConfirmationHeader\.order | ORDER \#\{\{order\}\} | -| Checkout\.OrderConfirmationHeader\.CreateAccount\.message | Save your information for faster checkout next time\. | -| Checkout\.OrderConfirmationHeader\.CreateAccount\.button | Create an account | -| Checkout\.TermsAndConditions\.label | I have read, understand, and accept the Terms of Use, Terms of Sales, Privacy Policy, and Return Policy\. | -| Checkout\.TermsAndConditions\.error | Please accept the Terms and Conditions to continue\. | -| OrderConfirmation\.Header\.title | \{\{name\}\}, thank you for your order\! | -| OrderConfirmation\.Header\.defaultTitle | Thank you for your order\! | -| OrderConfirmation\.Header\.order | ORDER \#\{\{order\}\} | -| OrderConfirmation\.Header\.CreateAccount\.message | Save your information for faster checkout next time\. | -| OrderConfirmation\.Header\.CreateAccount\.button | Create an account | -| OrderConfirmation\.OrderSearchForm\.title | Enter your information to view order details | -| OrderConfirmation\.OrderSearchForm\.description | You can find your order number in the receipt you received via email\. | -| OrderConfirmation\.OrderSearchForm\.button | View Order | -| OrderConfirmation\.OrderSearchForm\.email | Email | -| OrderConfirmation\.OrderSearchForm\.postcode | Zip Code | -| OrderConfirmation\.OrderSearchForm\.orderNumber | Order Number | -| OrderConfirmation\.OrderSummary\.title | Order summary | -| OrderConfirmation\.OrderSummary\.total | Total | -| OrderConfirmation\.OrderSummary\.totalExclTax | Total excluding taxes | -| OrderConfirmation\.OrderSummary\.subtotal | Subtotal | -| OrderConfirmation\.OrderSummary\.tax | Tax | -| OrderConfirmation\.OrderSummary\.taxTotal | Tax total | -| OrderConfirmation\.OrderSummary\.taxBreakdown | Taxes | -| OrderConfirmation\.OrderSummary\.includingTaxes | Including taxes | -| OrderConfirmation\.OrderSummary\.shipping | Shipping | -| OrderConfirmation\.OrderSummary\.freeShipping | Free shipping | -| OrderConfirmation\.Message\.title | Your order is confirmed | -| OrderConfirmation\.Message\.description | We have successfully processed your order and will be soon prepared for shipping\.
You will also receive an email with details and we will let you know when your order has shipped\. | -| OrderConfirmation\.Details\.title | Order details | -| OrderConfirmation\.Details\.contact | Contact details | -| OrderConfirmation\.Details\.shippingAddress | Shipping address | -| OrderConfirmation\.Details\.billingAddress | Billing address | -| OrderConfirmation\.Details\.shippingMethod | Shipping method | -| OrderConfirmation\.Details\.freeShipping | Free shipping | -| OrderConfirmation\.Details\.paymentMethod | Payment method | -| OrderConfirmation\.Footer\.continueShopping | Continue shopping | -| OrderConfirmation\.Footer\.help | Need help? | -| OrderConfirmation\.Footer\.contactSupport | Contact us | -| OrderConfirmation\.CartSummary\.title | Your order | -| OrderConfirmation\.CartSummary\.GiftCard\.sender | Sender | -| OrderConfirmation\.CartSummary\.GiftCard\.recipient | Recipient | -| OrderConfirmation\.Errors\.invalidOrder | Invalid order\. Please try again\. | -| OrderConfirmation\.Errors\.invalidSearch | No order found with these order details\. | -| OrderConfirmation\.Errors\.unknown | Something went wrong\. Please try again\. | -| Order\.CreateReturn\.headerText | Return items | -| Order\.CreateReturn\.downloadableCount | Files | -| Order\.CreateReturn\.returnedItems | Returned items: | -| Order\.CreateReturn\.stockStatus\.inStock | In stock | -| Order\.CreateReturn\.stockStatus\.outOfStock | Out of stock | -| Order\.CreateReturn\.giftCard\.sender | Sender | -| Order\.CreateReturn\.giftCard\.recipient | Recipient | -| Order\.CreateReturn\.giftCard\.message | Note | -| Order\.CreateReturn\.success\.title | Return submitted | -| Order\.CreateReturn\.success\.message | Your return request has been successfully submitted\. | -| Order\.CreateReturn\.buttons\.nextStep | Continue | -| Order\.CreateReturn\.buttons\.backStep | Back | -| Order\.CreateReturn\.buttons\.submit | Submit return | -| Order\.CreateReturn\.buttons\.backStore | Back to order | -| Order\.OrderCostSummary\.headerText | Order summary | -| Order\.OrderCostSummary\.headerReturnText | Return summary | -| Order\.OrderCostSummary\.subtotal\.title | Subtotal | -| Order\.OrderCostSummary\.shipping\.title | Shipping | -| Order\.OrderCostSummary\.shipping\.freeShipping | Free shipping | -| Order\.OrderCostSummary\.tax\.accordionTitle | Taxes | -| Order\.OrderCostSummary\.tax\.accordionTotalTax | Tax Total | -| Order\.OrderCostSummary\.tax\.totalExcludingTaxes | Total excluding taxes | -| Order\.OrderCostSummary\.tax\.title | Tax | -| Order\.OrderCostSummary\.tax\.incl | Including taxes | -| Order\.OrderCostSummary\.tax\.excl | Excluding taxes | -| Order\.OrderCostSummary\.discount\.title | Discount | -| Order\.OrderCostSummary\.discount\.subtitle | discounted | -| Order\.OrderCostSummary\.total\.title | Total | -| Order\.Returns\.minifiedView\.returnsList\.viewAllOrdersButton | View all returns | -| Order\.Returns\.minifiedView\.returnsList\.ariaLabelLink | Redirect to full order information | -| Order\.Returns\.minifiedView\.returnsList\.emptyOrdersListMessage | No returns | -| Order\.Returns\.minifiedView\.returnsList\.minifiedViewTitle | Recent returns | -| Order\.Returns\.minifiedView\.returnsList\.orderNumber | Order number: | -| Order\.Returns\.minifiedView\.returnsList\.returnNumber | Return number: | -| Order\.Returns\.minifiedView\.returnsList\.carrier | Carrier: | -| Order\.Returns\.minifiedView\.returnsList\.itemText\.none | | -| Order\.Returns\.minifiedView\.returnsList\.itemText\.one | item | -| Order\.Returns\.minifiedView\.returnsList\.itemText\.many | items | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.pending | Pending | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.authorized | Authorized | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.partiallyAuthorized | Partially authorized | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.received | Received | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.partiallyReceived | Partially received | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.approved | Approved | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.partiallyApproved | Partially approved | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.rejected | Rejected | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.partiallyRejected | Partially rejected | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.denied | Denied | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.processedAndClosed | Processed and closed | -| Order\.Returns\.minifiedView\.returnsList\.returnStatus\.closed | Closed | -| Order\.Returns\.fullSizeView\.returnsList\.viewAllOrdersButton | View all orders | -| Order\.Returns\.fullSizeView\.returnsList\.ariaLabelLink | Redirect to full order information | -| Order\.Returns\.fullSizeView\.returnsList\.emptyOrdersListMessage | No returns | -| Order\.Returns\.fullSizeView\.returnsList\.minifiedViewTitle | Returns | -| Order\.Returns\.fullSizeView\.returnsList\.orderNumber | Order number: | -| Order\.Returns\.fullSizeView\.returnsList\.returnNumber | Return number: | -| Order\.Returns\.fullSizeView\.returnsList\.carrier | Carrier: | -| Order\.Returns\.fullSizeView\.returnsList\.itemText\.none | | -| Order\.Returns\.fullSizeView\.returnsList\.itemText\.one | item | -| Order\.Returns\.fullSizeView\.returnsList\.itemText\.many | items | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.pending | Pending | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.authorized | Authorized | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.partiallyAuthorized | Partially authorized | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.received | Received | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.partiallyReceived | Partially received | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.approved | Approved | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.partiallyApproved | Partially approved | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.rejected | Rejected | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.partiallyRejected | Partially rejected | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.denied | Denied | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.processedAndClosed | Processed and closed | -| Order\.Returns\.fullSizeView\.returnsList\.returnStatus\.closed | Closed | -| Order\.OrderProductListContent\.cancelledTitle | Cancelled | -| Order\.OrderProductListContent\.allOrdersTitle | Your order | -| Order\.OrderProductListContent\.returnedTitle | Returned | -| Order\.OrderProductListContent\.refundedTitle | Your refunded | -| Order\.OrderProductListContent\.downloadableCount | Files | -| Order\.OrderProductListContent\.stockStatus\.inStock | In stock | -| Order\.OrderProductListContent\.stockStatus\.outOfStock | Out of stock | -| Order\.OrderProductListContent\.GiftCard\.sender | Sender | -| Order\.OrderProductListContent\.GiftCard\.recipient | Recipient | -| Order\.OrderProductListContent\.GiftCard\.message | Note | -| Order\.OrderSearchForm\.title | Enter your information to view order details | -| Order\.OrderSearchForm\.description | You can find your order number in the receipt you received via email\. | -| Order\.OrderSearchForm\.button | View Order | -| Order\.OrderSearchForm\.email | Email | -| Order\.OrderSearchForm\.postcode | Zip Code | -| Order\.OrderSearchForm\.orderNumber | Order Number | -| Order\.Form\.notifications\.requiredFieldError | This is a required field\. | -| Order\.ShippingStatusCard\.orderNumber | Order number: | -| Order\.ShippingStatusCard\.returnNumber | Return number: | -| Order\.ShippingStatusCard\.itemText\.none | | -| Order\.ShippingStatusCard\.itemText\.one | Package contents \(\{\{count\}\} item\) | -| Order\.ShippingStatusCard\.itemText\.many | Package contents \(\{\{count\}\} items\) | -| Order\.ShippingStatusCard\.trackButton | Track package | -| Order\.ShippingStatusCard\.carrier | Carrier: | -| Order\.ShippingStatusCard\.prepositionOf | of | -| Order\.ShippingStatusCard\.returnOrderCardTitle | Package details | -| Order\.ShippingStatusCard\.shippingCardTitle | Package details | -| Order\.ShippingStatusCard\.shippingInfoTitle | Shipping information | -| Order\.ShippingStatusCard\.notYetShippedTitle | Not yet shipped | -| Order\.ShippingStatusCard\.notYetShippedImagesTitle\.singular | Package contents \(\{\{count\}\} item\) | -| Order\.ShippingStatusCard\.notYetShippedImagesTitle\.plural | Package contents \(\{\{count\}\} items\) | -| Order\.OrderStatusContent\.noInfoTitle | Check back later for more details\. | -| Order\.OrderStatusContent\.returnMessage | The order was placed on \{ORDER\_CREATE\_DATE\} and your return process started on \{RETURN\_CREATE\_DATE\} | -| Order\.OrderStatusContent\.returnStatus\.pending | Pending | -| Order\.OrderStatusContent\.returnStatus\.authorized | Authorized | -| Order\.OrderStatusContent\.returnStatus\.partiallyAuthorized | Partially authorized | -| Order\.OrderStatusContent\.returnStatus\.received | Received | -| Order\.OrderStatusContent\.returnStatus\.partiallyReceived | Partially received | -| Order\.OrderStatusContent\.returnStatus\.approved | Approved | -| Order\.OrderStatusContent\.returnStatus\.partiallyApproved | Partially approved"" | -| Order\.OrderStatusContent\.returnStatus\.rejected | Rejected | -| Order\.OrderStatusContent\.returnStatus\.partiallyRejected | Partially rejected | -| Order\.OrderStatusContent\.returnStatus\.denied | Denied | -| Order\.OrderStatusContent\.returnStatus\.processedAndClosed | Processed and closed | -| Order\.OrderStatusContent\.returnStatus\.closed | Closed | -| Order\.OrderStatusContent\.actions\.cancel | Cancel order | -| Order\.OrderStatusContent\.actions\.createReturn | Return or replace | -| Order\.OrderStatusContent\.actions\.createAnotherReturn | Start another return | -| Order\.OrderStatusContent\.actions\.reorder | Reorder | -| Order\.OrderStatusContent\.orderPending\.title | Pending | -| Order\.OrderStatusContent\.orderPending\.message | The order was successfully placed on \{DATE\} and your order is processing\. Check back for more details when your order ships\. | -| Order\.OrderStatusContent\.orderPending\.messageWithoutDate | Your order is processing\. Check back for more details when your order ships\. | -| Order\.OrderStatusContent\.orderProcessing\.title | Processing | -| Order\.OrderStatusContent\.orderProcessing\.message | The order was successfully placed on \{DATE\} and your order is processing\. Check back for more details when your order ships\. | -| Order\.OrderStatusContent\.orderProcessing\.messageWithoutDate | Your order is processing\. Check back for more details when your order ships\. | -| Order\.OrderStatusContent\.orderOnHold\.title | On hold | -| Order\.OrderStatusContent\.orderOnHold\.message | We�ve run into an issue while processing your order on \{DATE\}\. Please check back later or contact us at support@adobe\.com for more information\. | -| Order\.OrderStatusContent\.orderOnHold\.messageWithoutDate | We�ve run into an issue while processing your order\. Please check back later or contact us at support@adobe\.com for more information\. | -| Order\.OrderStatusContent\.orderReceived\.title | Order received | -| Order\.OrderStatusContent\.orderReceived\.message | The order was successfully placed on \{DATE\} and your order is processing\. Check back for more details when your order ships\. | -| Order\.OrderStatusContent\.orderReceived\.messageWithoutDate | Your order is processing\. Check back for more details when your order ships\. | -| Order\.OrderStatusContent\.orderComplete\.title | Complete | -| Order\.OrderStatusContent\.orderComplete\.message | Your order is complete\. Need help with your order? Contact us at support@adobe\.com | -| Order\.OrderStatusContent\.orderCanceled\.title | Canceled | -| Order\.OrderStatusContent\.orderCanceled\.message | This order was cancelled by you\. You should see a refund to your original payment method with 5\-7 business days\. | -| Order\.OrderStatusContent\.orderCanceled\.messageWithoutDate | This order was cancelled by you\. You should see a refund to your original payment method with 5\-7 business days\. | -| Order\.OrderStatusContent\.orderSuspectedFraud\.title | Suspected fraud | -| Order\.OrderStatusContent\.orderSuspectedFraud\.message | We�ve run into an issue while processing your order on \{DATE\}\. Please check back later or contact us at support@adobe\.com for more information\. | -| Order\.OrderStatusContent\.orderSuspectedFraud\.messageWithoutDate | We�ve run into an issue while processing your order\. Please check back later or contact us at support@adobe\.com for more information\. | -| Order\.OrderStatusContent\.orderPaymentReview\.title | Payment Review | -| Order\.OrderStatusContent\.orderPaymentReview\.message | The order was successfully placed on \{DATE\} and your order is processing\. Check back for more details when your order ships\. | -| Order\.OrderStatusContent\.orderPaymentReview\.messageWithoutDate | Your order is processing\. Check back for more details when your order ships\. | -| Order\.OrderStatusContent\.guestOrderCancellationRequested\.title | cancellation requested | -| Order\.OrderStatusContent\.guestOrderCancellationRequested\.message | The cancellation has been requested on \{DATE\}\. Check your email for further instructions\. | -| Order\.OrderStatusContent\.guestOrderCancellationRequested\.messageWithoutDate | The cancellation has been requested\. Check your email for further instructions\. | -| Order\.CustomerDetails\.headerText | Customer information | -| Order\.CustomerDetails\.freeShipping | Free shipping | -| Order\.CustomerDetails\.orderReturnLabels\.createdReturnAt | Return requested on: | -| Order\.CustomerDetails\.orderReturnLabels\.returnStatusLabel | Return status: | -| Order\.CustomerDetails\.orderReturnLabels\.orderNumberLabel | Order number: | -| Order\.CustomerDetails\.returnStatus\.pending | Pending | -| Order\.CustomerDetails\.returnStatus\.authorized | Authorized | -| Order\.CustomerDetails\.returnStatus\.partiallyAuthorized | Partially authorized | -| Order\.CustomerDetails\.returnStatus\.received | Received | -| Order\.CustomerDetails\.returnStatus\.partiallyReceived | Partially received | -| Order\.CustomerDetails\.returnStatus\.approved | Approved | -| Order\.CustomerDetails\.returnStatus\.partiallyApproved | Partially approved | -| Order\.CustomerDetails\.returnStatus\.rejected | Rejected | -| Order\.CustomerDetails\.returnStatus\.partiallyRejected | Partially rejected | -| Order\.CustomerDetails\.returnStatus\.denied | Denied | -| Order\.CustomerDetails\.returnStatus\.processedAndClosed | Processed and closed | -| Order\.CustomerDetails\.returnStatus\.closed | Closed | -| Order\.CustomerDetails\.email\.title | Contact details | -| Order\.CustomerDetails\.shippingAddress\.title | Shipping address | -| Order\.CustomerDetails\.shippingMethods\.title | Shipping method | -| Order\.CustomerDetails\.billingAddress\.title | Billing address | -| Order\.CustomerDetails\.paymentMethods\.title | Payment method | -| Order\.CustomerDetails\.returnInformation\.title | Return details | -| Order\.Errors\.invalidOrder | Invalid order\. Please try again\. | -| Order\.Errors\.invalidSearch | No order found with these order details\. | -| Order\.OrderCancel\.buttonText | Cancel Order | -| Order\.OrderCancelForm\.title | Cancel order | -| Order\.OrderCancelForm\.description | Select a reason for canceling the order | -| Order\.OrderCancelForm\.label | Reason for cancel | -| Order\.OrderCancelForm\.button | Submit Cancellation | -| Order\.OrderCancelForm\.errorHeading | Error | -| Order\.OrderCancelForm\.errorDescription | There was an error processing your order cancellation\. | -| Account\.minifiedView\.CustomerInformation\.containerTitle | Account settings | -| Account\.minifiedView\.CustomerInformation\.genderMale | Male | -| Account\.minifiedView\.CustomerInformation\.genderFemale | Female | -| Account\.minifiedView\.CustomerInformation\.changePassword\.passwordValidationMessage\.chartTwoSymbols | Use characters and numbers or symbols | -| Account\.minifiedView\.CustomerInformation\.changePassword\.passwordValidationMessage\.chartThreeSymbols | Use characters, numbers and symbols | -| Account\.minifiedView\.CustomerInformation\.changePassword\.passwordValidationMessage\.chartFourSymbols | Use uppercase characters, lowercase characters, numbers and symbols | -| Account\.minifiedView\.CustomerInformation\.changePassword\.passwordValidationMessage\.messageLengthPassword | At least \{minLength\} characters long | -| Account\.minifiedView\.CustomerInformation\.changePassword\.passwordValidationMessage\.passwordMismatch | Passwords do not match\. Please make sure both password fields are identical | -| Account\.minifiedView\.CustomerInformation\.changePassword\.passwordValidationMessage\.incorrectCurrentPassword | The current password you entered is incorrect\. Please check and try again\. | -| Account\.minifiedView\.CustomerInformation\.changePassword\.passwordValidationMessage\.passwordUpdateMessage | Your password has been updated | -| Account\.minifiedView\.CustomerInformation\.changePassword\.containerTitle | Change password | -| Account\.minifiedView\.CustomerInformation\.changePassword\.currentPassword\.placeholder | Password | -| Account\.minifiedView\.CustomerInformation\.changePassword\.currentPassword\.floatingLabel | Password | -| Account\.minifiedView\.CustomerInformation\.changePassword\.newPassword\.placeholder | New Password | -| Account\.minifiedView\.CustomerInformation\.changePassword\.newPassword\.floatingLabel | New Password | -| Account\.minifiedView\.CustomerInformation\.changePassword\.confirmPassword\.placeholder | Confirm new password | -| Account\.minifiedView\.CustomerInformation\.changePassword\.confirmPassword\.floatingLabel | Confirm new password | -| Account\.minifiedView\.CustomerInformation\.changePassword\.buttonSecondary | Cancel | -| Account\.minifiedView\.CustomerInformation\.changePassword\.buttonPrimary | Save | -| Account\.minifiedView\.CustomerInformation\.customerInformationCard\.buttonSecondary | Change password | -| Account\.minifiedView\.CustomerInformation\.customerInformationCard\.buttonPrimary | Edit | -| Account\.minifiedView\.CustomerInformation\.customerInformationCard\.accountCreation | Account creation date | -| Account\.minifiedView\.CustomerInformation\.editCustomerInformation\.containerTitle | Edit details | -| Account\.minifiedView\.CustomerInformation\.editCustomerInformation\.buttonSecondary | Cancel | -| Account\.minifiedView\.CustomerInformation\.editCustomerInformation\.buttonPrimary | Save | -| Account\.minifiedView\.CustomerInformation\.editCustomerInformation\.accountSuccess | Your account information has been updated\. | -| Account\.minifiedView\.CustomerInformation\.editCustomerInformation\.accountError | Your account information has not been updated\. | -| Account\.minifiedView\.CustomerInformation\.editCustomerInformation\.passwordField\.placeholder | Password | -| Account\.minifiedView\.CustomerInformation\.editCustomerInformation\.passwordField\.floatingLabel | Password | -| Account\.minifiedView\.Addresses\.containerTitle | Addresses | -| Account\.minifiedView\.Addresses\.editAddressFormTitle | Edit address | -| Account\.minifiedView\.Addresses\.differentAddressFormTitle | Deliver to new address | -| Account\.minifiedView\.Addresses\.viewAllAddressesButton | View address list | -| Account\.minifiedView\.Addresses\.differentAddressButton | Use a different address | -| Account\.minifiedView\.Addresses\.addressCard\.actionRemove | Remove | -| Account\.minifiedView\.Addresses\.addressCard\.actionEdit | Edit | -| Account\.minifiedView\.Addresses\.addressCard\.cardLabelShipping | Shipping | -| Account\.minifiedView\.Addresses\.addressCard\.cardLabelBilling | Billing | -| Account\.minifiedView\.Addresses\.addressCard\.defaultLabelText | DEFAULT | -| Account\.minifiedView\.Addresses\.removeAddressModal\.title | Remove address | -| Account\.minifiedView\.Addresses\.removeAddressModal\.description | Are you sure you would like to remove this address? | -| Account\.minifiedView\.Addresses\.removeAddressModal\.actionCancel | Cancel | -| Account\.minifiedView\.Addresses\.removeAddressModal\.actionConfirm | Remove | -| Account\.minifiedView\.OrdersList\.containerTitle | Recent orders | -| Account\.minifiedView\.OrdersList\.viewAllOrdersButton | View all orders | -| Account\.minifiedView\.OrdersList\.ariaLabelLink | Redirect to full order information | -| Account\.minifiedView\.OrdersList\.dateOrderPlaced | Date order placed | -| Account\.minifiedView\.OrdersList\.OrdersListCard\.orderNumber | Order number: | -| Account\.minifiedView\.OrdersList\.OrdersListCard\.itemsAmount | items | -| Account\.minifiedView\.OrdersList\.OrdersListCard\.carrier | Carrier: | -| Account\.minifiedView\.OrdersList\.OrdersListCard\.returns | Return\(s\): | -| Account\.minifiedView\.OrdersList\.OrdersListCard\.orderDate | Placed on | -| Account\.minifiedView\.OrdersList\.OrdersListSelectDate\.pastSixMonths | Past 6 months | -| Account\.minifiedView\.OrdersList\.OrdersListSelectDate\.currentYear | Current year | -| Account\.minifiedView\.OrdersList\.OrdersListSelectDate\.viewAll | View all | -| Account\.minifiedView\.EmptyList\.Addresses\.message | No saved addresses | -| Account\.minifiedView\.EmptyList\.OrdersList\.message | No orders | -| Account\.fullSizeView\.Addresses\.containerTitle | Addresses | -| Account\.fullSizeView\.Addresses\.editAddressFormTitle | Edit address | -| Account\.fullSizeView\.Addresses\.differentAddressFormTitle | Deliver to new address | -| Account\.fullSizeView\.Addresses\.newAddressFormTitle | Add address | -| Account\.fullSizeView\.Addresses\.addNewAddressButton | Create new | -| Account\.fullSizeView\.Addresses\.differentAddressButton | Use a different address | -| Account\.fullSizeView\.Addresses\.addressCard\.actionRemove | Remove | -| Account\.fullSizeView\.Addresses\.addressCard\.actionEdit | Edit | -| Account\.fullSizeView\.Addresses\.addressCard\.cardLabelShipping | Shipping | -| Account\.fullSizeView\.Addresses\.addressCard\.cardLabelBilling | Billing | -| Account\.fullSizeView\.Addresses\.addressCard\.defaultLabelText | DEFAULT | -| Account\.fullSizeView\.Addresses\.removeAddressModal\.title | Remove address | -| Account\.fullSizeView\.Addresses\.removeAddressModal\.description | Are you sure you would like to remove this address? | -| Account\.fullSizeView\.Addresses\.removeAddressModal\.actionCancel | Cancel | -| Account\.fullSizeView\.Addresses\.removeAddressModal\.actionConfirm | Remove | -| Account\.fullSizeView\.OrdersList\.containerTitle | Your orders | -| Account\.fullSizeView\.OrdersList\.ariaLabelLink | Redirect to full order information | -| Account\.fullSizeView\.OrdersList\.dateOrderPlaced | Date order placed | -| Account\.fullSizeView\.OrdersList\.OrdersListCard\.orderNumber | Order number: | -| Account\.fullSizeView\.OrdersList\.OrdersListCard\.itemsAmount | items | -| Account\.fullSizeView\.OrdersList\.OrdersListCard\.carrier | Carrier: | -| Account\.fullSizeView\.OrdersList\.OrdersListCard\.returns | Return\(s\): | -| Account\.fullSizeView\.OrdersList\.OrdersListCard\.orderDate | Placed on | -| Account\.fullSizeView\.OrdersList\.OrdersListSelectDate\.pastSixMonths | Past 6 months | -| Account\.fullSizeView\.OrdersList\.OrdersListSelectDate\.currentYear | Current year | -| Account\.fullSizeView\.OrdersList\.OrdersListSelectDate\.viewAll | View all | -| Account\.fullSizeView\.EmptyList\.Addresses\.message | No saved addresses | -| Account\.fullSizeView\.EmptyList\.OrdersList\.message | No orders | -| Account\.AddressForm\.formText\.secondaryButton | Cancel | -| Account\.AddressForm\.formText\.primaryButton | Save | -| Account\.AddressForm\.formText\.defaultShippingLabel | Set as default shipping address | -| Account\.AddressForm\.formText\.defaultBillingLabel | Set as default billing address | -| Account\.AddressForm\.formText\.saveAddressBook | Save in address book | -| Account\.FormText\.requiredFieldError | This is a required field\. | -| Account\.FormText\.numericError | Only numeric values are allowed\. | -| Account\.FormText\.alphaNumWithSpacesError | Only alphanumeric characters and spaces are allowed\. | -| Account\.FormText\.alphaNumericError | Only alphanumeric characters are allowed\. | -| Account\.FormText\.alphaError | Only alphabetic characters are allowed\. | -| Account\.FormText\.emailError | Please enter a valid email address\. | -| Account\.FormText\.dateError | Please enter a valid date\. | -| Account\.FormText\.dateLengthError | Date must be between \{min\} and \{max\}\. | -| Account\.FormText\.urlError | Please enter a valid URL, e\.g\., http://www\.adobe\.com\. | -| Account\.FormText\.lengthTextError | Text length must be between \{min\} and \{max\} characters\. | -| Auth\.PasswordValidationMessage\.chartTwoSymbols | Use characters and numbers or symbols | -| Auth\.PasswordValidationMessage\.chartThreeSymbols | Use characters, numbers and symbols | -| Auth\.PasswordValidationMessage\.chartFourSymbols | Use uppercase characters, lowercase characters, numbers and symbols | -| Auth\.PasswordValidationMessage\.messageLengthPassword | At least \{minLength\} characters long | -| Auth\.ResetPasswordForm\.title | Reset your password | -| Auth\.ResetPasswordForm\.buttonPrimary | Reset password | -| Auth\.ResetPasswordForm\.buttonSecondary | Back to sign in | -| Auth\.SignInForm\.title | Sign in | -| Auth\.SignInForm\.buttonPrimary | Sign in | -| Auth\.SignInForm\.buttonSecondary | Sign up | -| Auth\.SignInForm\.buttonTertiary | Forgot password? | -| Auth\.SignUpForm\.title | Sign up | -| Auth\.SignUpForm\.buttonPrimary | Create account | -| Auth\.SignUpForm\.buttonSecondary | Already a member? Sign in | -| Auth\.SignUpForm\.privacyPolicyDefaultText | I�ve read and accept the Terms of Use and Privacy Policy\. | -| Auth\.SignUpForm\.subscribedDefaultText | Subscribe to our newsletter and be the first to know about new arrivals, sales and exclusive offers\. | -| Auth\.SignUpForm\.keepMeLoggedText | Keep me logged in after account creation | -| Auth\.SignUpForm\.failedCreateCustomerAddress | Failed to create customer addresses: | -| Auth\.SignUpForm\.confirmPassword\.placeholder | Confirm password | -| Auth\.SignUpForm\.confirmPassword\.floatingLabel | Confirm password \* | -| Auth\.SignUpForm\.confirmPassword\.passwordMismatch | Passwords do not match\. Please make sure both password fields are identical\. | -| Auth\.UpdatePasswordForm\.title | Update password | -| Auth\.UpdatePasswordForm\.buttonPrimary | Update password | -| Auth\.FormText\.requiredFieldError | This is a required field\. | -| Auth\.FormText\.numericError | Only numeric values are allowed\. | -| Auth\.FormText\.alphaNumWithSpacesError | Only alphanumeric characters and spaces are allowed\. | -| Auth\.FormText\.alphaNumericError | Only alphanumeric characters are allowed\. | -| Auth\.FormText\.alphaError | Only alphabetic characters are allowed\. | -| Auth\.FormText\.emailError | Please enter a valid email address\. | -| Auth\.FormText\.dateError | Please enter a valid date\. | -| Auth\.FormText\.dateLengthError | Date must be between \{min\} and \{max\}\. | -| Auth\.FormText\.dateMaxError | Date must be less than or equal to \{max\}\. | -| Auth\.FormText\.dateMinError | Date must be greater than or equal to \{min\}\. | -| Auth\.FormText\.urlError | Please enter a valid URL, e\.g\., https://www\.website\.com\. | -| Auth\.FormText\.lengthTextError | Text length must be between \{min\} and \{max\} characters\. | -| Auth\.EmailConfirmationForm\.title | Verify your email address | -| Auth\.EmailConfirmationForm\.subtitle | We\`ve sent an email to | -| Auth\.EmailConfirmationForm\.mainText | Check your inbox and click on the link we just send you to confirm your email address and activate your account\. | -| Auth\.EmailConfirmationForm\.buttonSecondary | Resend email | -| Auth\.EmailConfirmationForm\.buttonPrimary | Close | -| Auth\.EmailConfirmationForm\.accountConfirmMessage | Account confirmed | -| Auth\.EmailConfirmationForm\.accountConfirmationEmailSuccessMessage | Congratulations\! Your account at \{email\} email has been successfully confirmed\. | -| Auth\.Notification\.errorNotification | Your password update failed due to validation errors\. Please check your information and try again\. | -| Auth\.Notification\.updatePasswordMessage | The password has been updated\. | -| Auth\.Notification\.updatePasswordActionMessage | Sign in | -| Auth\.Notification\.successPasswordResetEmailNotification | If there is an account associated with \{email\} you will receive an email with a link to reset your password\. | -| Auth\.Notification\.resendEmailNotification\.informationText | This account is not confirmed\. | -| Auth\.Notification\.resendEmailNotification\.buttonText | Resend confirmation email | -| Auth\.Notification\.emailConfirmationMessage | Please check your email for confirmation link\. | -| Auth\.Notification\.technicalErrors\.technicalErrorSendEmail | A technical error occurred while trying to send the email\. Please try again later\. | -| Auth\.SuccessNotification\.headingText | Welcome\! | -| Auth\.SuccessNotification\.messageText | We are glad to see you\! | -| Auth\.SuccessNotification\.primaryButtonText | Continue shopping | -| Auth\.SuccessNotification\.secondaryButtonText | Logout | -| Auth\.Api\.customerTokenErrorMessage | Unable to log in\. Please try again later or contact support if the issue persists\. diff --git a/src/content/docs/setup/discovery/architecture.mdx b/src/content/docs/setup/architecture.mdx similarity index 90% rename from src/content/docs/setup/discovery/architecture.mdx rename to src/content/docs/setup/architecture.mdx index 36d88e912..5ab8397cc 100644 --- a/src/content/docs/setup/discovery/architecture.mdx +++ b/src/content/docs/setup/architecture.mdx @@ -14,7 +14,7 @@ If you're looking for guidance about launching a production-ready, headless Adob ## Big picture -Headless Adobe Commerce storefronts on Edge Delivery Services are built using a composable architecture with domain-driven commerce components called [drop-in components](/dropins/all/introduction/). This architecture allows you to build and deploy a storefront that is composed of multiple Adobe services, each with its own responsibility. Drop-in components are connected through APIs and can be developed, tested, and deployed independently for faster development cycles. +Headless Adobe Commerce storefronts on Edge Delivery Services are built using a composable architecture with domain-driven commerce components called [drop-in components](/dropins/introduction/). This architecture allows you to build and deploy a storefront that is composed of multiple Adobe services, each with its own responsibility. Drop-in components are connected through APIs and can be developed, tested, and deployed independently for faster development cycles. Drop-in components use [Adobe Commerce](https://experienceleague.adobe.com/en/docs/commerce/catalog-service/installation#access-the-service) APIs to provide data and functionality. These components are reusable across projects and integrate out-of-the-box with Edge Delivery Services through the [Commerce boilerplate](https://github.com/hlxsites/aem-boilerplate-commerce). Adobe Commerce storefronts on Edge Delivery Services support doc-based authoring, enabling business users to manage content without developer help. @@ -37,12 +37,12 @@ The Commerce boilerplate provides an integrated set of drop-in components and wi ## Drop-in components and widgets -[Drop-in components](/dropins/all/introduction/) are domain-driven commerce components that provide specific functionality for your storefront. They are designed to be reusable and can be shared across multiple projects. Drop-in components are connected to Adobe Commerce and other services through APIs and can be developed, tested, and deployed independently for faster development cycles. +[Drop-in components](/dropins/introduction/) are domain-driven commerce components that provide specific functionality for your storefront. They are designed to be reusable and can be shared across multiple projects. Drop-in components are connected to Adobe Commerce and other services through APIs and can be developed, tested, and deployed independently for faster development cycles. You can find the integration patterns for drop-in components and widgets as pull requests in the [Commerce boilerplate repository](https://github.com/hlxsites/aem-boilerplate-commerce). @@ -59,7 +59,7 @@ The source code of drop-in components is private. You can add them to your proje - `@dropins/tools` :::note -Adobe recommends using the documented [extension](/dropins/all/extending/) patterns for drop-in components. +Adobe recommends using the documented [extension](/dropins/extending/) patterns for drop-in components. ::: If you cannot use drop-in components and widgets, use the custom PDP and PLP/Search blocks that come with the Commerce boilerplate. @@ -107,7 +107,7 @@ The following links provide the requirements and installation procedures for you ## Storefront Compatibility package -The [Storefront Compatibility package](/setup/configuration/storefront-compatibility/v248) extends the GraphQL schema provided with Adobe Commerce. It provides new mutations and adds missing fields that are needed to implement low-funnel drop-in components, such as the cart, checkout, user account, and order drop-in components. +The [Storefront Compatibility package](/setup/storefront-compatibility/v248/) extends the GraphQL schema provided with Adobe Commerce. It provides new mutations and adds missing fields that are needed to implement low-funnel drop-in components, such as the cart, checkout, user account, and order drop-in components. ## Storefront services diff --git a/src/content/docs/setup/configuration/commerce-configuration.mdx b/src/content/docs/setup/commerce-configuration.mdx similarity index 99% rename from src/content/docs/setup/configuration/commerce-configuration.mdx rename to src/content/docs/setup/commerce-configuration.mdx index ae2cc947c..dca175952 100644 --- a/src/content/docs/setup/configuration/commerce-configuration.mdx +++ b/src/content/docs/setup/commerce-configuration.mdx @@ -15,7 +15,7 @@ In the [Create your storefront tutorial](/get-started/), the template repo provi When implementing your own project, you must update the configuration values with: - The header values specific to your Adobe Commerce Catalog Services environment. -- The Adobe Commerce and Catalog Service GraphQL endpoint that you configured as part of the [content delivery network (CDN) setup](/setup/configuration/content-delivery-network/). +- The Adobe Commerce and Catalog Service GraphQL endpoint that you configured as part of the [content delivery network (CDN) setup](/setup/content-delivery-network/). ## Vocabulary diff --git a/src/content/docs/setup/configuration/index.mdx b/src/content/docs/setup/configuration.mdx similarity index 91% rename from src/content/docs/setup/configuration/index.mdx rename to src/content/docs/setup/configuration.mdx index c2e24b874..b8404073c 100644 --- a/src/content/docs/setup/configuration/index.mdx +++ b/src/content/docs/setup/configuration.mdx @@ -1,5 +1,5 @@ --- -title: Overview +title: Configuration overview description: Learn the differences in implementing Edge Delivery Services projects for Adobe Commerce. --- @@ -16,7 +16,7 @@ Launching a headless Adobe Commerce storefront on Edge Delivery Services require All implementation guidance in this documentation is based on the Commerce boilerplate. ::: -The [Create your storefront tutorial](/get-started/) provides all the information that you need to quickly set up a starter project that uses a pre-configured sample Adobe Commerce backend. After you complete the tutorial, you can [connect](/setup/configuration/commerce-configuration/) your own Adobe Commerce backend to the project. +The [Create your storefront tutorial](/get-started/) provides all the information that you need to quickly set up a starter project that uses a pre-configured sample Adobe Commerce backend. After you complete the tutorial, you can [connect](/setup/commerce-configuration/) your own Adobe Commerce backend to the project. Here's an overview of the process: diff --git a/src/content/docs/setup/configuration/content-delivery-network.mdx b/src/content/docs/setup/content-delivery-network.mdx similarity index 99% rename from src/content/docs/setup/configuration/content-delivery-network.mdx rename to src/content/docs/setup/content-delivery-network.mdx index fd899b13a..9d2ba38ed 100644 --- a/src/content/docs/setup/configuration/content-delivery-network.mdx +++ b/src/content/docs/setup/content-delivery-network.mdx @@ -1,5 +1,5 @@ --- -title: Content delivery network (CDN) +title: CDN configuration description: Learn how to configure a CDN for your Adobe Commerce on Edge Delivery Services storefront project. --- @@ -52,7 +52,7 @@ The entire storefront experience is delivered by Edge Delivery Services. Only so The product catalog and content pages are delivered by Edge Delivery Services. Transactional pages (for example, cart, checkout, and account) are delivered by Commerce. -* [Luma Bridge](/setup/discovery/luma-bridge/) includes the same details as the full storefront option, plus the following: +* [Luma Bridge](/setup/luma-bridge/) includes the same details as the full storefront option, plus the following: * Transactional pages (for example, cart, checkout, and account) are routed to Commerce, depending on the Luma Bridge implementation * Any additional endpoints (such as REST endpoints, `/customer/sections/load`) that are required by the Luma Bridge implementation are routed to Commerce diff --git a/src/content/docs/setup/discovery/data-export-validation.mdx b/src/content/docs/setup/data-export-validation.mdx similarity index 89% rename from src/content/docs/setup/discovery/data-export-validation.mdx rename to src/content/docs/setup/data-export-validation.mdx index 3c03cbd92..64c2b5221 100644 --- a/src/content/docs/setup/discovery/data-export-validation.mdx +++ b/src/content/docs/setup/data-export-validation.mdx @@ -3,7 +3,7 @@ title: Data export validation description: Learn how to validate data exports from your Adobe Commerce backend to your storefront. --- -Data export synchronizes data between an Adobe Commerce instance and connected [storefront services](/setup/discovery/architecture/#storefront-services). Storefront services are required for drop-in components to work correctly. +Data export synchronizes data between an Adobe Commerce instance and connected [storefront services](/setup/architecture/#storefront-services). Storefront services are required for drop-in components to work correctly. Validating the data export is crucial to ensure that the data is correctly synchronized and available for the storefront. You can use the [Data Management Dashboard](https://experienceleague.adobe.com/en/docs/commerce-admin/systems/data-transfer/data-dashboard) to monitor the data sync progress for each service. diff --git a/src/content/docs/setup/configuration/gated-content.mdx b/src/content/docs/setup/gated-content.mdx similarity index 99% rename from src/content/docs/setup/configuration/gated-content.mdx rename to src/content/docs/setup/gated-content.mdx index 5e5431489..be86caa5e 100644 --- a/src/content/docs/setup/configuration/gated-content.mdx +++ b/src/content/docs/setup/gated-content.mdx @@ -1,5 +1,5 @@ --- -title: Gated content +title: Gated content configuration description: Learn how to implement gated content for assets that are not managed by Adobe Commerce. --- diff --git a/src/content/docs/setup/index.mdx b/src/content/docs/setup/index.mdx index 322a5073c..d13eb2a29 100644 --- a/src/content/docs/setup/index.mdx +++ b/src/content/docs/setup/index.mdx @@ -113,7 +113,7 @@ Storefront widgets in Adobe Commerce Live Search are tools that enhance the sear - **[Product Listing Page (PLP)](https://experienceleague.adobe.com/en/docs/commerce/live-search/live-search-storefront/plp-styling)**: This widget provides a searchable product listing page with facets and synonym support, making it easier for users to find products. :::note -See the [drop-in components overview](/dropins/all/introduction/) for a list of all available drop-in components. +See the [drop-in components overview](/dropins/introduction/) for a list of all available drop-in components. ::: If you see gaps in what the drop-in components support, Adobe can help with a plan to achieve your scenarios. For example: diff --git a/src/content/docs/setup/analytics/instrumentation.mdx b/src/content/docs/setup/instrumentation.mdx similarity index 99% rename from src/content/docs/setup/analytics/instrumentation.mdx rename to src/content/docs/setup/instrumentation.mdx index 722e93a3f..09ff425d7 100644 --- a/src/content/docs/setup/analytics/instrumentation.mdx +++ b/src/content/docs/setup/instrumentation.mdx @@ -1,5 +1,5 @@ --- -title: Instrumentation +title: Analytics instrumentation description: Learn how to instrument your Adobe Commerce on Edge Delivery Services storefront project. --- diff --git a/src/content/docs/setup/launch/index.mdx b/src/content/docs/setup/launch.mdx similarity index 92% rename from src/content/docs/setup/launch/index.mdx rename to src/content/docs/setup/launch.mdx index dc411ff5c..57adc6cca 100644 --- a/src/content/docs/setup/launch/index.mdx +++ b/src/content/docs/setup/launch.mdx @@ -1,5 +1,5 @@ --- -title: Checklist +title: Launch checklist description: Verify that you have completed all recommended steps before launching your Adobe Commerce on Edge Delivery Services storefront project. --- @@ -61,15 +61,15 @@ Avoid scheduling a launch shortly before a weekend. The Adobe engineering team m * [ ] When using Adobe Commerce Fastly, request a new CDN purge token for Commerce production environment. Update in Sharepoint in the `.helix/config.xlsx` file (`authToken` and `serviceId`). -* [ ] Validate your [CDN configuration](/setup/configuration/content-delivery-network/) and ensure that caching +* [ ] Validate your [CDN configuration](/setup/content-delivery-network/) and ensure that caching and cache invalidation work as expected. -* [ ] For [multi-store setups](/setup/seo/indexing/#multi-store-setups), add a store-specific cache buster (for example, a query parameter or proxy through CDN configuration) to Catalog Service and Live Search requests. +* [ ] For [multi-store setups](/setup/seo/#multi-store-setups), add a store-specific cache buster (for example, a query parameter or proxy through CDN configuration) to Catalog Service and Live Search requests. ### Security and access -* [ ] Verify/update password reset links. Match the Edge Delivery Services implementation in the Adobe Commerce Admin. See the [FAQ](/troubleshooting/faq#what-should-i-do-if-my-email-template-links-are-broken-after-migrating-to-edge-delivery-services-or-helix) for details. +* [ ] Verify/update password reset links. Match the Edge Delivery Services implementation in the Adobe Commerce Admin. See the [FAQ](/get-started/faq/#what-should-i-do-if-my-email-template-links-are-broken-after-migrating-to-edge-delivery-services-or-helix) for details. * [ ] Provide and configure production keys for integrations and payment providers. * [ ] Verify that the new domains/subdomains are `allowlisted` and potential backend webhooks are working. @@ -85,7 +85,7 @@ Avoid scheduling a launch shortly before a weekend. The Adobe engineering team m `.html` file extension). * [ ] Generate a sitemap for your site and catalog. To speed up the indexing process, Adobe recommends adding the sitemap to Google Search Console. -* [ ] Ensure that your product detail pages have [metadata and structured data](/setup/seo/metadata/) +* [ ] Ensure that your product detail pages have [metadata and structured data](/setup/metadata/) (for example, LD-JSON data is configured). diff --git a/src/content/docs/setup/discovery/luma-bridge.mdx b/src/content/docs/setup/luma-bridge.mdx similarity index 100% rename from src/content/docs/setup/discovery/luma-bridge.mdx rename to src/content/docs/setup/luma-bridge.mdx diff --git a/src/content/docs/setup/seo/metadata.mdx b/src/content/docs/setup/metadata.mdx similarity index 97% rename from src/content/docs/setup/seo/metadata.mdx rename to src/content/docs/setup/metadata.mdx index 93262fd56..275edeb77 100644 --- a/src/content/docs/setup/seo/metadata.mdx +++ b/src/content/docs/setup/metadata.mdx @@ -1,5 +1,5 @@ --- -title: Metadata +title: SEO metadata description: Learn how to optimize metadata for Adobe Commerce storefronts on Edge Delivery Services. --- @@ -53,7 +53,7 @@ To generate metadata using the PDP Metadata Generator tool: ``` :::note - Before running the tool, you must ensure that the `configFile` variable in the `pdp-metadata.js` file points to the correct configuration JSON file URL. This file contains the required parameters to access the Catalog Service API and should have been setup as part of your [project onboarding](/setup/configuration/commerce-configuration/). + Before running the tool, you must ensure that the `configFile` variable in the `pdp-metadata.js` file points to the correct configuration JSON file URL. This file contains the required parameters to access the Catalog Service API and should have been setup as part of your [project onboarding](/setup/commerce-configuration/). ::: 1. Run the tool and generate a file named `metadata.xlsx` in the project directory. diff --git a/src/content/docs/setup/multistore-setup.mdx b/src/content/docs/setup/multistore-setup.mdx new file mode 100644 index 000000000..ec5b2fb92 --- /dev/null +++ b/src/content/docs/setup/multistore-setup.mdx @@ -0,0 +1,291 @@ +--- +title: Multi-Store Implementation Walkthrough +description: A hands-on guide demonstrating the complete multi-store setup process from file structure creation to store switcher configuration. +--- + +import { Steps } from '@astrojs/starlight/components'; +import Tasks from '@components/Tasks.astro'; +import Task from '@components/Task.astro'; +import { Code } from '@astrojs/starlight/components'; +import Aside from '@components/Aside.astro'; + +This tutorial provides a comprehensive walkthrough of setting up multi-store functionality for an Adobe Commerce storefront using Edge Delivery Services. It demonstrates the complete process from initial planning to final validation, using a real-world scenario where the Acme brand expands from the United States to the Canadian market. + +## Overview + +In this walkthrough, we'll demonstrate how to: +- Set up the necessary file structures for multi-store views +- Configure store views in Adobe Commerce Admin +- Update storefront configuration files +- Preview and publish localized content +- Configure the store switcher for proper store view display + +## Scenario + +The Acme brand is expanding its international presence and wants to target the Canadian market with two new locales: +- **Canadian English** (en_ca) +- **Canadian French** (fr_ca) + +## Prerequisites + +Before beginning this implementation, ensure: +- Your storefront repository is linked to Document Authoring environment (da.live) via Edge Delivery Services +- You have access to Adobe Commerce Admin for store view configuration +- Your `fstab.yaml` file is properly configured +- Your `config.json` file is linked to the Adobe Commerce instance + +## Implementation Steps + + + + +### Verify Environment Setup + +Before implementing multi-store functionality, confirm your environment is properly configured. + + +1. **Check the `fstab.yaml` file** in your repository to ensure it's linked to the Document Authoring environment at da.live. + +2. **Verify the `config.json` file** is connected to your Adobe Commerce instance to enable content preview, publishing, and editing. + + + + + + + +### Create Content Folder Structure + +Set up the folder structure in your Document Authoring environment to support the new store views. + + +1. **Navigate to the connected content folder** in da.live. + +2. **Create the Canadian English folder**: + - Select "New folder" + - Name it `en_ca` + +3. **Create the French folder**: + - Select "New folder" + - Name it `fr_ca` + +4. **Copy content from the main root folder** into each new store view folder: + - Select all content from the main root folder + - Copy the content + - Navigate to the `en_ca` folder and paste + - Repeat for the `fr_ca` folder + + + + + + + +### Configure Adobe Commerce Store Views + +Create the corresponding store views in Adobe Commerce Admin to match your content folder structure. + + +1. **Access Adobe Commerce Admin** and navigate to Stores > Settings > All Stores. + +2. **Create the Canadian English store view**: + - Follow the store view creation process + - Configure as: one website, one store, one store view + - Set the store view code to match your folder name (`en_ca`) + +3. **Create the Canadian French store view**: + - Repeat the process for the French locale + - Set the store view code to match your folder name (`fr_ca`) + + + + + + + +### Update Storefront Configuration + +Modify your project's configuration files to support the new store views. + + +1. **Update the `fstab.yaml` file** to include new folder mappings: + + ```yaml + mountpoints: + /: https://example.mountpoint.com/:f:/r/sites/myproject + + folders: + /en/products/: /en/products/default + /en_ca/products/: /en_ca/products/default + /fr_ca/products/: /fr_ca/products/default + ``` + +2. **Update the `config.json` file** to include new entries under the public object: + + ```json + { + "public": { + "default": { + // default configuration + }, + "/en/": {}, + "/en_ca/": { + "headers": { + "magento-store-code": "en_ca", + "magento-website-code": "base", + "magento-store-view-code": "en_ca" + }, + "analytics": { + // store-specific analytics configuration + } + }, + "/fr_ca/": { + "headers": { + "magento-store-code": "fr_ca", + "magento-website-code": "base", + "magento-store-view-code": "fr_ca" + }, + "analytics": { + // store-specific analytics configuration + } + } + } + } + ``` + +3. **Ensure header values match** what was created in Adobe Commerce Admin store settings to properly connect store views to file structures. + + + + + +### Preview and Validate Content + +Test your new store views to ensure proper functionality before publishing. + + +1. **Push configuration changes** to your storefront repository. + +2. **Return to the content files** in both `en_ca` and `fr_ca` folders in da.live. + +3. **Preview content files**: + - Navigate to the `en_ca` folder + - Open the `index` file + - Click "Preview" to test the store view + +4. **Verify configuration in browser**: + - Check the URL structure includes the store view path + - Open browser Developer Tools + - Navigate to Application > Session Storage + - Verify the config shows the correct headers you added: + - `magento-store-code` + - `magento-website-code` + - `magento-store-view-code` + + + + + + + +### Configure Store Switcher + +Update the store switcher to properly reflect the current store view for customers. + + +1. **Navigate to the store switcher file** in the `en_ca` content folder. + +2. **Update the store switcher structure** to prioritize the current store view: + - Move "Canada English" to the top of the list + - Ensure proper formatting and links + - Example structure: + ``` + - Canada (CAD) + - [Canada (EN)](https://your-site.com/en_ca/) + - [Canada (FR)](https://your-site.com/fr_ca/) + - United States (USD) + - [United States (USD)](https://your-site.com/en/) + ``` + +3. **Publish the updated store switcher**: + - Click "Publish" on the store switcher file + - This updates the footer display for customers + +4. **Verify the store switcher display**: + - Return to your preview of the Canadian English store + - Check that the store switcher now correctly shows the customer is on the Canadian English store view + - Confirm customers can see and select other available stores + + + + + +### Final Validation and Handoff + +Complete the implementation with thorough testing and team coordination. + + +1. **Test all store views** to ensure: + - Proper URL structure + - Correct content loading + - Functional store switcher + - Accurate header configuration + +2. **Prepare for localization**: + - Inform the marketing team that content folders are ready for translation + - Provide directory structure documentation + - Share access to the `fr_ca` folder for French translations + +3. **Document the implementation** for future reference and team knowledge sharing. + + + + + + + + +## Key Configuration Details + +### Headers Configuration + +The headers section in your `config.json` is critical for proper store view functionality: + +- **`magento-store-code`**: Must match the store code from Adobe Commerce Admin +- **`magento-website-code`**: Typically "base" for single-website setups +- **`magento-store-view-code`**: Must match the store view code from Adobe Commerce Admin + +### Folder Structure Best Practices + +- Use clear, consistent naming conventions (e.g., `en_ca`, `fr_ca`) +- Ensure folder names can be used in web URLs +- Match folder names exactly with Adobe Commerce store view codes +- Maintain the same content structure across all store views + +### Store Switcher Configuration + +- Each store view should have its own `store-switcher` file +- Prioritize the current store view in the display order +- Ensure all links point to the correct store view URLs +- Test the switcher functionality across all store views + +## Next Steps + +After completing this implementation: + +1. **Marketing Team Handoff**: Share the content folders with your marketing team for localization and translation work +2. **Content Translation**: Begin translating content in the `fr_ca` folder for the French Canadian market +3. **Testing**: Conduct thorough testing across all store views and customer scenarios +4. **Launch Planning**: Coordinate the launch of new store views with marketing and business teams + +This multi-store setup provides a solid foundation for international expansion while maintaining a unified codebase and streamlined content management process. diff --git a/src/content/docs/setup/seo/indexing.mdx b/src/content/docs/setup/seo.mdx similarity index 94% rename from src/content/docs/setup/seo/indexing.mdx rename to src/content/docs/setup/seo.mdx index d2ef60861..5fe256c06 100644 --- a/src/content/docs/setup/seo/indexing.mdx +++ b/src/content/docs/setup/seo.mdx @@ -1,5 +1,5 @@ --- -title: Indexing +title: SEO indexing description: Boost your Adobe Commerce SEO on Edge Delivery Services! Follow our guidelines on data layers, canonical URLs, redirects, and sitemaps. --- @@ -49,7 +49,7 @@ For [multi-store setups](/merchants/get-started/multistore) or stores supporting - Verify a [correct hreflang setup](https://www.aem.live/developer/sitemap#specifying-the-primary-language-manually). You can validate using the [hreflang Tags Testing Tool](https://technicalseo.com/tools/hreflang/) -- Verify that the `Magento-Store-Code` header value defined in your [storefront configuration](/setup/configuration/commerce-configuration/) is part of the URL for every Catalog Service or Live Search request. +- Verify that the `Magento-Store-Code` header value defined in your [storefront configuration](/setup/commerce-configuration/) is part of the URL for every Catalog Service or Live Search request. :::note This is required because Google caches responses without considering headers. Not adding the store code to the URL might lead to Google indexing the wrong data. You can ensure this by adding a cache-busting query parameter. @@ -63,7 +63,7 @@ When your configuration headers change, the browser fetches fresh data instead o Here’s how the boilerplate handles it: -1. It collects headers from your [storefront configuration](/setup/configuration/commerce-configuration/)—`public.headers.all.*` and `public.headers.cs.*` +1. It collects headers from your [storefront configuration](/setup/commerce-configuration/)—`public.headers.all.*` and `public.headers.cs.*` 1. It creates a short hash (5 characters by default) based on those headers. 1. It adds the hash to the Catalog Service URL using the format `?cb=`. 1. When the headers change, it generates a new hash automatically. @@ -80,7 +80,7 @@ The boilerplate always manages the `cb` parameter for you. ### Redirects -Ensure proper redirects are set up using the redirects sheet or through your [CDN](/setup/configuration/content-delivery-network/). +Ensure proper redirects are set up using the redirects sheet or through your [CDN](/setup/content-delivery-network/). - Fallbacks for any potential URL changes (for example, product URLs or missing .html suffixes) - Redirects that are set up in Adobe Commerce diff --git a/src/content/docs/setup/configuration/storefront-compatibility/install.mdx b/src/content/docs/setup/storefront-compatibility/install.mdx similarity index 100% rename from src/content/docs/setup/configuration/storefront-compatibility/install.mdx rename to src/content/docs/setup/storefront-compatibility/install.mdx diff --git a/src/content/docs/setup/configuration/storefront-compatibility/v247.mdx b/src/content/docs/setup/storefront-compatibility/v247.mdx similarity index 100% rename from src/content/docs/setup/configuration/storefront-compatibility/v247.mdx rename to src/content/docs/setup/storefront-compatibility/v247.mdx diff --git a/src/content/docs/setup/configuration/storefront-compatibility/v248.mdx b/src/content/docs/setup/storefront-compatibility/v248.mdx similarity index 100% rename from src/content/docs/setup/configuration/storefront-compatibility/v248.mdx rename to src/content/docs/setup/storefront-compatibility/v248.mdx