# admin Commerce - Full Documentation # 20.1 Release The B2C Commerce 20.1 release occurs December 5, 2019 through January 20, 2020. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.1 Product Release Preview](https://salesforce.vidyard.com/watch/ULRdXZwYiy2QXxcBtRmfmV) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/0M000000gSL1/pCBHxNx_L9iwdp8tFijUVAOKQAFk7ZkVA0E18e2_c4g) a PDF of the Preview. ## Release Spotlight - Page Designer Enhancements - New Copy Categories Feature - New Reports and Dashboards Features - **[AppServer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_appserver.htm&release=264.0.0&type=5)** Review the new B2C Commerce AppServer features and enhancements in the 20.1 release. - **[Cloud Utilities](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_cloudutilities.htm&release=264.0.0&type=5)** Review the new B2C Commerce Cloud Utilities enhancement in the 20.1 release. - **[eCDN](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_ecdn.htm&release=264.0.0&type=5)** Review the new B2C Commerce eCDN feature in the 20.1 release. - **[Jobs](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_jobs.htm&release=264.0.0&type=5)** Review the new B2C Commerce Jobs feature in the 20.1 release. - **[OCAPI](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_ocapi.htm&release=264.0.0&type=5)** Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.1 release. The OCAPI version remains 19.10. - **[Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_pagedesigner.htm&release=264.0.0&type=5)** Review the new B2C Commerce Page Designer features and enhancements in the 20.1 release. - **[Pricing and Promotions](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_pricingpromotions.htm&release=264.0.0&type=5)** Review the new B2C Commerce Pricing and Promotions enhancements in the 20.1 release. - **[Products and Catalogs](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_productscatalogs.htm&release=264.0.0&type=5)** Review the new B2C Commerce Products and Catalogs enhancements in the 20.1 release. - **[Reports and Dashboards](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_reportsanddashboards.htm&release=264.0.0&type=5)** Review the new B2C Commerce Reports and Dashboards features in the 20.1 release. - **[Search](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_search.htm&release=264.0.0&type=5)** Review the new B2C Commerce Search enhancements in the 20.1 release. - **[Visual Merchandising](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_visualmerch.htm&release=264.0.0&type=5)** Review the new B2C Commerce Visual Merchandising feature in the 20.1 release. # 20.10 Release The B2C Commerce 20.10 release occurs September 22, 2020 through October 20, 2020. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.10 Product Release Preview](https://salesforce.vidyard.com/watch/4oyLDdFR9vxkSh2RdPx4JZ?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000G9bp/blCTUAtNxXyCak2r35Iv8NyvD7PaTFIKPawvAba37.0) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. Why: The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[OCAPI](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_10_ocapi.htm&release=264.0.0&type=5)** Review the B2C Commerce OCAPI update in the 20.10 release. - **[Pricing and Promotions](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_10_pricingpromotions.htm&release=264.0.0&type=5)** Review the new B2C Commerce Pricing and Promotions features in the 20.10 release. - **[Reports & Dashboards](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_11_reports_dashboards.htm&release=264.0.0&type=5)** Review the B2C Commerce Reports & Dashboards update in the 20.11 release. - **[Storefront Toolkit](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_10_toolkit.htm&release=264.0.0&type=5)** Review the B2C Commerce Storefront Toolkit update in the 20.10 release. # 20.2 Release The B2C Commerce 20.2 release occurs January 21, 2020 through February 20, 2020 Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.2 Product Release Preview](https://salesforce.vidyard.com/watch/xFVdaSSyb3ySFgvf14Zeor?) video or [download](https://org62.my.salesforce.com/sfc/p/000000000062/a/0M000000gSKw/i49nVGSXbS9s6ecc71B5.LG9.._.UAV7b1H28lKyPXI) a PDF of the Preview. ## Release Spotlight - Page Designer Enhancements - New Reports and Dashboards Gift Certificate Report - Storefront Toolkit goes GA ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. Why: The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[AppServer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_appserver.htm&release=264.0.0&type=5)** Review the new B2C Commerce AppServer feature in the 20.2 release. - **[Commerce Cloud Einstein](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_einstein.htm&release=264.0.0&type=5)** Review the new B2C Commerce Einstein feature in the 20.2 release. - **[eCDN](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_ecdn.htm&release=264.0.0&type=5)** Review the new B2C Commerce eCDN feature in the 20.2 release. - **[OCAPI](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_ocapi.htm&release=264.0.0&type=5)** Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.2 release. The OCAPI version is now 20.2. - **[Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_pagedesigner.htm&release=264.0.0&type=5)** Review the new B2C Commerce Page Designer features and enhancements in the 20.2 release. - **[Pricing and Promotions](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_pricingpromotions.htm&release=264.0.0&type=5)** Review the new B2C Commerce Pricing and Promotions features and enhancements in the 20.2 release. - **[Reports and Dashboards](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_reportsanddashboards.htm&release=264.0.0&type=5)** Review the new B2C Commerce Reports and Dashboards feature in the 20.2 release. - **[Storefront Toolkit](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_storefront_toolkit.htm&release=264.0.0&type=5)** Review the new B2C Commerce Storefront Toolkit feature in the 20.2 release. # 20.3 Release The B2C Commerce 20.3 release occurs February 25, 2020 through March 24, 2020. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.3 Product Release Preview](https://salesforce.vidyard.com/watch/rtMr5FeJuXogL7sjcHvGoB?) video or [download](https://org62.my.salesforce.com/sfc/p/000000000062/a/0M000000gUWp/9VNu_2ebPgRIxhe8_cngb_Kqvpm_UqJzMYHH1zplg50) a PDF of the Preview. ## Release Spotlight - Page Designer Search Suggestions - New Promotion APIs - OCAPI Updates ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. **Why:** The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[Cart Checkout](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_cartcheckout.htm&release=264.0.0&type=5)** Review the new B2C Commerce Cart Checkout feature in the 20.3 release. - **[eCDN](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_ecdn.htm&release=264.0.0&type=5)** Review the new B2C Commerce eCDN feature in the 20.3 release. - **[OCAPI](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_ocapi.htm&release=264.0.0&type=5)** Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.3 release. The OCAPI version is now 20.3. - **[Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_pagedesigner.htm&release=264.0.0&type=5)** Review the new B2C Commerce Page Designer features and enhancements in the 20.3 release. - **[Pricing and Promotions](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_pricingpromotions.htm&release=264.0.0&type=5)** Review the new B2C Commerce Pricing and Promotions features and enhancements in the 20.3 release. - **[Products and Catalogs](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_productsandcatalogs.htm&release=264.0.0&type=5)** Review the new B2C Commerce Products and Catalogs enhancement in the 20.3 release. # 20.4 Release The B2C Commerce 20.4 release occurs March 19, 2020 through April 21, 2020. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.4 Product Release Preview](https://salesforce.vidyard.com/watch/gLTZYLYESLPdawZxXo7uVw) video or [download](https://org62.my.salesforce.com/sfc/p/000000000062/a/0M000000gW3f/QumAgv3IB5rdzlH_rlnwa2nWJT0qmmzb6kCKxf3t978) a PDF of the Preview. ## Release Spotlight - Catalog CSV Import and Export - New On-Site-Search Dashboard - Page Designer Search Update ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. Why: The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[Einstein Recommendations](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_einstein_recommendations.htm&release=264.0.0&type=5)** Review the change to B2C Commerce Einstein Recommendations in the 20.4 release. - **[OCAPI](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_ocapi.htm&release=264.0.0&type=5)** Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.4 release. The OCAPI version is now 20.4. - **[Orders](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_orders_title.htm&release=264.0.0&type=5)** Review the new B2C Commerce Orders feature in the 20.4 release - **[Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_pagedesigner.htm&release=264.0.0&type=5)** Review the new B2C Commerce Page Designer feature in the 20.4 release. - **[Products and Catalogs](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_productsandcatalogs.htm&release=264.0.0&type=5)** Review the new B2C Commerce Products and Catalogs feature in the 20.4 release. - **[Reports and Dashboards](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_reportsanddashboards.htm&release=264.0.0&type=5)** Review the new B2C Commerce Reports and Dashboards feature in the 20.4 release. - **[Search](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_search.htm&release=264.0.0&type=5)** Review the new B2C Commerce Search feature in the 20.4 release. # 20.5 Release The B2C Commerce 20.5 release occurs April 16, 2020 through May 28, 2020. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.5 Product Release Preview](https://salesforce.vidyard.com/watch/iALjhjZKR4Wtixvzn1BFRg) video or [download](https://org62.my.salesforce.com/sfc/p/000000000062/a/0M000000YDPU/BH0LpIAjPzBqAc9madABWZhfnMNE.j47uDmkYPpP5HQ) a PDF of the Preview. ## Release Spotlight - Multiple Sites and Locales CSV Export - New Promotions Source Code Dashboard - Control Product Promotion Qualification - Business Manager Language Pack Available in German ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. Why: The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[AppServer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_appserver.htm&release=264.0.0&type=5)** Review the new B2C Commerce AppServer feature in the 20.5 release. - **[Localization](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_localization.htm&release=264.0.0&type=5)** Review the update to B2C Commerce localization in the 20.5 release. - **[Orders](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_orders.htm&release=264.0.0&type=5)** Review the B2C Commerce Orders change in the 20.5 release - **[Pricing and Promotions](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_pricingpromotions.htm&release=264.0.0&type=5)** Review the new B2C Commerce Pricing and Promotions features in the 20.5 release. - **[Products and Catalogs](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_productsandcatalogs.htm&release=264.0.0&type=5)** Review the new B2C Commerce Products and Catalogs feature in the 20.5 release. - **[Reports and Dashboards](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_reportsanddashboards.htm&release=264.0.0&type=5)** Review the new B2C Commerce Reports and Dashboards feature in the 20.5 release. - **[Search](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_search.htm&release=264.0.0&type=5)** Review the changes to B2C Commerce Search in the 20.5 release. - **[Visual Merchandising](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_visualmerchandising.htm&release=264.0.0&type=5)** Review the new B2C Commerce visual merchandising feature in the 20.5 release. # 20.6 Release The B2C Commerce 20.6 release occurs May 18, 2020 through June 25, 2020. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.6 Product Release Preview](https://salesforce.vidyard.com/watch/LqPvzhRrQAYbbGfXEHPzFx?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/0M000000BkLl/K.3PW7xNK7KsKCm7kxjKxm7rRXnKj4qSNf6H6EM9BcM) a PDF of the Preview. ## Release Spotlight - Page Designer Features - New Localized Tax Class ID ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. Why: The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[AppServer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_appserver.htm&release=264.0.0&type=5)** Review the new B2C Commerce AppServer feature in the 20.6 release. - **[Commerce Cloud Einstein](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_einstein.htm&release=264.0.0&type=5)** Review the new B2C Commerce Einstein feature in the 20.6 release. - **[Jobs](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_jobs.htm&release=264.0.0&type=5)** Review the new B2C Commerce Jobs feature in the 20.6 release. - **[Locales](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_locales.htm&release=264.0.0&type=5)** Review the new B2C Commerce Page Locales Setting in the 20.6 release. - **[Orders](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_orders.htm&release=264.0.0&type=5)** Review the B2C Commerce Orders change in the 20.6 release - **[Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_pagedesigner.htm&release=264.0.0&type=5)** Review the new B2C Commerce Page Designer features in the 20.6 release. - **[Products and Catalogs](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_productsandcatalogs.htm&release=264.0.0&type=5)** Review the new B2C Commerce Products and Catalogs feature in the 20.6 release. - **[Reports and Dashboards](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_reportsanddashboards.htm&release=264.0.0&type=5)** Review the new B2C Commerce Reports and Dashboards feature in the 20.6 release. # 20.7 Release The B2C Commerce 20.7 release occurs June 23, 2020 through July 23, 2020. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.7 Product Release Preview](https://salesforce.vidyard.com/watch/ewxgoPBSaSPN4PDxEvv8K3?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000RTQZ/CDrti3mZ3XZZgL7_w7uF3qOATpI5fEhY7LNtt.av2hA) a PDF of the Preview. ## Release Spotlight - Page Designer Features - New Payment Method Qualifier for Shipping Promotions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. Why: The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[AppServer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_appserver.htm&release=264.0.0&type=5)** Review the new B2C Commerce AppServer features in the 20.7 release. - **[Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_pagedesigner.htm&release=264.0.0&type=5)** Review the new B2C Commerce Page Designer features in the 20.7 release. - **[Pricing and Promotions](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_pricingpromotions.htm&release=264.0.0&type=5)** Review the new B2C Commerce Pricing and Promotions feature in the 20.7 release. - **[Products and Catalogs](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_productsandcatalogs.htm&release=264.0.0&type=5)** Review the Products and Catalogs OCAPI update in the 20.7 release. # 20.8 Release The B2C Commerce 20.8 release occurs July 21, 2020 through August 20, 2020. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.8 Product Release Preview](https://salesforce.vidyard.com/watch/Rkexb3B8MPWmGbKvGQ92fZ?) video or [download](https://org62.my.salesforce.com/sfc/p/000000000062/a/3y000000sYli/TCW2d0YcbAw2HLtynJ6zbjLQYeBjsHWObh5kAH6LgwE) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note **Find Bug Fix Information in Salesforce Known Issues** Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. **Why:** The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[Basket](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_cartcheckout.htm&release=264.0.0&type=5)** Review the new B2C Commerce Basket feature in the 20.8 release. - **[Jobs](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_jobs.htm&release=264.0.0&type=5)** Review the new B2C Commerce Jobs feature in the 20.8 release. - **[OCAPI](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_ocapi.htm&release=264.0.0&type=5)** Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.8 release. The current OCAPI version is now 20.8. - **[Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_pagedesigner.htm&release=264.0.0&type=5)** Review the new B2C Commerce Page Designer feature in the 20.8 release. - **[Pricing and Promotions](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_pricingpromotions.htm&release=264.0.0&type=5)** Review the new B2C Commerce Pricing and Promotions features in the 20.8 release. - **[Reports and Dashboards](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_reportsanddashboards.htm&release=264.0.0&type=5)** Review the new B2C Commerce Reports and Dashboards feature in the 20.8 release. # 20.9 Release The B2C Commerce 20.9 release occurs August 18, 2020 through September 24, 2020. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [20.9 Product Release Preview](https://salesforce.vidyard.com/watch/xsp1Ysmtpkn9mBAmA4Nkmf?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000G74y/AAR6SlH6J9xTybcNo5pHzqjY3C8_W2FqQrmt3dpFRRU) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. Why: The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[AppServer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_appserver.htm&release=264.0.0&type=5)** Review the new B2C Commerce AppServer features in the 20.9 release. - **[Business Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_business_manager.htm&release=264.0.0&type=5)** Review the new B2C Commerce Business Manager feature in the 20.9 release. - **[Commerce Cloud Einstein](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_einstein.htm&release=264.0.0&type=5)** Review the new B2C Commerce Einstein feature in the 20.9 release. - **[Feature Switches (Toggles)](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_feature_switches.htm&release=264.0.0&type=5)** Review the new B2C Commerce Feature Switch (Toggles) features in the 20.9 release. - **[Inventory](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_ecommerce_inventory.htm&release=264.0.0&type=5)** Review the new B2C Commerce Inventory feature in the 20.9 release. - **[OCAPI](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_ocapi.htm&release=264.0.0&type=5)** Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.9 release. The current OCAPI version is now 20.9. - **[Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_pagedesigner.htm&release=264.0.0&type=5)** Review the new B2C Commerce Page Designer feature in the 20.9 release. # 21.1 Release The B2C Commerce 21.1 release occurs December 8, 2020 through January 21, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.1 Product Release Preview](https://salesforce.vidyard.com/watch/iWL34GesgJEkaSnhd5aRAq?) video or [download](https://org62.my.salesforce.com/sfc/p/000000000062/a/3y000000oONs/Us5CIZ8ZPzGrxBcFqW4s.2xER6gj1wLUMI8RBn94MUc) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. Why: The Salesforce Known Issues site is the place for information about customer-reported issues across Salesforce products. On this site you can view the status of an issue and subscribe to notifications. - **[Preview Einstein Complete the Set Output by Product ID](https://help.salesforce.com/s/articleView?id=commerce.rn_ein_cnf_cts_prod_id_b2c_21_1_w8461995_mjb.htm&release=264.0.0&type=5)** The Einstein Complete the Set recommender now provides a Preview tab for viewing Complete the Set Output by product ID. - **[Enable or Disable All Einstein Complete the Set Categories at Once](https://help.salesforce.com/s/articleView?id=commerce.rn_ein_cnf_en_dis_all_b2c_21_1_w8462110_mjb.htm&release=264.0.0&type=5)** You can now enable or disable all Einstein Complete the Set categories at the same time. - **[Improved Order History Retrieval](https://help.salesforce.com/s/articleView?id=commerce.rn_improved_order_history_retrieval_b2c_21_1_w8127717_as.htm&release=264.0.0&type=5)** Use the new `dw.customer.OrderHistory#getOrders()` methods in your storefront to retrieve the order history for the shopper currently in session. If existing code uses `dw.order.OrderMgr` methods to retrieve a shopper’s order history, refactor it to use the new methods. For usage details, see the Script API documentation in the Infocenter. - **[Shipping Method Restrictions Validated by Shipment](https://help.salesforce.com/s/articleView?id=commerce.rn_shipping_method_validation_b2c_21_1_w8366858_as.htm&release=264.0.0&type=5)** When an order includes multiple shipments, a non-default shipment can now use a shipping method that isn't allowed for a product in the default shipment. The reason is that the basket process now validates a shipment’s shipping method only against the products in that shipment. Previously, it validated each shipping method against the products in the default shipment. If a product in the default shipment was excluded from a shipping method, then attempting to use that method in any shipment caused an Invalid Shipping Method error. - **[Access Stripe with Commerce Cloud Payments (Generally Available)](https://help.salesforce.com/s/articleView?id=commerce.rn_commerce_cloud_payments_b2c_21_1_w8537346_bl.htm&release=264.0.0&type=5)** Commerce Cloud Payments, also referred to as Commerce Payments, lets brands launch commerce sites with an out-of-the-box payments solution powered by Stripe, a preferred provider. With Commerce Payments, brands can get to market faster and boost conversion rates with checkout experiences that support credit cards, express checkout options such as Apple Pay and Google Pay, and noncard payment methods such as SEPA, iDEAL, and Bancontact, all with integrated fraud protection. You can integrate Commerce Payments, now generally available, with B2C Commerce to begin processing payments quickly through Stripe. - **[New File Retention Rules Enabled for POD Sandbox and Primary Instances](https://help.salesforce.com/s/articleView?id=commerce.rn_retention_rules_b2c_21_1_w8553233_la.htm&release=264.0.0&type=5)** As previously announced, updated file retention rules are applied to files in the /Logs, /Securitylogs, /Impex, and /Temp folders. Previously, different folders, instances, and environments used different file retention periods or no retention period at all. With the 21.1 release, the new retention logic is enabled for POD Sandbox and primary instances. Download and save files you want to retain for longer than the new retention period. - **[Pricing and Promotions Work Properly with Fractional Quantities](https://help.salesforce.com/s/articleView?id=commerce.rn_pricing_promo_fractional_quantities_b2c_21_1_w8487263_lb_.htm&release=264.0.0&type=5)** Prices and promotions qualify and apply fractional quantities of an item added to the cart. For example, adding 0.5 kg of a product to a cart, or 0.75 lbs. - **[SOAP Web Services List Types](https://help.salesforce.com/s/articleView?id=commerce.rn_soap_web_services_addition_b2c_21_1_w8235287_pd.htm&release=264.0.0&type=5)** If you use the Web references package to call SOAP-based web services, we recommend that you migrate to the Webreferences2 package. To help make this migration easier, a new property enables the Web references2 package to generate list types as arrays instead of as lists. Arrays are the default list type for the Web references package. Lists are the default list type for the Webreferences2 package. - **[Business Manager UI in Traditional Chinese for Taiwan](https://help.salesforce.com/s/articleView?id=commerce.rn_chinese_for_taiwan_b2c_21_1_je.htm&release=264.0.0&type=5)** The Business Manager user interface is now available in Traditional Chinese for Taiwan. To choose this new language, select the respective value in the dropdown in your user profile settings. # 21.10 Release The B2C Commerce 21.10 release occurs September 30 through October 28, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.10 Product Release Preview](https://salesforce.vidyard.com/watch/bKeGpthwxexoEd5ViDHmEy?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000RkCj/dJ1XZLxd5I_7xtDpGr9gEDzM3R8IzYmVbLRT6c6E8wQ) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Use Rule Sets to Assign Dynamic Categories](https://help.salesforce.com/s/articleView?id=commerce.b2c_21_10_w9894191_dynamic_categories_lb.htm&release=264.0.0&type=5)** With dynamic categories, you no longer need to assign each product individually to your categories. Create rule sets to define criteria for products. All matching products are assigned to that category. You can add up to five rules to a dynamic category, using AND and OR rules to expand or narrow the category's criteria. - **[Customize Payment Methods in Multiple Countries Using Payments Zones](https://help.salesforce.com/s/articleView?id=commerce.b2c_21_10_w9902326_payment_zones_lb.htm&release=264.0.0&type=5)** Use payments zones to specify which payment methods can be used by shoppers in specific countries. A default payments zone, set to all currencies and countries, is automatically created after you assign a checkout method to a merchant account. - **[Use the Salesforce Customer Data Platform (CDP) with B2C Commerce Cloud](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_10_cdp_for_commerce_je.htm&release=264.0.0&type=5)** Get a single source of truth for Digital 360 data with the Commerce CDP Connector. - **[JobExecution Updates for OCAPI 21.10](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_10_jobexecution_property_w9781435_mc.htm&release=264.0.0&type=5)** The JobExecution document has a new property `log_file_path`, that specifies the full WebDAV path of the log file. The property `log_file_name` has been removed. - **[New Location for Job Files](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_10_new_location_for_job_files_w9760966_je.htm&release=264.0.0&type=5)** Starting with 21.10 log files of custom and system jobs are created in WebDAV path `/Sites/LOGS/jobs//.log`. - **[Use Commerce Data in Tableau](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_10_tableau_for_commerce_je.htm&release=264.0.0&type=5)** Use the Tableau for Commerce Web Data Connector to import your commerce data into Tableau. - **[Manage On-Demand Sandbox Instances in Control Center](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_10_ods_for_control_center_je.htm&release=264.0.0&type=5)** You can now use Control Center to monitor your On-Demand Sandboxes (ODS) instances. # 21.2 Release The B2C Commerce 21.2 release occurs January 21, 2021 through February 23, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.2 Product Release Preview](https://salesforce.vidyard.com/watch/ZWNUCVPaZ9MPaJiR7GtnP3?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000oQbN/8ZU2H1wy.LIsUyFSqn6GPIMDxGoTfyNpFIqV_w_fIzM) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Access New JavaScript Features and Functionality with the Latest Compatibility Mode](https://help.salesforce.com/s/articleView?id=commerce.rn_comp_mode_b2c_21_2_w8484513_la.htm&release=264.0.0&type=5)** When you select compatibility mode 21.2, the B2C Commerce Server-Side JavaScript engine supports elements from ECMAScript 6 (ES6) and later. With compatibility mode 21.2, you can access numerous fixes and new and expanded features, including new top-level built-in types and methods for existing classes. - **[Assign Customer Names when Creating External Profiles with OCAPI](https://help.salesforce.com/s/articleView?id=commerce.rn_ext_profile_name_b2c_21_2_w8552635_as.htm&release=264.0.0&type=5)** When creating an external customer profile with the OCAPI Shop API `/dw/shop/v21_2/customers/ext_profile` endpoint, you can now specify a first name and last name. - **[Determine Whether a Customer Has an External Profile](https://help.salesforce.com/s/articleView?id=commerce.rn_get_customer_ext_profile_b2c_w8449192_21_2_je.htm&release=264.0.0&type=5)** If your client application authenticates customers through an external Identification Provider (IDP) such as Google or Facebook, each customer needs an external profile. You can now make a GET call to the Shop API customers/ext\_profile endpoint to determine whether customer has an external profile. - **[Manage Inventory with Salesforce Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.rn_integrate_omnichannel_inventory_b2c_21_2_w8378515_as.htm&release=264.0.0&type=5)** You can support real-time availability for your storefront experiences by integrating with the new Salesforce Omnichannel Inventory product. B2C Commerce provides a seamless native integration that you can configure using clicks, not code. - **[A Unique ID Was Added to Log Files for Jobs](https://help.salesforce.com/s/articleView?id=commerce.rn_job_file_names_b2c_21_2_w8552701_la.htm&release=264.0.0&type=5)** The name of the log file for a job executed in the new job framework now includes a unique ID. - **[Use Strong Authentication as Required for Some Business Manager Modules](https://help.salesforce.com/s/articleView?id=commerce.rn_mfa_warning_b2c_21_2_w8520479_la.htm&release=264.0.0&type=5)** For security reasons, starting with Release 21.3, you must use strong authentication, such as through Multi-factor Authentication (MFA) with Account Manager, to access certain Business Manager modules. In Release 21.2, a warning message appears if you try to access these modules without using strong authentication. - **[A New Quota and Logging for Objects Embedded in HTML Attributes Were Added](https://help.salesforce.com/s/articleView?id=commerce.rn_new_quota_b2c_21_2_w8520607_la.htm&release=264.0.0&type=5)** Starting with Release 21.3, only users with strong authentication, such as through MFA with Account Manager, can include objects embedded with iframe, object, applet, or embed tags into HTML attributes. A new quota implemented in Release 21.2, `api.object.EmbeddedObjectInHTMLAttributeUserWithoutStrongAuth`, helps you to prepare for the upcoming 21.3 restriction. Use the new quota to see if you have objects embedded in HTML attributes and if so, make sure that users who embed such objects use strong authentication. - **[Deleted Impex and Temp Files No Longer Being Retained in Trash Folders for 30 Days](https://help.salesforce.com/s/articleView?id=commerce.rn_no_trash_files_b2c_21_2_w8553458_la.htm&release=264.0.0&type=5)** As previously announced, updated file retention rules are applied to files in the /Logs, /Securitylogs, /Impex, and /Temp folders. During the transition period to these new rules, some instances used /Impex/\_trash and /Temp/\_trash folders to retain deleted files for 30 days. The transition period ends with the 21.2 release for POD sandbox and primary instances. /Impex and /Temp files are now deleted without first being moved to the \_trash folders. - **[Add Product Sets as Qualifying or Discounting Conditions for Promotions](https://help.salesforce.com/s/articleView?id=commerce.rn_product_set_promotion_qualifer_b2c_21_2_w8487083_lb.htm&release=264.0.0&type=5)** You can add product sets as qualifying or discounting conditions to all promotion rules, except for the Choice of Bonus Product rule. When you add Product Set ID as a qualifying or discounting condition, any product belonging to that set can trigger the promotion and receive a discount from the promotion, or both. The only exception is that a Choice of Bonus Product rule promotion can’t use a product set to define the bonus products. - **[Use the Profile Connector API](https://help.salesforce.com/s/articleView?id=commerce.rn_profile_connector_b2c_21_2_w8851114_mjb.htm&release=264.0.0&type=5)** The Salesforce Profile Connector API is generally available as of February 22, 2021. # 21.3 Release The B2C Commerce 21.3 release occurs February 18, 2021 through March 23, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.3 Product Release Preview](https://salesforce.vidyard.com/watch/YtJQ2yFPWQAuo5NdUNdZUL?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000oTD4/iUSWIFV2uaD1goXQ81WTxMfsla2KH5bRB_a2b0p5o.8) a PDF of the Preview. - **[Assign Promotions and Pricing to Specific Stores](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_3_commerce_w7929879_store_specific_pricing_promotions_lb.htm&release=264.0.0&type=5)** Merchants can now assign price books and promotions to stores. This feature lets shoppers view pricing and promotions targeted to their selected store in session. - **[Text in Content Slot Fields Validate Properly](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_3_commerce_w8680205_text_content_slot_field_validate_lb.htm&release=264.0.0&type=5)** Free-form text in the content asset, product, and category Content Slot fields now validate properly. If an entry exceeds 3,500 bytes, an error is returned. To remedy the error, consider using Add to select IDs or limit entries to just the ID, instead of the entire content. - **[Change Customer Passwords with the Headless Commerce API](https://help.salesforce.com/s/articleView?id=commerce.rn_change_customer_password_b2c_21_3_w8722575_as.htm&release=264.0.0&type=5)** To provide this functionality, we updated the OCAPI Shop API `PUT customers/{customer_id}/password` endpoint to change the password in the PUT call instead of in the afterPUT hook. The Headless Commerce API doesn’t allow hooks. Also, the `dw.ocapi.shop.customer.password.afterPUT_v2` extension point replaces the `dw.ocapi.shop.customer.password.afterPUT` extension point. If you have customizations for this resource, update your code accordingly. - **[Configure How Long Einstein Waits Before Recommending Already Purchased Products](https://help.salesforce.com/s/articleView?id=commerce.rn_ein_cnf_dnr_b2c_21_3_w8802156_mjb.htm&release=264.0.0&type=5)** Einstein Configurator now lets you define how many days a recommender waits before recommending previously purchased products. You can choose from 7, 30, 60, or 90 days. The default setting is 30 days. Previously, Einstein Configurator provided a static 30-day wait time before recommending previously purchased products. For some customers, this setting was either too short or too long. - **[Assign Promotions to Campaigns with Enhanced OCAPI Data API Endpoint](https://help.salesforce.com/s/articleView?id=commerce.rn_enhanced_api_endpoint_b2c_21_3_w8578766_lb.htm&release=264.0.0&type=5)** \`/sites/{site\_id}/campaigns/{campaign\_id}/promotions/{promotion\_id}\` now allows the \`PATCH\` method and accepts a body for the \`PUT\` and \`PATCH\` methods. This body is identical to the response of the \`/sites/{site\_id}/promotion\_campaign\_assignment\_search\` API, but it now supports a new \`required\_qualifier\` property. With this body, you can set qualifiers and other properties, such as rank, on a promotion assignment when you create it. You can also update these values. - **[Assign Promotions to Campaigns with Enhanced Data OCAPI Endpoints](https://help.salesforce.com/s/articleView?id=commerce.rn_enhanced_api_endpoints_b2c_21_3_w857876_lb.htm&release=264.0.0&type=5)** \`/sites/{site\_id}/campaigns/{campaign\_id}/promotions/{promotion\_id}\` now accepts a body for the \`PUT\` and \`PATCH\` methods. This body is identical to the response of the \`/sites/{site\_id}/promotion\_campaign\_assignment\_search\` API, but it now supports a new \`required\_qualifier\` property. With this body, you can set qualifiers and other properties, such as rank, on a promotion assignment when you create it. You can also update these values. - **[Embedded Objects Not Allowed in HTML Attributes](https://help.salesforce.com/s/articleView?id=commerce.rn_html_objects_b2c_21_3_w8774939_la.htm&release=264.0.0&type=5)** For security reasons, only Business Manager users with strong authentication, such as through multi-factor authentication with Account Manager, can include objects embedded with `iframe`, `object`, `applet`, or `embed` tags in the HTML attributes of a database object. A Business Manager user with strong authentication can temporarily allow users without strong authentication to embed objects in HTML attributes. - **[Organize Page Designer Pages in Folders](https://help.salesforce.com/s/articleView?id=commerce.rn_pd_folders_b2c_21_3_w8766771_la.htm&release=264.0.0&type=5)** You can assign Page Designer pages to Business Manager content library folders. Folders keep pages organized and easy to find. Developers can write custom code that implements page navigation based on folders. For example, custom code can add breadcrumbs to the tops of pages or accordian-style page navigation based on folders. Developers can also write custom code that specifies that when a shopper performs a search, the shopper sees results organized by folder. - **[No Restrictions for CONTENT\_SECURITY\_POLICY](https://help.salesforce.com/s/articleView?id=commerce.rn_policy_header_b2c_21_3_w8800481_la.htm&release=264.0.0&type=5)** Set the `CONTENT_SECURITY_POLICY` in B2C Script class `dw.system.Response` to any string value. Previously, the only directive allowed was `frame-ancestors`. - **[Strong Authentication Required for Some Business Manager Modules](https://help.salesforce.com/s/articleView?id=commerce.rn_strong_auth_b2c_21_3_w8774525_la.htm&release=264.0.0&type=5)** For security reasons, to access certain Business Manager modules, you must now use strong authentication, such as multi-factor authentication (MFA) with Account Manager. # 21.4 Release The B2C Commerce 21.4 release occurs March 18 through April 20, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.4 Product Release Preview](https://salesforce.vidyard.com/watch/UGpmtcbqDdvSdRfcBtV2Ta?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000gYek/H2Uj2uK9xtqyzYdDPZio2eRY8fAITcHqxo7FNfI4Rjs) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Render a JSON View of a Page Designer Page](https://help.salesforce.com/s/articleView?id=commerce.rn_pd_json_view_b2c_21_4_w8906864_la.htm&release=264.0.0&type=5)** You can expose the data assembled by a Page Designer page and its components in JSON format. A JSON version of a page is easier to expose to external services for native mobile apps or custom heads. - **[Check the Syntax of Your Steptypes JSON File](https://help.salesforce.com/s/articleView?id=commerce.rn_stetypes_schema_b2c_21_4_w8901002_la.htm&release=264.0.0&type=5)** The `steptypes.json` file describes custom job steps. You can now access a `steptypes.schema` file to make sure that your `steptypes.json` file is using correct syntax. - **[API Class dw.util.Bytes Extended to Improve Interaction with ECMAScript 6](https://help.salesforce.com/s/articleView?id=commerce.rn_typed_arrays_b2c_21_4_w8920087_la.htm&release=264.0.0&type=5)** The `dw.util.Bytes` class is now more compatible with the JavaScript typed array features introduced with compatibility mode 21.2. - **[Cookie Names with Invalid Characters in Custom Code Cause Errors](https://help.salesforce.com/s/articleView?id=commerce.rn_cookie_names_b2c_21_4_w9042535_la.htm&release=264.0.0&type=5)** Our servlet container is now upgraded to implement Java Servlet specification 4.0, which has stricter rules for cookie names. Any use of invalid characters in a cookie name, as described in RFC6265, which references RFC2068, now causes an exception. # 21.5 Release The B2C Commerce 21.5 release occurs April 15 through May 18, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.5 Product Release Preview](https://salesforce.vidyard.com/watch/65jsiwcLNeaYir2VpXSU3w?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000gapL/gSjD7Z7OcnCnFpZ5N4zLKwGQu0THq0X6ilgU_r3PTsE) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Historical Business Manager Reports](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_legacy_reports_je.htm&release=264.0.0&type=5)** The Business Manager Analytics Reports are now the Historical Business Manager Reports. The reports are only available for viewing historical data. For your current business insights use the B2C Commerce Reports and Dashboards. - **[New Headers Allowed in dw.system.Response Class](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_response_headers_21_5_w9141290_la.htm&release=264.0.0&type=5)** New header options are available for `dw.system.Response`. - **[Category Search Pipeline Redirects to SEO-Friendly Category URL](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_pipeline_redirect_21_5_w9152326_je.htm&release=264.0.0&type=5)** A category search pipeline URL with the "cgid" parameter now automatically redirects to the SEO-friendly URL defined in the URL Rules module or category URL override. # 21.6 Release The B2C Commerce 21.6 release occurs May 13 through June 22, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.6 Product Release Preview](https://salesforce.vidyard.com/watch/7wNvcCL8ozfXwZqXnZ1n9i?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000gcdv/skQ5FnbuzqMsKwX6vQI0XqdUKm5IHYEUXj0GVP0mNVE) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Sortable Property Was Added for Page Attributes](https://help.salesforce.com/s/articleView?id=commerce.rn_page_des_sort_b2c_21_6_w9029827_la.htm&release=264.0.0&type=5)** You can specify that a page-level attribute can be used to sort search results. - **[Use Commerce Payments for Express Checkout Payment Methods](https://help.salesforce.com/s/articleView?id=commerce.rn_commerce_cloud_payments_b2c_21_6_w9073380_bl.htm&release=264.0.0&type=5)** You can now offer customers the option to use Commerce Payments only for Express Checkout payment methods, alongside their existing payments processors and integrations. This new functionality provides an easy way to use payment methods such as Apple Pay and Google Pay with minimal or no implementation effort. # 21.7 Release The B2C Commerce 21.7 release occurs June 17 through July 27, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.7 Product Release Preview](https://salesforce.vidyard.com/watch/iDyenX4cK2en1JKPzU3y3S?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000cODP/B1mUB1Q_xLriMtg7Yo9Jse1YVcpC4aN2e0NVf8d7orQ) a PDF of the Preview. - **[Archive Long File Names During System Import Jobs](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_long_filenames_w9263749_je.htm&release=264.0.0&type=5)** The system import job steps can create long file names that exceed some file system length limits, which caused problems when archiving files. You can now use Archive in Subfolders mode or Archive Overwrite Existing mode during system import jobs. - **[Selective Origin Shielding](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_selective_origin_shielding_w9343605_je.htm&release=264.0.0&type=5)** To restrict access to PODs not originating from the Commerce Cloud content delivery network (eCDN) and increase site security and availability, we’re implementing selective origin shielding (SOS). SOS prevents bots from accessing the origin outside the eCDN. - **[Avoid Invalid Characters in Cookie Names](https://help.salesforce.com/s/articleView?id=commerce.rn_cookie_combatibility_b2c_21_7_w9263644_je.htm&release=264.0.0&type=5)** Starting with compatibility mode 21.7, using invalid characters in a cookie name causes `dw.web.Cookie` to throw an exception. - **[Get the Active Inventory Integration Mode](https://help.salesforce.com/s/articleView?id=commerce.rn_get_inventory_integration_mode_w-9297234_as.htm&release=264.0.0&type=5)** When code depends on whether B2C Commerce is integrated with Omnichannel Inventory, use the new `dw.catalog.ProductInventoryMgr.getInventoryIntegrationMode()` Script API method to get the active inventory integration mode. It returns a constant defined in the `ProductInventoryMgr` class. - **[Automate Pricing and Promotion Assignments with Jobs](https://help.salesforce.com/s/articleView?id=commerce.rn_pricing_promo_impex_job_b2c_21_7_w9293213_lb.htm&release=264.0.0&type=5)** Admins can now automate price book and promotion store assignments using job steps during the import and export process. All assignments in the system are exported when using the jobs framework. - **[Change Inventory Allocation with dw.catalog.ProductInventoryRecord](https://help.salesforce.com/s/articleView?id=commerce.rn_productinventoryrecord_update_w8520183_je.htm&release=264.0.0&type=5)** With compatibility mode 21.7, you can change inventory allocation and prevent undesired allocation changes during storefront and shopper calls. # 21.8 Release The B2C Commerce 21.8 release occurs July 22 through August 24, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.8 Product Release Preview](https://salesforce.vidyard.com/watch/fyFcaDsZuqSZpo6smAyrQK?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000cY0p/hTdC2pAIjWEnKsVs1bbD1N0zWW8Jar2s_yJHnaHcjZs) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Manage High Scale Price Books Better with Delete-All Mode](https://help.salesforce.com/s/articleView?id=commerce.rn_hspd_delete_all_mode_w9332185_lb.htm&release=264.0.0&type=5)** To quickly clean up old prices in your system, you can now use delete-all mode when importing read-only price books. - **[Get Runtime Insights for OCAPI 21.8 Requests](https://help.salesforce.com/s/articleView?id=commerce.rn_metrics_data_api_resource_w9496096_mc.htm&release=264.0.0&type=5)** The new OCAPI Data API `/metrics/{apitype}?offset={Integer}&limit={Integer}` provides insight into runtimes of individual OCAPI requests against the Shop or the Data API. The metrics resource responses are JSON-wrapped metrics in Prometheus Exposition format. - **[Unified Authentication is Mandatory for Business Manager](https://help.salesforce.com/s/articleView?id=commerce.rn_mandatory_unified_authentication_w9608013_je.htm&release=264.0.0&type=5)** With the 21.8 Release, all Business Manager instances migrate to the Unified Authentication Mandatory security stage. - **[Selective Origin Shielding](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_selective_origin_shielding_w9698195_21_8_je.htm&release=264.0.0&type=5)** To restrict access to PODs not originating from the Commerce Cloud content delivery network (eCDN) and increase site security and availability, we’re implementing selective origin shielding (SOS). SOS prevents bots from accessing the origin outside the eCDN. - **[Expiring API Access Token Notification](https://help.salesforce.com/s/articleView?id=commerce.rn_api_token_notification_w980k346_je.htm&release=264.0.0&type=5)** If you use API access tokens, you now receive email notification of their pending expiration. - **[Define An SMTP Server For Customer and Platform Email Delivery](https://help.salesforce.com/s/articleView?id=commerce.rn_define_custom_email_server_w9763794_je.htm&release=264.0.0&type=5)** With the 21.8 Release, you can now use a third-party mail server to send emails from Commerce Cloud to your shoppers and site administrators. # 21.9 Release The B2C Commerce 21.9 release occurs August 19 through September 28, 2021. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.9 Product Release Preview](https://salesforce.vidyard.com/watch/FNavpRj9Paur3sVKggb7zR?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000KBU2/F.c9vmlbHm0DYgFmo3tfKwnRbZfyfXMDp_KcFK1azTY) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Case Sensitivity in Coupon Data API for OCAPI 21.9](https://help.salesforce.com/s/articleView?id=commerce.case_sensitivity_coupondataapi_w9636031_mc.htm&release=264.0.0&type=5)** The Coupon Data API allows the `case_insensitive` property to be set during coupon creation, and the `multiple_codes_per_basket` property to be set during coupon creation and update. - **[Configure B2C Commerce Alerts for Slack](https://help.salesforce.com/s/articleView?id=commerce.rn_configure_b2c_alerts_slack_w9618098_lb.htm&release=264.0.0&type=5)** Send Business Manager alerts and notifications directly to Slack. Connect your Slack workspaces to Business Manager and configure notifications such as security vulnerabilities, campaign and promotion updates, or site alerts. - **[Manage Cross Cloud Parings with New Utilities Features](https://help.salesforce.com/s/articleView?id=commerce.rn_cross_cloud_connect_enhancement_w9691780_je.htm&release=264.0.0&type=5)** New Cross Cloud utilities features help you manage B2C Commerce cross-cloud instance pairings and review trusted tenants. - **[Use Server-Side Activity Tracking for Facebook](https://help.salesforce.com/s/articleView?id=commerce.rn_facebook_conversion_api_w_9699729_je.htm&release=264.0.0&type=5)** Commerce Cloud customers using the Facebook Dynamic Ads feature can now configure their Commerce Cloud instance to track shopper activity and send data server side to Facebook. # 22.1 Release The B2C Commerce 22.1 release occurs December 2, 2021 through January 25, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [22.1 Product Release Preview](https://salesforce.vidyard.com/watch/YJnKRqz68qSYMqFwJeTwhu?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000CBKG/U6tqy8Gn.CKNa1tih0wn7Wk4P7pIl6_qQILExwCJi.o) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enforce Login\_On\_Behalf Permission](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_on_behalf_permission_je.htm&release=264.0.0&type=5)** The `Login_On_Behalf` permission is now required for agents to access a storefront on behalf of another user. Previously, agents had access without that permission. - **[Review Salesforce Commerce API Metrics in Reports & Dashboards](https://help.salesforce.com/s/articleView?id=commerce.b2c_22_1_reports_dashboards_scapi.htm&release=264.0.0&type=5)** The Salesforce Commerce API (SCAPI) report is now available in the Reports & Dashboards app, Technical dashboard. It provides insight into your site’s Commerce API requests. The report metrics are updated daily. - **[Use Custom Caches to Return Immutable Objects](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_custom_cache_w10224592_je.htm&release=264.0.0&type=5)** Custom caches are designed to return immutable copies of the original objects stored in the cache. Previously, edge cases existed where objects and arrays in custom caches could be modified. This issue has been fixed. - **[Review On-Demand Sandbox Usage in Control Center](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_on_ods_stats_je.htm&release=264.0.0&type=5)** You can now view usage statistics for the previous and current month of your On-Demand Sandbox (ODS) instance in Control Center. # 22.10 Release The B2C Commerce 22.10 release occurs Sept. 29, 2022 through Oct. 27, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, [download](https://org62.my.salesforce.com/sfc/p/000000000062/a/3y000001pugd/PD4LmpMfPzm_Hhbu0tFNHNOwrct0oOwR0eAy8Bg6Z44) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[beforePOST\_v2 replaces the dw.ocapi.shop.basket.beforePOST Hook](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_22_10_basket_beforepost_mc.htm&release=264.0.0&type=5)** With the OCAPI 22.10 release, `dw.ocapi.shop.basket.beforePOST_v2` replaces the nonfunctional `dw.ocapi.shop.basket.beforePOST` hook. - **[Negative Allocation Amounts in PUT/PATCH /inventory\_lists/{}/product\_inventory\_records/{} Are Disallowed](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_22_10_negative_allocation_mc.htm&release=264.0.0&type=5)** With the OCAPI 22.10 release, the `PUT /inventory_lists/{}/product_inventory_records/{}` and `PATCH /inventory_lists/{}/product_inventory_records/{}` resources no longer allow a negative allocation amount to be passed in. A constraint has been added to the ProductInventoryRecordAllocation. - **[Configure eCDN Zones for Staging Instances](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_config_ecdn_zones.htm&release=264.0.0&type=5)** You can now configure eCDN zones for staging instances using the new CDN API. Create an eCDN zone and certificate or implement an existing custom certificate. You can upload customer certificates to test Salesforce Commerce APIs. You can also configure vanity host names for staging instances on eCDN. - **[Origin Shielding Phase 3](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_origin_shielding_phase3_a.htm&release=264.0.0&type=5)** To protect from bots and other malicious attacks on your environment, demandware.net lockdown (Origin Shielding Phase 3) blocks all traffic that doesn’t originate from the Commerce Cloud eCDN from accessing Commerce Cloud. All calls accessing PROD and DEV instances that aren’t internal to the Commerce Cloud ecosystem are rejected. - **[Let Admins Self-Provision Order Integration](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_self_provision_order_integration.htm&release=264.0.0&type=5)** Business Manager administrators can now self-provision and activate order integration. - **[Shopper Context API Enhancement](https://help.salesforce.com/s/articleView?id=commerce.shopper_context_api.htm&release=264.0.0&type=5)** The Shopper Context API has been enhanced to support the following: - **[TikTok for Business Integration on Salesforce Commerce Cloud](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_tiktok_for_busi.htm&release=264.0.0&type=5)** The TikTok for Business Commerce Cloud integration enables centralization of product catalog synchronization and optimizing audience engagement with TikTok users. - **[Authorize Agents to Assist Shoppers with the Trusted Agent on Behalf Service](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_taob.htm&release=264.0.0&type=5)** Shopper Login and API Service (SLAS) now supports an authorization method called trusted agent on behalf (TAOB). - **[Secondary Instance Group Sandbox Stop Function is Deprecated](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_stop_sig_deprecated.htm&release=264.0.0&type=5)** The ability to STOP sandboxes in a Secondary Instance Group (SIG) environment is now deprecated in Control Center. Stopping a SIG sandbox has no benefit. This deprecation doesn't apply to On-Demand Sandboxes (ODS). # 22.2 Release The B2C Commerce 22.2 release occurs January 25, 2022 through February 22, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [22.2 Product Release Preview](https://salesforce.vidyard.com/watch/RnjGqPX6NsmgzrNaoi6BxR?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y0000011DhE/uo88Qk_ilwiz6miQnAJQvczRK_cAW_PHMFJF.Ryp1fs) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Create and Delete On-Demand Sandboxes](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_on_ods_je.htm&release=264.0.0&type=5)** Manage on-demand sandboxes (ODS) and B2C Commerce instances in a central location with clicks not code. Use B2C Commerce Control Center to create and set the ODS TTL value and resource profile settings, monitor ODS status, and delete your ODS instances. - **[Get PayPal Integration in Salesforce Payments](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_paypal_je.htm&release=264.0.0&type=5)** When you offer PayPal as a payment method, your shoppers get expanded payment options and you see fewer abandoned carts. You can now add the PayPal payment option to your B2C Commerce storefront. The PayPal integration eliminates customizing PayPal implementations. - **[Search Prices in Read-Only Price Books Using Wildcard Characters](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_hspb_search_je.htm&release=264.0.0&type=5)** In Business Manager, you can search read-only price books for product prices using a partial product ID and the wildcard character \* . For example, \*123, 123\*, or \*123\*. # 22.3 Release The B2C Commerce 22.3 release occurs February 17, 2022 through March 22, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [22.3 Product Release Preview](https://salesforce.vidyard.com/watch/dacrrKo6PBCKHKa4h5fhy9?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000p9ze/vmhJmRgG2geLfWwzIGhoH9fD5lJ67AwPbvdaRYCQ3pE) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enjoy the Lightning Design User Experience in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_bm_ui_update_je.htm&release=264.0.0&type=5)** We added Lightning Design System to the most commonly used Business Manager features and app navigation. This update gives Business Manager the same user experience that you’ve come to expect from other Salesforce products. - **[Boost Security with Content Security Policy Reporting](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_page_shield_roll_out_je.htm&release=264.0.0&type=5)** To improve monitoring capabilities, we’re adding the capability to monitor JavaScript dependencies on ecommerce websites. - **[Assign SKUs to Page Templates](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_pd_skuassignment_mc.htm&release=264.0.0&type=5)** In Page Designer, you can now assign products SKUs to a PDP template, making it easier to create PDPs for one or many handpicked products. You can assign multiple product SKUs across categories to the template. For added efficiency, enter multiple SKUs (comma delimited) into the search field to return multiple results, and then complete a multi-selection in one step. - **[Recursive Infinite Copies No Longer Supported](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_web_dav_je.htm&release=264.0.0&type=5)** You can no longer use the WevDAV copy command to generate a recursive infinite copy in a B2C Commerce instance. When you use the command to copy a file’s content into itself, the destination is excluded because it exists. Excluding the copy prevents a recursive infinite copy that fills the file system. - **[Use Custom Caches to Return Immutable Objects on Production Instances](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_custom_cache_w10671394_je.htm&release=264.0.0&type=5)** Custom caches are designed to return immutable copies of the original objects stored in the cache. Previously, edge cases existed where objects and arrays in custom caches could be modified. This issue has been fixed. - **[Promotion Bonus Product Limits](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_promotion_bonus_limits_je.htm&release=264.0.0&type=5)** Promotion bonus products are limited to a total of 50 product SKUs. Previously, you could set promotion bonus products to more than 50 SKUs. - **[Get Complete the Set Recommender Types for Products Without Shopper Interactions](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_complete_the_set_je.htm&release=264.0.0&type=5)** Einstein Product Recommendation now generates Complete the Set recommender types for products that have no or minimal shopper interactions. Einstein Complete the Set finds the closest matching product with an assigned set and assigns the set to the product. After the product has sufficient product-to-product interactions, it’s assigned to its own natural set. Previously, new products and products with minimal shopper interactions were excluded from Complete the Set recommendations. - **[Use More Product Verticals in Einstein Complete the Set](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_complete_the_set_verticles_je.htm&release=264.0.0&type=5)** Einstein Complete the Set now includes the health, party supplies, and office supplies product verticals. The expanded list also includes beauty, cosmetics, home furnishing, sporting goods, and gym equipment. - **[Export Controls Notice](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_export_controls_notice_je.htm&release=264.0.0&type=5)** In compliance with export control and economic sanctions laws and regulations where Salesforce operates, service to and from Cuba, Iran, North Korea, Syria, the regions of Crimea, Luhansk, or Donetsk is restricted without prior government authorization. As a result, customers, merchants, and shoppers from restricted locations are unable to access Salesforce-supported sites. # 22.4 Release The B2C Commerce 22.4 release occurs March 17, 2022 through March 29, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [22.4 Product Release Preview](https://salesforce.vidyard.com/watch/qRoJ1wgNkGaaommuPNUYkA?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000001UQWg/dzQYBfD0typcv.G.wcfsssH.t6zMDvqxyWGQ4ftGHAk) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Get More Functionality with OCAPI 22.4](https://help.salesforce.com/s/articleView?id=commerce.ocapi224_release_w10695074_mc.htm&release=264.0.0&type=5)** With the release of OCAPI 22.4, new functionality has been added to some Data and Shop APIs. You can now search and sort `creation_date` and `lastmodified_date` in more Data API searches. In Shop API, use the new `guest` flag for the Order response document to determine whether the order was created by a guest or a registered customer. - **[Merge Variation Group Results](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_enable_additional_variation_group_display_settings_je.htm&release=264.0.0&type=5)** Use the new merge global display setting in Business Manager to group the results of product variations and search hits as a single product hit. The setting applies to the site search and category level, including category fallback. - **[Limit Source Code Group ID Characters](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_source_code_group_id_character_limit_je.htm&release=264.0.0&type=5)** Source code group IDs are now limited to 28 ASCII characters. The limit applies to source codes defined using the Business Manager Source Code Creation page and through import. If a source code exceeds 28 ASCII characters, an error message states the character limit. Previously, source code IDs that exceeded 28 ASCII characters were truncated. - **[OCAPI Caching on eCDN](https://help.salesforce.com/s/articleView?id=commerce.ocapi_caching_on_ecdn_jemc.htm&release=264.0.0&type=5)** OCAPI caching is now supported on eCDN for the `GET products` API. OCAPI caching decreases the load of API requests to the origin, and improves the API response time by 50% or more - improving performance and load times. # 22.5 Release The B2C Commerce 22.5 release occurs April 7, 2022 through May 17, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [22.5 Product Release Preview](https://salesforce.vidyard.com/watch/yy1GpS1zsKHDxVEDPZJhzr?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000001USCE/5CQHQyrdWJiFkxM8e7M0U8fyJgIFE9vyEZdoITcHmAM) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Add Klarna as a Payment Option](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_add_klarna_to_payments_je.htm&release=264.0.0&type=5)** Commerce Payments now supports Klarna as a Multi-step payment option. You can offer shoppers the option to buy now and pay later. The Klarna payment option makes it convenient for shoppers to purchase items in all price ranges. - **[Set Commerce Payment Credential Storage](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_payments_credential_storage_je.htm&release=264.0.0&type=5)** Commerce Payments now supports payment card credential storage. The Payment card credential storage. There are two settings. - **[Manage On-Demand Sandboxes with the Operations Scheduler](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_operations_scheduler_je.htm&release=264.0.0&type=5)** Use the Control Center Operations Scheduler to start and stop on-demand sandbox (ODS) instances within a realm. By scheduling ODS starts and stops, you can control the usage of ODS credits. The Operations Scheduler is a convenient UI-based tool. Developers can still use the swagger UI or the Sandbox API to schedule operations. - **[Use Primitive Data Types Only with Job Context](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_use_primitive_data_types_je.htm&release=264.0.0&type=5)** Jobs that store non-primitive data types of values, for example, arrays and objects, in `dw.job.JobExecution.getContext()` now fail. Previously, the job logged a warning, ignored the invalid value, and continued. # 22.6 Release The B2C Commerce 22.6 release occurs May 12, 2022 through June 21, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000001UTge/D._CFznanGr0aJqoPD9YMahuFBPRTkEUwM75BckAdUs) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[OCAPI 22.6 - Manage Access Keys with Data API](https://help.salesforce.com/s/articleView?id=commerce.ocapi_acess_keys_data_api_mc.htm&release=264.0.0&type=5)** With the release of OCAPI 22.6, Business Manager users with the Manage\_Users\_Access\_Key permission can generate, delete, and rotate access keys for other users via a Data API call. The API automates access key generation and rotation for users who primarily use in-store apps to log in to the B2C platform. By using this API, these Business Manager users are no longer required to log in to Business Manager to generate or rotate access keys manually. - **[Add EPS as a Payment Option](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_add_eps_to_payments_je.htm&release=264.0.0&type=5)** EPS is an Austria-based payment method supported by all Austrian banks. You can add the EPS option to your storefront in Business Manager Payment Settings. - **[Avoid Chargebacks with a Site-Specific Statement Descriptor](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_statement_descriptor_je.htm&release=264.0.0&type=5)** Use a site-specific descriptor to help shoppers identify the source of an account charge on their credit card statements to reduce payment disputes and chargeback requests. You set the customer statement descriptor in Business Manager Payment Settings. The setting overrides the value set in your Stripe merchant account. - **[Troubleshoot Storefront Implementation Errors in Log Center](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_storefront_error_logs_je.htm&release=264.0.0&type=5)** Filter and find storefront implementation errors, such as broken includes, large header errors, and large request errors. # 22.7 Release The B2C Commerce 22.7 release occurs June 16, 2022 through July 26, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, [download](https://org62.my.salesforce.com/sfc/p/000000000062/a/3y000000h4lO/MrPwsTexRW.ihW3iTAQrDH2c8XRzQWe9BhnqQzQxjbQ) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Inclusive Language Updates in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_inclusive_language_22_7_je.htm&release=264.0.0&type=5)** As we refine language in our products to more accurately reflect inclusivity, we replaced the word “master” with “main” or “base” in the Business Manager user interface and our documentation. To avoid any effect on customer implementations, we didn’t make any API changes. - **[API Encryption Parameter Has Been Changed](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_ocapi_order_export_mc.htm&release=264.0.0&type=5)** The encryption parameter that handles encrypted and masked payment instrument data, including credit card, bank account, and driver license numbers, in the `dw.order.Order.getOrderExportXML` API has been completely revised. - **[Limit Allowed Component Types](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_pd_limit_component_types.htm&release=264.0.0&type=5)** Developers can now limit which components are added to a region by defining an allowlist in `component_type_inclusions` in addition to the existing blocklisting via `component_type_exclusions`. - **[Get More JavaScript Features and Functionality with Compatibility Mode 22.7](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_compatibility_mode_22_7_je.htm&release=264.0.0&type=5)** With compatibility mode 22.7, the B2C Commerce server-side JavaScript engine supports more elements from ECMAScript 6 (ES6) and later. You can access new and expanded features, including top-level built-in types and methods for existing classes. - **[Track Internal User Access to Sensitive Business Manager Functionality](https://help.salesforce.com/s/articleView?id=commerce.sensitive_bm_tracking.htm&release=264.0.0&type=5)** The Commerce Cloud Security model regarding actions taken by Salesforce employees on customer realms have been enhanced to include transparent logging of all sensitive areas. When any read or write action is taken on a sensitive area, the Business Manager username of the Salesforce employee, the area, and the action is recorded in the security log available for customer use. The goal of the security control is to make the actions of Salesforce employees, via observation or through changes of realm-specific customer information, more apparent. - **[Enjoy a Business Manager Refresh](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_business_manager_refresh_22_7_je.htm&release=264.0.0&type=5)** To enhance usability, we've updated some aspects of the Business Manager user interface. # 22.8 Release The B2C Commerce 22.8 release occurs July 21, 2022 through August 23, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y0000011KxY/OBzb7U5kuoLBxQ5gW8UufNixR14XqzaqrqtJrateVPQ) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Holiday Preparation Database Optimization](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_holiday_prep_db_opt_release.htm&release=264.0.0&type=5)** As part of the 2022 Holiday preparation, the 22.8 release includes some database optimizations. The optimizations have the potential to cause a one-time increase in migration time during the 22.8 Preview and GA deployments. Some instances see a slightly longer impact during the maintenance window as part of the release deployment. - **[Get More Storefront Calls](https://help.salesforce.com/s/articleView?id=commerce.increase_send_quota_mc.htm&release=264.0.0&type=5)** The `api.dw.net.HTTPClient.send` quota has doubled. You can now make up to 16 storefront calls. The warning threshold has also been increased from 5 to 10. - **[Access the Change History for Campaigns, Promotions, and Coupons](https://help.salesforce.com/s/articleView?id=commerce.prd_change_history_mc.htm&release=264.0.0&type=5)** You can now use the change history feature in Business Manager to identify which campaigns, promotions, and coupons have been created, edited, or deleted on a production instance. - **[Distinguish Between OCAPI and SCAPI Requests](https://help.salesforce.com/s/articleView?id=commerce.scapi_hook_script_mc.htm&release=264.0.0&type=5)** Use the new method added to the `dw.system.Request` object to identify the SCAPI context. You can now distinguish between OCAPI and SCAPI requests in extension points (hooks). Direct access to the `'_sfdc_mercury'` header has been deprecated. - **[Use Customer Import and Export for Salesforce Payments](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_import_export_payment_reference_je.htm&release=264.0.0&type=5)** The Customer object (customer.xsd) now supports import and export of site-specific data about payment customers. The customer data tells the system where to find the payment data. It doesn’t include actual customer payment data. - **[Verify Host Name Ownership with a TXT Record](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_add_certificate_to_zone_je.htm&release=264.0.0&type=5)** When you create a zone and after you upload a custom host name certificate, you’re now required to verify ownership using a TXT record. The verification record is displayed in Business Manager after uploading the certificate. You create a TXT record in your DNS portal. # 22.9 Release The B2C Commerce 22.9 release occurs August 18, 2022 through October 4, 2022. Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000csgR/TghuenRzsW_QtCcyGrLroL6DxR5ZHq9cPG3tGauqdA4) a PDF of the Preview. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Do More with Components in Page Designer](https://help.salesforce.com/s/articleView?id=commerce.pd_improvements.htm&release=264.0.0&type=5)** You can now copy up to 10 components to a clipboard from the component’s action dropdown menu. You can paste the components in the same or other page or across browser tabs from a region’s Add action in the Page Structure panel. You can now also target components to specific locales, in addition to customer groups and campaigns. Additionally, pages loaded in Page Designer are responsive before all referenced images, external resources, or client-side scripts have completed loading, cutting down on wait time. - **[WebDAV Upload Limit Is Increased](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_22_9_increased_upload_limit_je.htm&release=264.0.0&type=5)** The upload limit for a WebDAV push into a Salesforce B2C Commerce instance has been increased from 100 MB to 500 MB. - **[Offer AfterPay as a BuyNow, Pay Later Payment Service](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_offer_afterpay_je.htm&release=264.0.0&type=5)** Let your shoppers pay in interest-free installments with AfterPay. Salesforce Payments offers AfterPay through your Stripe Merchant account. When AfterPay is active on your storefront, the product details page and checkout cart list it as a payment option. - **[Offer Venmo as a Payment Service](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_offer_venmo_je.htm&release=264.0.0&type=5)** Salesforce Payments supports Venmo as an express and multi-step payment service for U.S.-based merchants and shoppers using U.S. currency. Shoppers can use Venmo from your mobile or desktop Storefront Reference Architecture (SFRA) sites. Using Venmo on your SFRA storefront requires a PayPal integration with Salesforce Payments and a payment zone configured for the Venmo U.S.-based criteria. - **[Shopper Context API Enhancements](https://help.salesforce.com/s/articleView?id=commerce.shopper_context_229.htm&release=264.0.0&type=5)** The Shopper Context API has been enhanced to support: # 23.1 Release The B2C Commerce 23.1 release occurs Nov. 29, 2022 through Jan. 26, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes! ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Data Retention Has New Limits](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_new_data_retention_standard.htm&release=264.0.0&type=5)** To comply with Salesforce Commerce Cloud data management and regulation standards, B2C Commerce is implementing a strict 180 days data retention for code and data replications. Replications after 180 days aren’t visible in the Business Manager replications module. - **[OCAPI 23.1 - Property Selector Key Error Identifier](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_ocapi_propety_selector_key.htm&release=264.0.0&type=5)** Beginning with OCAPI Version 23.1 a `MalformedSelectorException` is thrown if the selector key is incorrect. Previously, the property selection didn't work when the "`select=` key was incorrectly defined. For example, `select%20=(price)`, resulted in the selector being skipped without any error message, and the normal response was returned. - **[OCAPI 23.1 - Basket Flash Validation Update](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_ocapi_basket_flash_validation.htm&release=264.0.0&type=5)** With the release of OCAPI 23.1, The property selection mechanism now works with all Shop API resources that return a basket or create an order. Previously, validation returned an error in most instances. - **[OCAPI 23.1 - Use Selectors with Expressions](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_ocapi_property_selector.htm&release=264.0.0&type=5)** Selectors with expressions now work correctly when objects contain a property with markup text. Previously, when an object contained a property with markup text, selectors with expressions didn't work correctly. - **[Create Orders from Stored Information with Salesforce Payments](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_improved_subscription_support_with_salesforce_payments.htm&release=264.0.0&type=5)** Each time an order is placed, you can reuse the payment details, payer’s stored payment credentials, or off-session tokens from a previous payment. - **[Migrate Deprecated Custom Jobs to Step-Based Jobs](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_migrate_jobs_to_steps.htm&release=264.0.0&type=5)** Use the new migration tool to convert your deprecated custom jobs to step-based jobs. Previously, migrating deprecated custom jobs required long development times. The migration tool is available on the Jobs Details page for jobs running on the deprecated framework. - **[Use a Unified URL for Your On-Demand Sandboxes](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_new_ods_url.htm&release=264.0.0&type=5)** You can now access your on-demand sandboxes with a unified cluster-agnostic host name, so you no longer have to remember the cluster that your sandbox belongs to. The hostname matches the pattern `-.dx.commercecloud.salesforce.com`, for example, `zzzz-001.dx.commercecloud.salesforce.com`. It also matches the domain name of the B2C centralized admin API server, `admin.dx.commercecloud.salesforce.com`. - **[Configure a Max-Age for HSTS](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_new_option_to_configure_a_max_age_for_hsts.htm&release=264.0.0&type=5)** Add additional security to your B2C Commerce instance with the max-age for HSTS setting. Setting a max-age determines how long the HSTS settings stay enabled. # 23.10 Release The B2C Commerce 23.10 release occurs September 28, 2023 through Oct 31, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enable Temporary Baskets for Immediate Order Requests](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_enable_temporaty_basket.htm&release=264.0.0&type=5)** You can now create temporary baskets for immediate order requests in B2C Commerce. For example, a shopper uses a Buy Now option to purchase an item. The temporary basket, which has a limited lifetime of 15 minutes, is populated with all the data required to ready the basket for checkout without affecting the regular shopper basket. - **[Update Main Product Variants for a Bundled Line Item](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_enable_bundled_main_product_variant_selections.htm&release=264.0.0&type=5)** You can now update a main product variant in a bundled line item. This change allows shoppers to select a main product variant when adding a bundled line item to a cart. For example, a product bundle contains a belt and a T-shirt. The T-shirt is a main product with red, blue, and green variations. When the shopper adds the product bundle to a basket, the belt and T-shirt are added as bundled items, and the shopper can select a T-shirt color, one of the T-shirt variants. Previously, the API didn’t support selecting a main product variant when a main product was included in a line item bundle. - **[Renew eCDN Certificates in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_renew_ecdn_certificates_in_business_manager.htm&release=264.0.0&type=5)** You can now use Business Manager to auto-renew up to five proxy zone eCDN certificates per realm. The new feature simplifies the annual renewal for eCDN certificates. If you use custom certificates, you can easily switch to auto-renewing certificates in the Business Manager UI. When you create a CDN zone, you can select to use eCDN Managed certificates. - **[Get Einstein Recommendations for Large Product Catalogs](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_use_commerce_cloud_einstein_with_large_product_catalogs.htm&release=264.0.0&type=5)** Commerce Cloud Einstein now generates recommendations for product catalogs that exceed 3 million product SKUs. Einstein Product Recommendations enable you to create and manage recommenders and assign strategies that predict the most relevant products to promote to individual shoppers. - **[Insulate B2C Commerce Against Rogue Queries](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_elastic_search_query_limit.htm&release=264.0.0&type=5)** Elastic search queries configured in Business Manager or using the `customer_search` and `order_search` APIs are now limited to 200 thousand results. Queries for results greater than 200 thousand time out. Limiting the elastic search results helps insulate your B2C Commerce Instance from rogue queries. If you use the APIs, run queries with a smaller offset to avoid a timeout. # 23.2 Release The B2C Commerce 23.2 release occurs Jan. 17, 2023 through Feb. 21, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Improved Page Designer Structure and Usability](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_page_designer_page_structure.htm&release=264.0.0&type=5)** The Page Designer page structure in the canvas editor has been redesigned. The asset hierarchy outlines all the assets on your page. The visual connection between what is selected in the canvas and its location in the page structure is also improved. - **[Move Components in Page Designer More Easily](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_page_designer_drag_functionality.htm&release=264.0.0&type=5)** Dragging components in Page Designer is now more intuitive. Know exactly where you can place a component. And after you drop a component and refresh the page, the component remains in focus and highlighted until another selection is made in the canvas. - **[Save and Return to the Same Canvas Location in Page Designer](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_page_designer_page_reset.htm&release=264.0.0&type=5)** When you save a canvas action in Page Designer, you’re now returned to the same canvas location after the page reloads. Previously, you were returned to the top of the canvas. - **[Do More with VAT Calculation Method for Taxation](https://help.salesforce.com/s/articleView?id=commerce.rn_vat_calculation_method.htm&release=264.0.0&type=5)** B2C Commerce now supports tax calculation and rounding based on tax groups. You can now calculate tax and use rounding based on tax groups. The calculation method uses a new Tax Rounding Level site preference called Group. The tax groups are exposed via OCAPI and Script API to support customization. - **[Fine-Tune Your Site’s Regional Settings](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_fine_tune_locales.htm&release=264.0.0&type=5)** You now have full control in Business Manager over all parameters used for converting numbers and dates into strings. Use the new Format Symbols tab and regional parameters to add Locale details. - **[Access Page Designer with SCAPI](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_scapi_shopper_experience_api.htm&release=264.0.0&type=5)** You can now use the Shopper Experience SCAPI API to add content created in Page Designer to your B2C Commerce headless implementation. Use the SCAPI Shopper Experience API to look up page information for pages created in Page Designer. The Shopper Experience API responses include: - **[Set Up Payments for Immediate or Future Payment Capture](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_payments_script_api_update.htm&release=264.0.0&type=5)** You can use the SalesforcePaymentRequest script API to set immediate or future payment captures. Use this method to override the site-level payment settings and gain greater flexibility over how payments are captured. - **[Enjoy Faster eCDN Zone Load Times](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_faster_ecdn_zone_load_times.htm&release=264.0.0&type=5)** The Business Manager Embedded CDN (eCDN) page is now more efficient with faster zone load times. For B2C Commerce Instances with large numbers of zones, the eCDN page now loads up to ten times faster. # 23.3 Release The B2C Commerce 23.3 release occurs Feb 9, 2023 through March 7, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Successful Jobs Are No Longer Logged](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_more_efficient_logs.htm&release=264.0.0&type=5)** To increase the efficiency of log volume, successful job steps for custom and global jobs with dedicated log files are no longer logged in the global job log file, or Log Center. You can still review successful job steps in the dedicated log file. - **[ISV Partners Can Get a Trial Sandbox Automatically When Registering](https://help.salesforce.com/s/articleView?id=commerce.rn_automated_trial_sandbox.htm&release=264.0.0&type=5)** B2C Commerce independent software vendor (ISV) partners can now get a trial sandbox environment within minutes of joining the AppExchange Partner program. ISV partner prospects can opt in for a 90-day trial sandbox when they register on the Partner Recruitment page. After their information is submitted, a trial sandbox is automatically provisioned, and the ISV partner receives an email with their sandbox credentials. - **[Buy Now Items Get Their Own Cart](https://help.salesforce.com/s/articleView?id=commerce.rn_buy_now_items_get_cart.htm&release=264.0.0&type=5)** Shoppers can now use Buy Now express checkout without losing the contents of an existing shopping cart. Buy Now express checkout puts items for purchase in a separate cart. To use this feature, upgrade the Payments plug-in (plugin\_commercepayments) to the latest version. - **[Guest Basket Lifetime Limit Is Increased](https://help.salesforce.com/s/articleView?id=commerce.rn_guest_basket_lifetime.htm&release=264.0.0&type=5)** The lifetime limit for a guest customer basket is now the lesser of 30 days and the registered customer basket lifetime. Previously, it was the lesser of 7 days and the registered customer basket lifetime. This limit applies to input validation in the BM Basket Preferences UI and Basket Preferences Import. It also affects resolving the guest basket lifetime if it isn’t set, for example, for the basket cleanup job. - **[Enable the Shopper Context API in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_enable_shopper_context.htm&release=264.0.0&type=5)** The Shopper Context feature toggle is now exposed in Business Manager. Use the toggle for each B2C Commerce instance you want to use the API. - **[Manage CDN Security and Certificate Configurations with CDN Zone APIs](https://help.salesforce.com/s/articleView?id=commerce.rn_manage_cdn_security_and_cert_zone_apis.htm&release=264.0.0&type=5)** The CDN Zone APIs now support security and certificate configurations. - **[New Promotion Limits](https://help.salesforce.com/s/articleView?id=commerce.rn_promo_tiers_limits.htm&release=264.0.0&type=5)** To ensure that promotions are evaluated efficiently, limits for the number of promotion tiers, product options, categories, and other attributes are now enforced. # 23.4 Release The B2C Commerce 23.4 release occurs March 9, 2023 through April 4, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Configure Origin Rules with CDN Zone APIs](https://help.salesforce.com/s/articleView?id=commerce.rn_configure_origin_rules_zone_apis.htm&release=264.0.0&type=5)** Configure Phased headless rollouts of SFRA to PWA implementations with the new CDN Zone APIs. You can now migrate specific pages to a PWA origin without completely switching from SFRA to PWA. You can also create and update origin rules to direct traffic to a PWA origin. - **[Extend Payment Processing with Salesforce Payment APIs](https://help.salesforce.com/s/articleView?id=commerce.rn_extend_payment_processing_with_apis.htm&release=264.0.0&type=5)** Use the new Salesforce Payment APIs to connect with third-party order management systems or platform-specific custom features. The APIs support capture, cancel, refund, and updates. For example, you can directly cancel or refund a payment in an order failure event by cleaning up payment authorizations. The APIs are available as Script APIs. - **[Grouped Taxation Applied to Import and Export Orders](https://help.salesforce.com/s/articleView?id=commerce.rn_group_taxation_active.htm&release=264.0.0&type=5)** B2C Commerce now recognizes imported and exported orders created with group taxation and uses the group taxation method to calculate tax for those orders. - **[Track Page Designer Rendering Performance](https://help.salesforce.com/s/articleView?id=commerce.rn_track_page_designer_performance_apis.htm&release=264.0.0&type=5)** When editing in Page Designer, the page, region, and component rendering performance is now logged in your browser’s developer console. You can use the log to identify bottlenecks and optimize the rendering speed. # 23.5 Release The B2C Commerce 23.5 release occurs April 7, 2023 through May 16, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Manage Orders Rejected by Salesforce Order Management](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_b2c_order_managment_actions.htm&release=264.0.0&type=5)** You can now exclude, cancel, and resubmit orders rejected by Salesforce Order Management in the Business Manager Orders page. - **[Code Profiler Wait Times Removed from CSV Report](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_code_proflier_wait_times_deprecated.htm&release=264.0.0&type=5)** Code profiler wait times, which include Wait Time Own and Wait Time Total, are no longer measured. These values have been removed from the B2C Commerce CSV report. The CSV report remains backward compatible. - **[Improve Search Results with Autocorrection](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_new_search_logic.htm&release=264.0.0&type=5)** Enable search to process configured synonyms when autocorrecting or autocompleting a user’s search phrase. If the original phrase matches the synonym entries, search includes the synonyms. When search autocorrects a phrase, it considers both the original phrase and the autocorrected version. Previously, if a phrase was autocorrected or autocompleted, synonym group matching on the initial search phrase wasn’t considered. - **[Log Users Views of Personal Identification Information](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_pii_security_log.htm&release=264.0.0&type=5)** Configure Business Manager to make security log entries when a user views a shopper’s personal identification information (PII) in the Order module, Customer module, or Coupon module. When a user clicks a button, tab or field that displays a shopper’s PII, the security log updates with details about when, who, and what is viewed. For example, when the user views an order, the security log is updated with a timestamp, the user, and the order number viewed. # 23.6 Release The B2C Commerce 23.6 release occurs May 11, 2023 through June 20, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enhance Storefront Search Scale and Performance](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_search_setting.htm&release=264.0.0&type=5)** Enhance the scale and performance of storefront search for keyword search and product browsing with the new B2C Commerce search settings option. Improve page load times for large product catalogs when processing search results that exceed a configurable threshold. Shoppers get quicker results when performing a keyword search, refinement calculation, product grouping, sorting, and category browsing. For example, if your storefront doesn’t use search refinement counts in the refinement bar, a setting is available to improve refinement calculation and search and category page load times. - **[Validate Hostnames for Certificates](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_validate_hostname_for_certs.htm&release=264.0.0&type=5)** B2C Commerce now validates the hostname in the HTTPS certificate for outgoing connections. Validating the hostname eliminates the chance that a connection is made to the wrong host. To identify failed verifications, search the logs with the keyword phrase: Host name verification failed. This validation can be disabled on specific requests using the new `setHostNameVerification` method on the HTTPClient script API. - **[Auto Renew CDN Certificates](https://help.salesforce.com/s/articleView?id=commerce.rn_auto_renew_cdn_certificates.htm&release=264.0.0&type=5)** Starting May 19, 2023, if you can self-manage your custom SSL certificates, you have the option to configure eCDN managed provisioned SSL certificates for automatic renewal. Auto renewing a certificate saves time and keeps you from missing deadlines. It also improves managing eCDN on staging instances. You can configure auto renewing certificates for development, staging, and production instances. Auto renewal is available only for eCDN managed certificates and only with the CDN-API. You can renew up to 5 auto-renewing certificates per realm at no additional cost. - **[Set Up Custom Firewall Rules with the CDN-API](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_set_up_custom_firewall_rules.htm&release=264.0.0&type=5)** To enable better rule enforcement, the B2C Commerce CDN-API now supports custom firewall rules. The API also provides custom firewall controls to target traffic from a specific path or user agent. Custom firewall rules are a superset of existing firewall rules, it will replace the existing firewall rules for IP, ASN, Geo, the existing firewall rules will be deprecated by February 1, 2024. All firewall rules will be deprecated by February 1, 2024. - **[Set Up CDN Logpush](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_set_up_cdn_logpush.htm&release=264.0.0&type=5)** You can use the CDN-API to store firewall events and CDN logpush for HTTP requests in your S3 bucket for immediate log visibility. The API supports visibility of HTTP requests and firewall events in the CDN logs. The logs are also available for eCDN implementations. # 23.7 Release The B2C Commerce 23.7 release occurs June 15, 2023 through July 25, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Configure Promotion Search Refinement with OCAPI and SCAPI](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_config_promo_search_with_apis.htm&release=264.0.0&type=5)** You can now refine promotion searches in B2C Commerce OCAPI and SCAPI. Use the promotion search refinement APIs to generate and display results that help shoppers discover products that are on sale or part of a promotion. - **[Get Coupon-Based Promotions with New Script API](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_get_coupon_based_promotions.htm&release=264.0.0&type=5)** The `PromotionMgr.getActiveCustomerPromotions(boolean ignoreCouponCondition)` script API returns all active promotions including coupon-based promotions when ignoreCouponCondition set to true. You can use the returned promotions to expose promotions on your storefront. For example, display a callout message for coupon-based promotions on product detail or product list pages. - **[Improve Product Discoverability with the Google Inventory Listings Cartridge](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_improve_discoverability_in_google.htm&release=264.0.0&type=5)** The Google Inventory cartridge is a B2C Commerce direct integration cartridge. You can use the cartridge to list your local store products on Google’s free product listings. Shoppers can discover products in stores near them. This increases local store foot traffic. - **[Receive Rejected Order Alerts in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_receive_rejected_order_alerts.htm&release=264.0.0&type=5)** B2C Commerce Business Manager now displays an alert notification when orders are rejected by Salesforce Order Management. Users with access to the Business Manager orders module receive the alert and can review and act on rejected orders. The alert is also available in Slack when you connect your Business Manager instance to Slack. - **[Script API Sort Methods Are Stable](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_script_api_sort_stable.htm&release=264.0.0&type=5)** As required by ECMAScript 2019, the B2C Commerce Script API methods Array.sort() and Array.sort(function) are now documented as stable, so equal elements aren’t reordered as a result of the sort. - **[Configure Up to 10 Categorization Conditions](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_config_categorization_rule_conditions.htm&release=264.0.0&type=5)** When configuring a categorization rule in Business Manager, you can now set up to ten categorization conditions per categorization rule set. Previously, Business Manager supported five conditions per rule set while the API supported ten conditions per rule set. - **[Update Social Selling Cartridges](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_upddate_social_cartridges_23_7.htm&release=264.0.0&type=5)** Extend your social selling business functionality with the following updates. The updates cover common updates across all channels as well as channel specific functionality. # 23.8 Release The B2C Commerce 23.8 release occurs July 20, 2023 through August 22, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Get Accurate Allocation Amounts with a Null Allocation Payload](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_get_accurate_allocatin_amounts.htm&release=264.0.0&type=5)** `PATCH and PUT /product_inventory_records/{product_id}` now supports a null allocation payload while keeping accurate account of product allocation amounts and allocation reset date. Previously, sending a Patch or Put call to set a custom inventory record attribute using a null `allocation` payload resulted in an invalid reset date. - **[Support for Correct Ad Attribution](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_facebook_ad_attribution_release.htm&release=264.0.0&type=5)** B2C Commerce now sends FPC and FBP cookie Ids in the server-side purchase event to Facebook. This enhancement supports deduplication of purchase events and enables correct Facebook ad attribution. Facebook ad attribution enables you to measure and understand the impact of your ads across multiple publishers, channels, and devices. - **[Improve Readability for Exported Custom Attributes of Type Number](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_improve_readibility_of_custom_attributes.htm&release=264.0.0&type=5)** Custom attributes of type number are exported to a `xsd:double` compatible format for XML exports. To better support use cases where `xsd:decimal` is assumed, B2C Commerce now exports values that are also compatible to `xsd:decimal`. This change supports a well-defined range of numbers that don’t need scientific notation. In terms of persistency/database the supported values are zero, as well as positive and negative fixed numbers with absolute values from 1.0E-130 to but don’t include 1.0E126. NaN, Infinity, and -Infinity aren’t supported. - **[Prevent Scheduled Instance Backups on Production and Development Instances](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_prevent_scheduled_instantce_backups.htm&release=264.0.0&type=5)** Scheduled instance backups are available only for staging instances. Existing configurations on PRD and DEV have been removed and a new custom job is now available for each configuration. # 23.9 Release The B2C Commerce 23.9 release occurs Aug 17, 2023 through Oct 03, 2023. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Improve Code Profiler Tracking](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_improve_code_profiler_tracking.htm&release=264.0.0&type=5)** The Code Profiler Script API calls (shown as SCRIPT\_API) are no longer measured when using Production Mode. This change improves code profiler tracking without causing performance issues. - **[Improve Product Search Result in Japanese](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_improve_product_search_results_in_japanese.htm&release=264.0.0&type=5)** You can now enable a new language analyzer for Japanese locales in B2C Commerce. The new analyzer supports advanced methods for search query tokenization. This enhancement provides more relevant search results for product searches in the Japanese language. It also reduces the merchandising effort to optimize storefront search for Japanese locales. For example, setting up additional synonyms and search dictionary entries. - **[Protect Against Brute Force Attacks](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_protect_against_brute_force_attacks.htm&release=264.0.0&type=5)** Starting September 12, 2023, B2C Commerce will introduce custom rate limits rules for the eCDN CDN-API. Rate limiting rules allow you to specify rate limits for requests that match a particular expression and then perform an action when those rate limits are reached. # 24.1 Release The B2C Commerce 24.1 release occurs December 05, 2023 through February 01, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enable Temporary Baskets for Immediate Order Requests in OCAPI](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_enable_temporaty_basket_ocapi.htm&release=264.0.0&type=5)** OCAPI 23.4 includes support for temporary baskets. Temporary baskets allow for immediate order requests in B2C Commerce. For example, a shopper uses a Buy Now option to purchase an item. The temporary basket, which has a limited lifetime of 15 minutes, is populated with all the data required to ready the basket for checkout without affecting the regular shopper basket. - **[Improved Log Handling for Einstein Search Dictionaries and Einstein Predictive Sort](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_improved_einstein_log_handling.htm&release=264.0.0&type=5)** The error handling for Einstein Search Dictionaries and Einstein Predictive Sort log files no longer creates log errors when an updated dataset isn’t available. - **[Get Smarter Business Insights with Commerce Intelligence (Pilot)](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_commerce_intelligence.htm&release=264.0.0&type=5)** Take a deep dive into customer behavior and key business metrics with Commerce Intelligence dashboards powered by CRM Analytics and Data Cloud. Use the Product Intelligence dashboard to understand the best and worst selling products, categories, and their trends over time. Delve into customer insights like number of active customers, average order value, and segmentation with the Customer Lifetime Value dashboard. - **[DKIM Support for Google and Yahoo Email Spam Reduction](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_support_for_dkim.htm&release=264.0.0&type=5)** To ensure Google and Yahoo's announcements regarding reducing spam mails don’t disrupt your business operations, Salesforce B2C Commerce is making the following changes to our Commerce Cloud mail service: - **[Create customer groups based on a Data Cloud Segment](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_create_customer_groups_based_on_a_data_cloud_segment.htm&release=264.0.0&type=5)** You can use guest shopper segments created in Data Cloud in your B2C Commerce guest shopper campaigns. # 24.10 Release The B2C Commerce 24.10 release occurs October 01, 2024 through October 31, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Access Key Resources in the New Business Manager UI (Beta)](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_access_key_resources_in_new_bm_ui.htm&release=264.0.0&type=5)** The new B2C Commerce Business Manager user interface (UI) was introduced as an open option in release 24.9. Release 24.10 includes improvements and several new features. - **[Customize Your Search Index Rebuild Schedule](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_customize_search_index_rebuild_schedule.htm&release=264.0.0&type=5)** Enhance your site’s search functionality by specifying on which days to rebuild your search indexes. Previously, you could schedule rebuilds only on a daily, weekly, or monthly basis. - **[Get AWS SFTP Stability with Automatic Timeout Adjustment](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_enhance_aws_sftp_stability.htm&release=264.0.0&type=5)** B2C Commerce now boosts the efficiency of SFTP transactions on AWS by preventing prolonged connection times. To mitigate issues related to delayed server responses, the timeout setting for an AWS SFTP connection now has a minimum threshold of 10 seconds. - **[Enhance Origin Performance and Security with Advanced Protocols](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_enhance_origin_performance.htm&release=264.0.0&type=5)** Boost your content delivery with the integration of Early Hints, HTTP/3, and HTTP/2 to Origin. These protocols reduce performance lag and enhance security, ensuring faster and safer data transmission. To optimize your service delivery, configure these settings using CDN-API or Business Manager. - **[Implement Enhanced Security Controls in Commerce Cloud](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_implement_enhanced_security.htm&release=264.0.0&type=5)** As announced in the 24.7 release notes, B2C Commerce now prevents traffic that doesn’t originate from Commerce Cloud eCDN from accessing hyphenated demandware.net host names, such as `staging-xxx.demandware.net`, to the Open Commerce API (OCAPI) or Storefront. Traffic through `demandware.net` doesn’t have eCDN controls in place, posing a potential risk to your data security. Origin Shielding for staging makes sure that all external traffic goes through the eCDN security layers before reaching your environment. The introduction of Origin Shielding for staging impacts Commerce Cloud customers who have implementations that involve direct calls to POD IPs. - **[Discontinued Cloudflare Auto-Minification](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_replace_discontinued_cloudflare_auto_minification.htm&release=264.0.0&type=5)** The auto-minification feature offered through Cloudflare CDN is no longer available. With the discontinuation of auto-minification, removing empty lines from HTML documents is now automated. This update, released with 24.8, offers a refined approach to page optimization for performance and search visibility. Investigate performing minification at build time. - **[Sign Up for the Shop the Store Pilot](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_signup_for_shop_the_store_pilot.htm&release=264.0.0&type=5)** Improve your B2C Commerce site’s functionality by letting shoppers refine product searches according to store-level inventory. The Shop the Store pilot feature integrates store inventory data directly into your storefront search and browsing capabilities, providing customers more-tailored shopping options. Additionally, there’s no need for custom platform modifications or workarounds, such as high-scale price books. - **[Experience Improved Rule-Based Categorization](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_simplify_rule_based_categorization.htm&release=264.0.0&type=5)** Rule-based categorization import and export is more efficient and accurate. It handles special characters better and export processes now automatically default to x-default when encountering an undefined locale. - **[Auto-Renew Up to 500 eCDN Certificates per Zone](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_auto_renew_up_to_500_ecdn_certificates_per_zone.htm&release=264.0.0&type=5)** Simplify your annual eCDN certificate renewal process by using Business Manager or CDN-API to auto-renew up to 500 certificates per zone. Previously, you could renew only 50 certificate at a time. When you create a CDN zone in a development, staging, or production instance, select eCDN Managed certificates. - **[Get Better Null Basket Handling for Seamless Shopping](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_enhance_null_basket_handling.htm&release=264.0.0&type=5)** We improved how null baskets are managed in the cache. If the storefront basket isn’t available or is null in the cache, it’s loaded from storage using the ORM primary key access. Only valid baskets are considered to make the shopping experience smooth and uninterrupted. - **[Streamline Bonus Product Management](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_streamline_bonus_product_management.htm&release=264.0.0&type=5)** Merge bonus products from the same promotion into a single basket. Missing fields under bonusDiscountLineItems > bonusProducts are now included in merged baskets. To align with OCAPI and SCAPI standards, empty merged baskets are now stored. - **[View All Baskets in Hybrid Sites with getCustomerBaskets](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_view_all_baskets_with_getcustomerbaskets.htm&release=264.0.0&type=5)** Hybrid sites can now use `getCustomerBaskets` to return empty baskets, providing you a full picture of your shopping baskets. - **[Business Manager UI in Dutch](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_business_manager_ui_in_dutch.htm&release=264.0.0&type=5)** The Business Manager user interface is now available Dutch. To choose this new language, select the respective value in the dropdown in your user profile settings. - **[Boost Web Store Speed with Argo Smart Routing](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_boost_web_store_speed.htm&release=264.0.0&type=5)** Salesforce now makes your web store even faster with Argo Smart Routing. Argo uses real-time global network data to route traffic around issues like brownouts, cable cuts, and packet loss, and move traffic along faster routes. This reduces HTTP time to first byte (TTFB) by an average of 30%, making your web store faster and more reliable for users. Argo is implemented for you. No action is required from you. # 24.2 Release The B2C Commerce 24.2 release occurs January 30 , 2023 through February 29, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Get a Higher Level of Time Stamp Accuracy with ProductInventoryRecord.AllocationResetDate](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_get_higher_level_of_time_stamp_accuracy_with_.htm&release=264.0.0&type=5)** `ProductInventoryRecord.AllocationResetDate` now supports a higher level of accuracy in the database. The change is backward-compatible. - **[Specify a Date Format for Locales](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_specify_date_format_for_locales.htm&release=264.0.0&type=5)** You can now modify the date settings format in Business Manager so that the script API method `dw.util.Calendar.getFirstDayOfWeek()` returns the first day of the week in the date format used by your site locale. Previously, you couldn’t modify the date format to match the local or regional context. - **[Replace eCDN Firewall Rules with new eCDN Custom Rules](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_replace_ecdn_firewall_rules.htm&release=264.0.0&type=5)** Commerce Cloud B2C Commerce has migrated all existing firewall rules to a new custom rules CDN-API endpoint. All customers are directed to transition to using custom rules in place of firewall rules. - **[Prepare for Third-Party Cookie Restrictions](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_prepare_for_third_party_cookie_restrictions.htm&release=264.0.0&type=5)** To prepare for third-party cookie restrictions introduced by Google in 2024, Salesforce B2C Commerce is introducing a new feature toggle that enables partitioned cookies. The partitioned cookie toggle is available in Business Manager with the default value set to disabled. - **[Update Social Selling Cartridges](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_update_social_selling_cartridges_24_2.htm&release=264.0.0&type=5)** Extend your social selling business functionality with the following updates. The updates cover common updates across all channels as well as channel-specific functionality. - **[Write Custom Script Code with SCAPI Custom APIs](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_write_custom_script_code_with_scapi_custom_apis.htm&release=264.0.0&type=5)** SCAPI Custom APIs are now generally available. SCAPI Custom APIs provide a framework enabling developers to write custom script code and expose this functionality as a custom REST API under the SCAPI framework. # 24.3 Release The B2C Commerce 24.3 release occurs February 27 , 2024 through March 28, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Prioritize Resource Bundle Lookup](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_configure_resource_buldle_lookup.htm&release=264.0.0&type=5)** You can now change the order of the resource bundle lookup and give priority to the WebDAV resource bundle. The default lookup first checks the resource bundle IDs of the code cartridges assigned to your site and then checks WebDAV. If you have resource bundles with the same ID in the cartridge and WebDAV, the cartridge resource bundle is always selected over the resource bundle in the WebDAV location (`/webdav/Sites/Dynamic/[SiteID]/resources/`) . You can now use a toggle to switch the order to check WebDAV first. - **[Display Alert Messages in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_display_alert_messages_in_business_manager.htm&release=264.0.0&type=5)** Display alerts as a persistent banner on the top of every Business Manager page. Alerts can relate to Business Manager modules and are only visible to users with permissions to access the module. Salesforce might also use the enhanced alerting framework to display critical system messages to Business Manager users. - **[Add More Product Line Items per Basket](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_enforced_product_line_item_per_basket_limit.htm&release=264.0.0&type=5)** If your site was limited to 50 line items per basket, the maximum number is increased to 200. This new limit doesn’t affect users who have been granted a lower or higher limit. - **[Prepare for Changes to Sever-Side Web-Tier Caching](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_prepare_for_changes_to_scapi_sever_side_web_tier_caching.htm&release=264.0.0&type=5)** If you provision your SCAPI zone with short code, SCAPI caching is enabled by default after March 12, 2024, and the feature switch SCAPI Server-Side Web-Tier Caching is has no effect. If you enroll in SCAPI before March 12, 2024, you can continue to enable SCAPI caching in Business Manager. To enable caching, in Business Manager, select **Administration** | **Feature Switches**, and turn on SCAPI Server-Side Web-Tier Caching. - **[Allow Duplicate Terms in Search Phrases](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_allow_duplicate_terms_in_search_phrases.htm&release=264.0.0&type=5)** B2C Commerce search now accepts long-tail search phrases with duplicate search terms. When an exact match for a given phrase is found, the suggestion processor returns highly relevant search results. Previously, duplicate words in long-tail search phrases were autocorrected to slightly different versions. Autocorrecting terms in the search phrase can result in irrelevant search results. - **[Partitioned Cookie Explicit Expiry Mode](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_partitioned_cookie_explicit_expiry_mode.htm&release=264.0.0&type=5)** Admins can now use the new Partitioned Cookie Explicit Expiry Mode to control if an expired partitioned cookie is sent for an existing partitioned cookie. # 24.4 Release The B2C Commerce 24.4 release occurs March 26 , 2024 through April 25, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Configure eCDN for Staging in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_configure_ecdn_for_staging_in_bm.htm&release=264.0.0&type=5)** Starting with the 24.4 release, Business Manager will support configuring eCDN for staging environments. eCDN settings are specific to each instance (development, staging, and production), and you manage them individually. When you create a proxy zone in production, the zone doesn’t replicate a corresponding proxy zone in your development or staging instance. The new eCDN configuration feature simplifies onboarding new sites for staging instances, making it easier to mimic your production instance. Because the configuration uses the existing CDN-API, you can use either Business Manager or the API to manage your eCDN configurations. - **[Auto-Correction is Disabled by Default](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_improve_search_with_auto_correction_setting.htm&release=264.0.0&type=5)** The default setting for auto-correction for searchable attributes added after the B2C Commerce 24.4 release is now set to No. This change affects searchable attributes added through the Business Manager UI or via import. Existing configurations aren’t affected. Previously, when you added a searchable attribute, the default setting was Yes, which could cause issues in instances when search functions shouldn’t correct values, such as the product SKU, ID, or ISBN. Additionally, the auto-correction dictionary’s size can incrementally increase over time, leading to search noise. - **[Manage More Images in Page Designer](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_manage_more_images_in_page_designer.htm&release=264.0.0&type=5)** The Page Designer image and media picker now supports up to 1,000 images per folder. Previously, only 200 images within a folder were accessible in the image picker, even if more existed. The increased image limit improves the user experience for merchandisers and content creators and avoids workarounds, such as creating subfolders for extra images. - **[OCAPI JWT Response to Updated Passwords Is Changed](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_ocapi_jwt_experience_for_updated_passwords.htm&release=264.0.0&type=5)** To enhance security and align with the SLAS JWT session handling, we updated how the OCAPI JWT handles password changes. Now, if your customer changes their password, all previously issued active OCAPI JWTs are invalidated. The OCAPI client receives an HTTP 401 response, accompanied by a body message that indicates an invalid access token. Previously, the JWT remained valid until its normal timeout. - **[Check for Customization with SCAPI](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_check_for_customization_with_scapi.htm&release=264.0.0&type=5)** Two new SCAPI response headers are available to check for custom requests and resulting hook execution errors. - **[Rogue Query Timeouts in B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_rogue_query_timeouts.htm&release=264.0.0&type=5)** To protect customer instances and associated services from outages, B2C Commerce restricts rogue queries that produce 200 thousand results or more. To better protect Salesforce B2C Commerce, Salesforce plans to limit the allowed offset value from 200 thousand to 10 thousand.. - **[Access On-Demand Sandbox Logs in Log Center](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_access_ods_logs_in_log_center.htm&release=264.0.0&type=5)** Salesforce B2C Commerce On-Demand Sandbox (ODS) logs are now available in Log Center. This enhancement eliminates the need to use a separate URL to access ODS logs for the first-party instance of Log Center. - **[Scheduled Backups Button Is Disabled](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_deprecated_backups_button.htm&release=264.0.0&type=5)** The Scheduled Backups button is no longer available. Instead, use a custom job to schedule backups of your production and development environments. # 24.5 Release The B2C Commerce 24.5 release occurs April 23 , 2024 through May 30, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enhance Order Access Security with the Allow List](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_enhance_order_access_security.htm&release=264.0.0&type=5)** Enable the Allowlist feature on the Limit Storefront Order Access setting if you aren’t yet limiting Storefront Order Access at all. This feature enhances security, ensuring that the customer ID of the current session is identical with the customer ID used for the creation of the order being accessed. - **[Upgrade Your Security Posture with eCDN WAFv2](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_ecdn_wafv2.htm&release=264.0.0&type=5)** B2C Commerce announces the upgraded version of our eCDN, now featuring WAFv2, bringing a host of advanced security features to safeguard your online presence. - **[Five Minute Minimum Period Enforced for WAF Log Retrieval](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_5_minute_interval_wafv2.htm&release=264.0.0&type=5)** A minimum period of five minutes is now enforced for retrieving WAF logs. This enhancement prevents setting the end time for log requests within five minutes of the current time. - **[Refine and Customize Promotions](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_refine_and_customize_promotions.htm&release=264.0.0&type=5)** The Business Manager Promotion Refinements feature now offers expanded support for custom product attributes. With this update, users can now create refinable promotions that utilize custom localizable product attributes, as well as custom product attributes of type enum-of-string and enum-of-int. This enhancement addresses the previous limitation where Business Manager users could not set up refinable promotions with these specific custom attribute data types or localizable attributes. - **[Faster Stores Page Performance](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_faster_store_page_performance.htm&release=264.0.0&type=5)** B2C Commerce has significantly improved the performance of the Stores page in Business Manager. Users now experience much faster load times when searching for stores and viewing search results. This enhancement makes it easier and more efficient for merchandisers to manage, search, and update stores within the Business Manager module. Previously, users encountered performance issues when displaying 200 results per page in the Business Manager store module. - **[SCAPI Taxation APIs](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_scapi_tax_apis.htm&release=264.0.0&type=5)** The following ScriptAPI methods are available to support SCAPI external Taxation APIs with hooks. Previously, SCAPI hooks and external taxation excluded each other, and SCAPI hooks could only be used if external taxation wasn’t in use. They can now be used together. - **[Patch Product Variations with OCAPI and SCAPI](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_patch_variations_ocapi_scapi.htm&release=264.0.0&type=5)** OCAPI Baskets API and SCAPI Shopper-Baskets API now support patching of variations within product bundles in a single call. This enhancement allows for more efficient and streamlined management of product bundles, making it easier for developers to update multiple variations within a bundle without the need for multiple API calls. The update also improves the overall developer experience and increases productivity for developers managing complex product bundles. # 24.6 Release The B2C Commerce 24.6 release occurs May 21 , 2024 through June 27, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Create Active Data Sorting Rules](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_create_active_data_sorting_rules.htm&release=264.0.0&type=5)** The Search Index Query Testing (SIQT) tool now supports sorting rules with active data sorting attributes. Get consistent sorting results in a storefront and when testing an active data sorting rule. Previously, if a sorting rule with active data was used in SIQT, the sorting used text relevance and didn’t consider active data. - **[Search Engine Provides Better Performance](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_enhanced_search_engine_performance.htm&release=264.0.0&type=5)** The search engine that provides results for `OrderMgr.searchOrder(s)` has been updated across multiple instances. This update is aimed at enhancing the performance of the search engine. No user impact or behavioral change is expected. - **[Get Better SEO Search Results](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_get_better_seo_results.htm&release=264.0.0&type=5)** In Business Manager, the Catalog URL rules now use the localizable display value for product attributes with the type Enum of String. The localizable display value improves readability and the SEO value of storefront URLs that use multiple languages. Previously, Product URL attributes used the non-localizable Value. - **[Use Bots for Product Recommendations](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_give_shoppers_product_recommendations_with_bots.htm&release=264.0.0&type=5)** Offer your shoppers bots that provide multichannel conversational product recommendations and add products to the cart with the new Commerce Concierge for B2C Einstein Bot template. Create an enhanced bot from the template and connect your store to a new Einstein bot. You can also use the new Commerce Concierge bot blocks to add functionality. - **[Get Improved Search Index Performance](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_improved_search_indexing.htm&release=264.0.0&type=5)** B2C Commerce has updated the search index rebuild process. The update decreases resource usage and improves performance, and an unchanged index is no longer published when no changes are detected. Previously, a redundant product update index task was executed following the index rebuild, and a new search index was published when no documents were altered. - **[Service Framework Is Upgraded](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_service_framework_upgrade.htm&release=264.0.0&type=5)** B2C Commerce is upgrading the supported SFTP algorithms in the service framework. - **[Venezuela VED and VES Currency Codes Are Supported](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_use_venezuela_currency_code_ved.htm&release=264.0.0&type=5)** Merchants doing business in Venezuela can now use the VED, VES, and VEF currency codes. Previously, only VEF was supported. - **[Rogue Query Limits in B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rogue_query_limits.htm&release=264.0.0&type=5)** To maintain the highest level of system performance and reliability, Salesforce B2C Commerce now restricts rogue queries that produce 10 thousand results or more. This restriction applies to queries configured in Business Manager or using the the `customer_search`, and `order_search` APIs (OCAPI Shop API) and `get orders` (SCAPI). To mitigate the risk of running a query with too many results, use targeted filters and offset values that limit results when querying data. # 24.7 Release The B2C Commerce 24.7 release occurs June 25 , 2024 through July 25, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Migrate Your Zones to eCDN with WAFv2](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_ecdn_upgraded_with_wafv2.htm&release=264.0.0&type=5)** Salesforce B2C Commerce now uses eCDN with WAFv2. WAFv2 brings advanced security features to safeguard all your zones, both existing and new. You can migrate your existing customer zones from WAFv1 to WAFv2 as a self-service option. You can configure eCDN WAFv2 settings directly through the Business Manager UI or CDN Zones API for new zones. In addition, eCDN with WAFv2 integrates ruleset enhancements that improve firewall security and reduce false positives, improving threat detection accuracy and minimizing disruptions to normal operations. - **[Search Response Times Are Quicker](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_faster_search_response_times.htm&release=264.0.0&type=5)** B2C Commerce has improved the performance of the common category lookup in storefront search and search refinement. Based on internal testing, the search engine calculates search refinements two times faster. With improved search, your users experience faster storefront response times, providing a smoother browsing experience. - **[Import and Export Dynamic Categorization Rules](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_import_and_export_dynamic_categorization_rules.htm&release=264.0.0&type=5)** In Business Manager, easily import and export dynamic categorization rules, including the excluded product list. The Catalogs Import & Export feature now updates the catalog.xsd schema with detailed information on categorization rules and excluded products within the catalog tag structure. Previously, you couldn’t import and export the dynamic categorization rules. - **[Import External Coupon Redemptions](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_import_external_coupon_redemptions.htm&release=264.0.0&type=5)** You can now update the status of a coupon redeemed outside of B2C Commerce using the new Coupon Redemption API (`/organizations/{organizationId}/coupons/actions/redeem)`. To identify the source of redemption for an external coupon, use a custom reference ID or any custom string. You can also add an optional email address to the redemption for further tracking and communication. To update multiple coupon redemptions at one time, use the new `ImportCouponCodeRedemptionsStep` job step. This bulk import, which works only in merge mode, streamlines the process of managing multiple redemptions at scale. - **[Get Enhanced Security with TLS v1.3](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_tls_v13_support.htm&release=264.0.0&type=5)** The B2C Commerce service framework now supports TLS v1.3 for outgoing HTTP calls made from the platform. TLS v1.3 provides enhanced security features that don’t require complex configuration. It offers modern encryption standards that protect against known vulnerabilities and supports secure integration with third-party partners. If you encounter connectivity issues while using TLS v1.3, contact Support for assistance. - **[Implement Enhanced Security Controls in Commerce Cloud](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_implement_enhanced_security_in_commerce_cloud.htm&release=264.0.0&type=5)** Commerce Cloud is implementing a new security measure that blocks traffic to staging instances that doesn’t originate from Commerce Cloud eCDN from accessing the hyphenated demandware.net hostname. This change rejects all calls using ‌hyphenated hostnames, such as staging-, to access the Open Commerce API (OCAPI) or Storefront. # 24.8 Release The B2C Commerce 24.8 release occurs July 23 , 2024 through Aug 22, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Block Unauthorized Access to Orders](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_order_allow_list.htm&release=264.0.0&type=5)** The Order Preferences Storefront Order Access Allowlist, released in 24.5 in test mode, is fully functional and available to your storefront in Production. When enabled, storefront access to orders without a matching customer ID is now blocked unless the accessing controller is included on the Allowlist. If you aren’t yet limiting Storefront Order Access at all, enable the Allowlist feature on the Limit Storefront Order Access setting. - **[Optimize Web Performance with Streamlined HTML](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_optimize_web_performance_with_streamlined_html.htm&release=264.0.0&type=5)** Enhance your site’s SEO and user experience by compacting HTML lines, especially at the beginning of documents. This update is an automated feature added to maintain high performance and search visibility. It requires no user action. The change addresses the discontinuation of Cloudflare’s automatic compacting. - **[Optimize Sandbox Resources Dynamically](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_optimize_sandbox_resources_dynamically.htm&release=264.0.0&type=5)** Enhance your development environment by dynamically adjusting sandbox resource profiles. To manage performance and costs effectively, switch between medium, large, and xlarge profiles as needed. Automatic restarts and status checks ensure seamless transitions. - **[Experience a More Efficient Workflow with the Control Center Lightning UI](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_experience_new_control_center_ui.htm&release=264.0.0&type=5)** The updated Control Center UI now aligns with Salesforce Lightning Design System (SLDS) standards. This update enhances the user experience with a more consistent design. Users can still access the same workflows while enjoying a refreshed interface. The new Lightning UI is the Control Center default option and is widely used by the majority of customers. Except for the audit logs, this update removes all links to the Classic UI. - **[Make Product and Price Book Updates with Granular Replication](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_make_product_updates_with_granular_replication.htm&release=264.0.0&type=5)** Use the granular replication feature to select specific products and price table entries for replication from staging to production. This feature allows for targeted updates, ensuring your production data remains current without full-scale overhauls. - **[Optimize On-Demand Sandbox Resource Management with the Usage Dashboard](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_optimize_ods_resource_management.htm&release=264.0.0&type=5)** Take control of your on-demand sandbox (ODS) resource consumption with the Control Center Usage Dashboard now available for ODS administrators. This feature offers a comprehensive graphical overview of sandbox usage and credit spending over selectable time frames–daily, weekly, or monthly. Use the dashboard to make informed decisions about resource distribution and budget forecasts. - **[Track Your On-Demand Sandbox Account Credit Balance in Real Time](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_track_ods_account_balance.htm&release=264.0.0&type=5)** Monitor your organization’s on-demand sandbox (ODS) Account Credit Balance effectively with the new monthly credit consumption reports in the Control Center. Accessible to users with OpcRealmAccess privileges, this feature allows viewing of real-time credit balances at both the organizational and realm levels, facilitating better budget and resource decisions. - **[Stay Informed with Real-Time On-Demand Sandbox Notifications](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_real_time_ods_notifications.htm&release=264.0.0&type=5)** The on-demand sandbox (ODS) Notifications feature now offers real-time alerts for any activity within your sandboxes, directly within the Control Center. This enhancement aids ODS administrators in maintaining vigilant security and comprehensive activity tracking, crucial for audit and compliance purposes. - **[Update On-Demand Sandbox Email with Ease](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_update_ods_email.htm&release=264.0.0&type=5)** Simplify your on-demand sandbox (ODS) configuration with enhanced email management capabilities. Users with instance or realm-level access can now easily add or modify email addresses during sandbox creation or within the email settings, ensuring smoother setup and management of communication channels. # 24.9 Release The B2C Commerce 24.9 release occurs August 20, 2024 through October 03, 2024. Stay current with all the important B2C Commerce product updates by reviewing the release notes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enhance your Business Manager Workflow with the New User Interface](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_new_business_manager_ui.htm&release=264.0.0&type=5)** B2C Commerce Business Manager has a new user interface (UI). The UI is available as an Open Beta. This new user experience for our merchandising tool introduces a fresh design and enhanced usability based on extensive research, industry standards, and valuable feedback from our customers and partners. - **[Optimize Omnichannel Inventory Synchronization](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_optimize_inventory_synchronization_across_locations.htm&release=264.0.0&type=5)** Full inventory imports from Omnichannel Inventory Service to B2C Commerce can now run concurrently with delta streams, providing more flexibility in data synchronization and eliminating the need of the nightly full import schedule. Additionally, the conditions for assignment of inventory lists to sites for the import process is eliminated, resulting in a smoother setup process. To provide clear insights into the status of full imports, the Business Manager page for Omnichannel Inventory is also updated. - **[Stream Logs From Log Center](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_stream_logs.htm&release=264.0.0&type=5)** Log Center now supports Log Streaming into third-party log aggregation tools such as Splunk, Datadog, New Relic, Grafana Loki, or through a generic HTTP connection. This enhancement enables enterprise-scale monitoring and automation capabilities for Log Center users. - **[Use OCAPI Hook to Get Payment Methods](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_use_ocapi_hook_to_get_payment_methods.htm&release=264.0.0&type=5)** The OCAPI hook dw.ocapi.shop.basket.payment\_methods.afterGET is fully supported. The hook is Called before returning the list of available payment methods to the customer. Allowing modifications of the result. Previously, the hook was not called. - **[Transition to Updated Security Certificates](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_transition_to_updated_security_certificates.htm&release=264.0.0&type=5)** B2C Commerce is adopting the Let’s ISRG Root X1 chain certificates to enhance security and compatibility with current devices. - **[Enhance Global Collaboration with Time Zone-Specific Scheduling](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_enhance_global_collaboration_with_time_zone_scheduling.htm&release=264.0.0&type=5)** Improve shared task coordination among your globally distributed teams by setting on-demand sandbox (ODS) schedulers to local time zones. This feature defaults to the user's local time zone upon login but provides flexibility to change and save this setting as needed. - **[View Security Logs in Log Center](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_view_security_logs.htm&release=264.0.0&type=5)** Security Logs are now available in Log Center. You can view all your security logs in one place, along with your other logs. Previously, you had to use Business Manager or WebDAV to see your security logs. - **[View SLAS Logs in Log Center](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_view_slas_logs.htm&release=264.0.0&type=5)** You can now access the Shopper Login and API Access Service (SLAS) 4xx error logs in Log Center. Previously, you only error messages from SLAS API responses were available. # 25.1 Release The B2C Commerce 25.1 release occurs December 05, 2024 through January 28, 2025. Stay current with all the important B2C Commerce product updates by reviewing the release notes To review past release notes, check out the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enable the New Business Manager UI (Generally Available)](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_25_1_new_bm_ui.htm&release=264.0.0&type=5)** The UI has a fresh design and is easier to use. The GA release includes improved tooltips, spacing, text box padding, and banner and home page alerts. It also adds favorites, store IDs, and catalog insights to the home page. You can switch back to the classic UI if something isn’t working as expected. - **[Get eCDN Zones Ready for Hyperforce and Improve Site Efficiency](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_25_1_migrate_to_proxy_zones.htm&release=264.0.0&type=5)** Now you can migrate legacy zones to proxy zones using B2C Commerce Business Manager and the CDN-API. This migration is a prerequisite for customers moving to Hyperforce. Proxy zones standardize your eCDN configuration, include the latest security and auto-renewing certificate features, and prevent legacy zone hierarchy issues. - **[Integrate Salesforce Commerce Cloud with Facebook and Instagram Shops.](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_25_1_integrate_sfcc_with_meta.htm&release=264.0.0&type=5)** Synchronize products, promotions, shipping profiles, and orders between Meta and Salesforce so shoppers can get targeted shop ads, buy products, and get accurate order status updates. # 25.10 Release The B2C Commerce 25.10 release occurs between September 23 and November 04, 2025. The B2C Commerce Release Notes provide information about new features and major feature enhancements. To review past release notes, see the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). Customer-reported issues across Salesforce products and notifications about bug fixes are published in the [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). You can view the status of an issue and subscribe to notifications. - **[Enhance Shoppers' Product Search Experience with Guided Questions](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_conversation_context_action.htm&release=264.0.0&type=5)** Add an agent action to help shoppers get product recommendations faster. The agent now instantly generates questions after matching a shopper’s query to a product category. - **[Help Shoppers Find More Product Options](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_shopping_agent_show_more.htm&release=264.0.0&type=5)** The Show More feature helps shoppers find additional product options matching the search criteria, if there are more than three results displayed in the Shopping Agent search results. This feature allows shoppers to easily discover a wider variety of relevant products and compare them so they make the best purchasing decision. - **[Changes to AI Credit Consumption](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_ai_credits.htm&release=264.0.0&type=5)** AI usage for certain Salesforce B2C Commerce features no longer consumes credits. - **[Improve Guided Shopping with the New Agent Template for B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_shopping_agent_v2.htm&release=264.0.0&type=5)** The new agent template includes more topics and actions for B2C Commerce shoppers. The Agent’s product search capabilities now include images, rich content, category and facet filters, and multiple languages. Also, visual components are available for carousels, product details, cart, and order confirmation. - **[Find Missing Product Images in Your Catalog](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_search_image_filter.htm&release=264.0.0&type=5)** Use the Advanced Search Image filter to find products that are missing images or need image updates. - **[Product Search Is Improved](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_storefront_imp.htm&release=264.0.0&type=5)** The new unified data structure improves how the storefront sorts and displays products in a store. Search results are displayed faster, require less memory, and enhance the browsing experience. - **[Customize User-Agent Logging for CSRF Security](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_customize_user_agent_log.htm&release=264.0.0&type=5)** Meet compliance requirements and strengthen security monitoring by customizing User-Agent logging strings during Cross-Site Request Forgery (CSRF) token validation. Previously, strings longer than 32 characters were truncated. Now, you can increase the number of characters to capture more detail. You can also turn off logging entirely or set the number of characters to less than 32 to balance storage efficiency with detail. - **[Notify Shoppers When a PayPal Order Needs Reapproval](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_order_reapproval.htm&release=264.0.0&type=5)** Create a localized, personalized message to inform shoppers when an approved PayPal order amount increases and requires reapproval. Previously, a default message appeared if a payment amount needed reapproval. - **[See Your Most Recent B2C Commerce Site at Login](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_site.htm&release=264.0.0&type=5)** When you log in to Business Manager, Merchant Tools shows the last storefront that you viewed. Previously, you had to select a site at each login. Merchant Tools now also shows the full site name, making it easier to identify a site. - **[Use Keyboard Shortcuts to Switch Between B2C Commerce Tools](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_applauncher_shortcut.htm&release=264.0.0&type=5)** You no longer need to use the mouse to switch between tools. Instead, press Command+k (macOS) or Ctrl+k (Windows) to open the App Launcher and move between B2C Commerce tools. - **[Set Up Page Shield Policies with Business Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_page_shield_policies.htm&release=264.0.0&type=5)** Page Shield policies make PCI 4.0 compliance easier and ensure that only trusted scripts run on sensitive pages, such as cart and checkout. Previously, you could configure the policies only with the Content Delivery Network (CDN) Zones API. - **[Manage Site Traffic with Analytics and Custom Firewall Rules](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_bm_analytics.htm&release=264.0.0&type=5)** Get insights into HTTP traffic and security data using the new analytics overview in Business Manager. To control incoming traffic, you can also create firewall rules. - **[Improve SEO with Host Header Override Rules](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_host_header_override_rules.htm&release=264.0.0&type=5)** Support a single hostname across multiple realms by creating a Host Header Override Rule for sites that use an external content delivery network (CDN). This rule replaces unique hostnames with a common hostname to maintain the single-hostname setup. Maintaining a single hostname improves SEO for your site. - **[Add Checkout Links to Facebook and Instagram](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_add_checkout_links_for_meta_shops.htm&release=264.0.0&type=5)** Meta retired on-site checkout on Facebook and Instagram in September 2025. To send shoppers to your website to complete purchases, add checkout links. - **[Audit Product Changes in a Live Storefront](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_audit_production_events.htm&release=264.0.0&type=5)** View the change history for B2C Commerce objects, such as products, prices, and content assets, in a production instance. Previously, change history recorded events only in a staging instance. - **[Copy Components in Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_copy_components_in_page_designer.htm&release=264.0.0&type=5)** Create components once and reuse them across multiple pages by copying up to 10 components. You can paste a copied component into any region or component that accepts it. Copying components helps ensure consistent site-wide experiences when building Page Designer pages. - **[Configure Page Designer Fingerprint Caching with TTL Control](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_fingerprint_caching.htm&release=264.0.0&type=5)** Configure how long Page Designer fingerprints are cached by setting the Time to Live (TTL) value. This enhancement enables fingerprint caching for pages and components with schedule-based and locale targeting visibility rules. A Page Designer fingerprint identifies which version of a page to display based on its visibility rules and targeting configuration. - **[Merge Baskets Consistently with One Script](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_merge_baskets.htm&release=264.0.0&type=5)** Use the same merge script across controller and REST API implementations by invoking the new dw.order.mergeBasket business hook. Invoke the hook by using either the transferBasket endpoint and the merge=true parameter or the HookMgr in a controller. The dw.order.mergeBasket business hook unifies discrepancies between controller and REST API merging strategies. Replace your previous merging methods with the new business hook. - **[Enhanced Category Assignment Control in Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_category_assignments.htm&release=264.0.0&type=5)** Page Designer now offers merchants greater flexibility when assigning landing pages to categories. Previously, assigning a page to a top-level category automatically included all sub-categories, which often required custom development to override. With this new enhancement, merchants can now choose whether to include sub-categories when creating or editing page assignments. This feature allows for more targeted and personalized customer experiences without the need for developer intervention. - **[Make Targeted Price Adjustments Within Individual High-Scale Price Books](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_price_books.htm&release=264.0.0&type=5)** Adjust prices within a specific price book without having to replicate all price books. Previously, you had to replicate all high-scale price books when moving from a staging to production or development instance. Now you can make targeted pricing changes to your production data for multiple regions. - **[Push eCDN Log Events to More Storage Services](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_ecdn_logpush_support.htm&release=264.0.0&type=5)** You can now use the CDN-API to send HTTP requests, Firewall, and Pageshield events to these destinations for immediate log visibility: AWS S3 bucket, Azure, Datadog, Google Cloud Storage, HTTPS, Kinesis, and Splunk. - **[Access eCDN Logs in Log Center](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_ecdn_logs.htm&release=264.0.0&type=5)** The log center includes eCDN error logs, including HTTP status codes 502-530, for proxy zones on B2C Commerce Production instances. Use these logs to monitor site performance and security. - **[Set Reply-To Header for Email Messages](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_email_reply_to.htm&release=264.0.0&type=5)** Control where email replies are sent by setting the Reply-To header using the new addReplyTo method in the dw.net.Mail class. This allows recipients to reply to a different address than the sender, such as replying to a support team address when the From address is a no-reply address. - **[Add Unsubscribe Headers to Email for Mailing List Compliance](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_email_unsubscribe_headers.htm&release=264.0.0&type=5)** Add List-Unsubscribe and List-Unsubscribe-Post headers to emails sent using the dw.net.Mail class to support compliance with email provider guidelines, including Google Sender Guidelines. Use the new setListUnsubscribe and setListUnsubscribePost methods to integrate with externally-managed mailing lists and enable one-click unsubscribe functionality. - **[Enable Optional Request and Response Logging for HTTP Calls](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_service_request_response_logging.htm&release=264.0.0&type=5)** Control request and response logging for outgoing service calls by enabling the Communication Log setting for individual services. When enabled, this feature logs request and response details including headers. This feature provides enhanced visibility into external service communications and helps you validate authentication headers and troubleshoot integration issues. - **[Improve Image Performance with Modern Formats](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_modern_image_formats.htm&release=264.0.0&type=5)** Upload AVIF and WebP images to your store’s Dynamic Imaging Service (DIS) for smaller file sizes and faster loading times. Most major browsers support these modern image formats, which provide a better user experience and enhanced image quality. - **[Find Pages Faster with Improved Page Designer List](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_page_designer_list_improvements.htm&release=264.0.0&type=5)** The Page Designer page list now includes enhanced search, sort, and filter capabilities to help you quickly locate the pages you need to manage. These improvements reduce the time spent navigating through large page collections and improve merchant productivity. - **[Automatically Cache Non-Customized Pages for Better Performance](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_page_designer_serialization_caching.htm&release=264.0.0&type=5)** Page Designer now automatically caches pages that don't use custom serialization logic, improving runtime performance. When a page doesn't have a custom serialize() function, the system caches its content for a configurable period. # 25.2 Release The B2C Commerce 25.2 release occurs January 23, 2025 through February 27, 2025. Stay current with all the important B2C Commerce product updates by reviewing the release notes To review past release notes, check out the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Distinguish Business Manager Instances with Color-Coded Headers and Footers](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_2_distinguish_bm_instance_with_color.htm&release=264.0.0&type=5)** You can now identify production, developer, and sandbox environments at a glance by color in the Business Manager UI. - **[Debug Page Designer Page Caching in the Browser Developer Console](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_2_debug_page_designer_caching.htm&release=264.0.0&type=5)** Use the Page Designer component’s caching details to find and resolve page caching problems. Access the browser developer console from within Page Designer. For example, if you use Google Chrome, go to View | Developer | Developer Tools | Console. - **[Use Granular Replication to Target Specific Content Assets](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_2_granular_replication_specific_assets.htm&release=264.0.0&type=5)** Use the granular replication feature to select specific content assets for replication from staging to production. This feature allows for targeted updates, ensuring your production data remains current without full-scale overhauls. - **[Increased Character Limits in Advanced Customer Search](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_2_advanced_search_character_limits.htm&release=264.0.0&type=5)** To support more comprehensive and accurate searches, the maximum character limits in Advanced Customer Search are now increased for these fields. - **[Enhance eCDN Settings for Clearer Certificate Management](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_2_ecdn_settings_page.htm&release=264.0.0&type=5)** The Business Manager eCDN Settings page is improved to clearly distinguish between hostnames with and without custom hostname certificates, reducing customer confusion and improving usability. - **[Upgrade to eCDN with WAFv2 for Enhanced Security](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_2_upgrade_ecdn_with_wafv2.htm&release=264.0.0&type=5)** Salesforce B2C Commerce now integrates eCDN with WAFv2, offering advanced security features to protect your zones. This update includes OWASP ruleset updates, managed rules, and exposed credentials checks, ensuring better threat detection and reduced false positives. - **[Manage Cipher Suite Settings via CDN-API](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_2_cipher_suite_types.htm&release=264.0.0&type=5)** Customers can now retrieve and update cipher suite settings for their zones via the CDN-API, ensuring better control over security configurations. This feature allows businesses to define which TLS ciphers browsers and devices can use when connecting to their storefronts, enhancing security and compliance. # 25.3 Release The B2C Commerce 25.3 release occurs February 25, 2025 through March 20, 2025. Stay current with all the important B2C Commerce product updates by reviewing the release notes To review past release notes, check out the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Configure PCI 4.0 Compliance with eCDN PCI Tools](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_3_configure_pci_compliance.htm&release=264.0.0&type=5)** The B2C Commerce eCDN PCI tools now include Page Shield. Page Shield helps you manage resources loaded by your website visitors. Your security team is notified with an alert when a script is changed or is flagged as malicious. You can also access policy violations via LogCenter and stream using logpush. - **[Set Authorization Methods for Password-Protected Storefronts](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_3_set_auth_methods.htm&release=264.0.0&type=5)** Business Manager administrators now have more options for managing access to a password-protected storefront. Administrators can select, the authentication method that’s best suited for their storefront. - **[Ingest Registered Shopper Profiles into Data Cloud](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_25_3_ingest_shopper_profiles.htm&release=264.0.0&type=5)** You can now export registered shopper profiles for specific sites as well as profiles modified after a certain date. The exported shopper profiles are then ingested into Data Cloud using the B2C Commerce Connector. - **[Augment the Customer Shopping Experience with an AI-Powered Assistant](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_3_agentforce_guided_shopping.htm&release=264.0.0&type=5)** Agentforce for Guided Shopping helps your store’s customers find the products they need to make informed purchase decisions. The generative AI-powered agent provides personalized, real-time guidance throughout the shopping journey, from product discovery to checkout and retrieving order details. - **[Stream Security Logs for Enhanced Monitoring](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_3_log_center_security_logs.htm&release=264.0.0&type=5)** Log Center now supports streaming security logs to third-party aggregation tools like Splunk, Datadog, New Relic, Grafana Loki, or a generic HTTP connection. This integration enhances your monitoring and automation capabilities, ensuring better security and compliance. - **[Provide a Reason for Restarting Your Commerce Cloud Instance](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_3_restart_reason.htm&release=264.0.0&type=5)** B2C Commerce Control Center now requires you to enter a reason when you initiate the restart of a B2C Commerce instance. Reasons are recorded to help improve the reliability of our infrastructure. # 25.4 Release The B2C Commerce 25.4 release occurs March 25, 2025 through April 24, 2025. Stay current with all the important B2C Commerce product updates by reviewing the release notes To review past release notes, check out the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Optimize Your Site URLs for Better SEO](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_optimize_urls.htm&release=264.0.0&type=5)** You can now change URL preference values from slash (/) to hyphen (-) and improve the redirection of product and content links. - **[Search and Select Sites Quickly in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_search_select_sites.htm&release=264.0.0&type=5)** Use the new Select a Site feature to navigate through a large number of sites, and find the specific site you need. Select a Site is located in the Business Manager left navigation. Start typing the name of the site you are looking for, and the results field display matching results, including partial matches. - **[Control Store Inventory Indexing for Shop the Store](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_shop_the_store.htm&release=264.0.0&type=5)** Pilot customers using the Shop the Store capability can now control indexing of store inventory data at the site level. Use the indexing on a site feature to select which store inventories are included in search and browse routines. This makes search results more useful for shoppers and improves their experience. - **[Update Currency Precision for Better Global Business](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_update_currency.htm&release=264.0.0&type=5)** B2C Commerce updated the precision of several currencies to align with the latest international ISO standards. This ensures more accurate financial transactions and reporting for your global business. - **[Manage Routing Rules in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_manage_routing_rules.htm&release=264.0.0&type=5)** Starting with Business Manager version 25.4, you can now manage routing rules for forwarding composable storefronts directly from the Business Manager UI. This update simplifies the process of managing routing rules, making it easier to optimize traffic and improve the performance of your composable storefronts. It reduces the need for manual configuration and provides a more intuitive interface for managing your zones. - **[Ensure steptypes.json Files Are Valid for Custom Job Steps](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_25_4_validate_steptypes_json.htm&release=264.0.0&type=5)** With the 25.4 B2C Commerce release, only valid steptypes.json files are supported. This change enhances the reliability of your custom job steps and reduces runtime errors, ensuring smoother job processes. - **[Ingest B2C Commerce Product Custom Attributes into Data Cloud](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_ingest_custom_attributes.htm&release=264.0.0&type=5)** You can now ingest custom attributes for the Product object into Data Cloud using the B2C Commerce Connector. Previously, you couldn’t ingest custom attributes. - **[Ingest Engagement Events from B2C Commerce into Data Cloud](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_ingest_engagement_events.htm&release=264.0.0&type=5)** You can now ingest storefront engagement events, such as product impressions, wishlist activity, and page views, into Data Cloud using the Web and Mobile App connector. The connector works with B2C Commerce storefronts built on SFRA, Sitegenesis, or PWA. You choose which type of engagement data to send to Data Cloud. - **[Get Near Real-Time Segmentation with Data Cloud](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_near_real_time_segmentation.htm&release=264.0.0&type=5)** B2C Commerce storefronts can now leverage customer segments created in Data Cloud on a near real-time basis, eliminating the need for batch activation. With up-to-date customer segments, your storefronts can provide timely, personalized, and targeted shopper experiences. This feature is generally available in the 25.2 release. - **[Business Manager UI in Polish](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_bm_polish.htm&release=264.0.0&type=5)** The Business Manager user interface is now available in Polish. To choose this new language, select the respective value in the dropdown in your user profile settings. # 25.5 Release The B2C Commerce 25.5 release occurs April 22, 2025 through May 22, 2025. Stay current with all the important B2C Commerce product updates by reviewing the release notes To review past release notes, check out the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Ensure Secure API Responses for Unauthenticated Requests](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_5_api_responses.htm&release=264.0.0&type=5)** We've updated the authentication handling for the `GET/sandboxe`s and `POST /realms/usages` ODS API responses. The responses now return a 401 unauthorized status code with a structured error response for unauthenticated requests. This change enhances security and aligns with standard HTTP practices. - **[Control Proration Logic for BOGO Promotions and Bonus Products](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_5_bogo_proration.htm&release=264.0.0&type=5)** We have added two new preferences in Business Manager to give you more control over the proration logic for BOGO Promotions and Bonus Products. These preferences ensure consistent discount handling and proration across your promotions. # 25.6 Release The B2C Commerce 25.6 release occurs May 15, 2025 through Jun 28, 2025. Stay current with all the important B2C Commerce product updates by reviewing the release notes To review past release notes, check out the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enhance Business Manager Efficiency with the New User Interface](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_bm_ui_default.htm&release=264.0.0&type=5)** The new Business Manager user interface (UI) is now the Business Manager default UI. The new UI provides a modern and efficient interface for administrators, merchandisers, and other Business Manager users. If needed, you can switch back to the classic UI by updating the UI preference. In Business Manager, select My Profile > Preferred UI style: Classic. - **[Find and Switch Apps and Modules with the Enhanced App Switcher](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_bm_app_switcher.htm&release=264.0.0&type=5)** Use the enhanced Business Manager app switcher to search for apps and modules in Business Manager, and use keyboard navigation to browse through options. - **[Ensure Accurate Custom Attribute Values with Language Fallback](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_accurate_attributes.htm&release=264.0.0&type=5)** We updated `MultiValueCustomAttributes` to respect your language fallback settings. Now, if a custom attribute is requested in a language without a translation, and fallback is disabled, no value is returned. This ensures data accuracy. - **[Ensure Basket Validation for SCAPI Calls](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_basket_validation.htm&release=264.0.0&type=5)** The basket validation hook, `dw.ocapi.shop.basket.validateBasket`, is now triggered for both OCAPI and SCAPI calls. - **[Track Category Assignments in Change History](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_change_history.htm&release=264.0.0&type=5)** Use Business Manager's Change History to track assignments between storefront categories and sorting rules. This additional change history gives you a complete record of all changes. Now you can easily manage and audit your storefront configurations. Previously, category assignments to sorting rules were tracked in campaigns or AB-tests. - **[Set the Default for Include Vowels and Y to No for Coupon Codes](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_include_vowles.htm&release=264.0.0&type=5)** The default setting for generating coupon codes now excludes vowels and the letter Y. This change helps prevent system-generated coupon codes that are potentially offensive or confusing. - **[Optimize Page Designer Performance with Fingerprint Caching](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_page_designer_cache.htm&release=264.0.0&type=5)** Use a new caching mechanism for the fingerprint calculation in Page Designer. This change significantly reduces the load time for pages and components without visibility rules, enhancing the overall user experience. - **[Ensure Accurate Page Previews with Enhanced Hostname Handling](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_accurate_page_previews.htm&release=264.0.0&type=5)** To generate accurate preview links, Page Designer now considers all configured hostnames in the Alias file. This avoids Cross-Origin Resource Sharing (CORS) issues with AJAX calls, and ensures that your storefront previews are reliable, consistent, and reflective of the live storefront experience. Previously, Page Designer used only the https-host from the alias file in Business Manager to decide which hostname to use for the preview link. - **[Secure Your Business Manager Import Export Access](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_secure_import_export.htm&release=264.0.0&type=5)** Use the new `Access_Customer_and Customerlist_Impex` permission to restrict access to the customers and customer list in the Business Manager Import and Export module. The new permission is a site-specific functional permission that enhances data security and compliance. Now, only authorized users can import and export data. - **[Stream Logs to Third-Party Platforms for Enhanced Monitoring](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_stream_logs.htm&release=264.0.0&type=5)** Log Center now supports streaming logs to Dynatrace, SumoLogic, and AWS Elastic Cloud. This integration gives you access to more third-party log aggregation tools. - **[Updates To OCAPI and SCAPI APIs](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_apis.htm&release=264.0.0&type=5)** This release introduces several enhancements to the Open Commerce API (OCAPI) and the Storefront Commerce API (SCAPI) to improve performance, and enhance developer experience. # 25.7 Release The B2C Commerce 25.7 release occurs June 24, 2025 through Jul 24, 2025. Stay current with all the important B2C Commerce product updates by reviewing the release notes To review past release notes, check out the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Find Bug Fix Information in Salesforce Known Issues Information about customer-reported issues and notifications about bug fixes is now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). It’s the place for information about customer-reported issues across Salesforce products. You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Disable the Deprecated Storefront Toolkit](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_7_disable_storefront_toolkit.htm&release=264.0.0&type=5)** To enhance security and the user experience, we now disable the deprecated Storefront Toolkit by default for new sites and imported sites. For existing sites, the behavior remains unchanged, but we recommend transitioning to the new Storefront Toolkit for enhanced functionality and support. - **[Manage WS-Security Keys and Certificates in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_7_manage_security_keys.htm&release=264.0.0&type=5)** Now you can manage WS-Security keys and certificates directly in Business Manager, making it easier to maintain different keys across various environments. This update simplifies key management and enhances security. - **[Test and Refine Store Inventory Searches in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_7_search_index_query_testing.htm&release=264.0.0&type=5)** Pilot and beta users of Shop the Store can lookup store inventory information in the Search Index Query Testing (SIQT) tool. You can add up to 10 store inventory list IDs to the inventory field in the SIQT tool. The increased number of inventory list IDs returns more accurate and relevant search results. - **[Configure Brotli Compression Speed in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_7_brotli_compression.htm&release=264.0.0&type=5)** Business Manager now offers Brotli Compression speed settings, which simplifies managing and optimizing static web assets. This update ensures smaller payloads and faster delivery times, enhancing the overall user experience. - **[Migrate V1 Zones to V2 Zone Configurations for Enhanced Security and Performance](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_7_migrate_v1zones_v2zones.htm&release=264.0.0&type=5)** Salesforce B2C Commerce now supports migrating deprecated proxy V1 zones to current V2 zone configurations in Business Manager. This update provides better security and performance, especially for ghost routing and traffic splitting scenarios. - **[Access Control Center Audit Events in Log Center](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_7_audit_logs_migration.htm&release=264.0.0&type=5)** As of June 2025, you can view Control Center audit events in Log Center, which offers a centralized location for log management. Access to audit events directly from Control Center will be phased out, but for backward compatibility, it will remain available until February 2026. After this date, the Audit Logs button in the Control Center UI will be removed, and Log Center will be the sole location to access these events. - **[Concurrent Facebook (Meta) Pixel Injection and Server-Side Activity Tracking](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_7_facebook_integrations.htm&release=264.0.0&type=5)** Starting in release 25.7, you can now enable both Facebook pixel injection and server-side activity tracking simultaneously. Previously, you could only enable one of these features at a time. # 25.8 Release The B2C Commerce 25.8 release occurs from July 22, 2025 through August 21, 2025. Stay current with all the important B2C Commerce product updates by reviewing the release notes. To review past release notes, see the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). Customer-reported issues across Salesforce products and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Analyze Your B2C Store Performance Using the Metrics Dashboard](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_metrics_dashboard.htm&release=264.0.0&type=5)** Use the Metrics Dashboard to monitor your B2C Commerce storefront performance, security, and resource utilization. The dashboard improves developer productivity, reduces mean-time to resolution, and streamlines troubleshooting. The metrics that you can monitor include metrics for application performance, sales, embedded content delivery network (eCDN), B2C Commerce API (SCAPI) and SCAPI hooks, and Managed Runtime. - **[Get Better Predictability of Your Service Profile Import](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_service_profile_defaults.htm&release=264.0.0&type=5)** Previously, when you imported a service profile with a circuit breaker turned on but no call or interval values set, the values were set to 120 calls and 20000 milliseconds by default. Now both values are set to 0 by default. - **[Simplify Product Category Assignments](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_productcategory_order.htm&release=264.0.0&type=5)** Product categories are now displayed in alphabetical order, by Category ID. Previously, the order of categories varied, leading to an inconsistent experience. - **[Strategize Promotions More Efficiently with Discounts](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_promotions_config.htm&release=264.0.0&type=5)** Set the maximum number of product and order promotions and the maximum discount allowed per cart. This increased flexibility makes it easier for B2C merchants to plan promotion strategies. - **[Speed Up Catalog Data Replication](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_catalog_data_replication.htm&release=264.0.0&type=5)** Configure your data replication processes to replicate only catalog data and exclude static content such as images. This configuration reduces replication time, especially for large catalogs. - **[Manage SVG Images More Efficiently](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_svg_images.htm&release=264.0.0&type=5)** Scalable Vector Graphics (SVG) files are now supported as thumbnails in Business Manager. You can quickly identify and select the desired SVG file without needing to open or preview each image individually. - **[Increase Flexibility with Relaxed Locking Rules for Inventory Import](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_locking_rules_inventory_import.htm&release=264.0.0&type=5)** Previously, inventory imports locked inventory globally for the duration of the import. Now, only the inventory list that’s currently being imported gets locked. The attempt to lock the inventory import has a timeout of ten seconds. After ten seconds, the import attempt is aborted if a different process locks the inventory list. This change enhances system flexibility and efficiency by minimizing locking contention when updating inventory imports and Data API concurrently. - **[Enhance Shoppers' Experience With Accurate Inventory Data for In-Store Pickup (Beta)](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_oci_shopthestore.htm&release=264.0.0&type=5)** Display near real-time, accurate, and reliable stock information to your shoppers by managing your in-store inventory with Omnichannel Inventory. Using this inventory information, shoppers can more reliably shop online and pick up purchases in store. - **[Elevate Store Search with the Upgraded Search Engine](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_outdated_indexes.htm&release=264.0.0&type=5)** Improve product search, sorting, and ranking with the latest search engine. Give shoppers more control over the search experience, with enhanced security and refinement calculations. - **[Script API JSON Web Encryption (JWE)](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_jwe_encryption.htm&release=264.0.0&type=5)** The Script API for JSON Web Encryption (JWE) now supports both encryption and decryption operations. Previously, it only supported decryption. This enhancement enables developers to encrypt sensitive data before sending it to third-party services, improving security and expanding integration capabilities. Additionally, a new CertificateUtils API simplifies working with external certificates, including JSON Web Key (JWK) format certificates, making certificate management more straightforward. - **[Use 3rd Party IDP Logins and Social Logins with Hybrid Authentication](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_hybrid_auth_logins.htm&release=264.0.0&type=5)** Hybrid Auth now supports all 3rd Party IDP logins and Social logins via PWA or SFRA when you configure SLAS as the 3rd Party IDP. This allows you to quickly and securely log in to your Hybrid storefront. This support is added for SLAS private and public clients. - **[Use Refresh Token Cookie TTL Overrides with Hybrid Authentication](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_hybrid_auth_ttl_overrides.htm&release=264.0.0&type=5)** Hybrid Auth now supports the ability to override refresh token cookie time to live (TTL), allowing you to control when a persistent session expires. You can configure different TTL overrides for guest shoppers and registered shoppers. When you use this feature, also apply the same refresh token cookie TTL override setting for PWA Kit. - **[B2C Commerce Intelligence JDBC Driver Now Generally Available](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_jdbc_driver.htm&release=264.0.0&type=5)** Access your B2C Commerce Intelligence data lakehouse directly through SQL queries with the new Commerce Intelligence JDBC Driver. This driver enables seamless connectivity to your B2C Commerce data for advanced analytics, reporting, and custom integrations to third-party Business Intelligence tools of your choice. - **[Filter Testing IP Addresses from Reports and Dashboards](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_cidr_ip_filters.htm&release=264.0.0&type=5)** Internal performance and load testing tools can contaminate the data you see in Reports and Dashboards, making it difficult to distinguish between generated traffic and actual customer behavior. You can now specify IP address ranges to filter out traffic from your internal testing tools, ensuring your analytics reflect genuine customer interactions. # 25.9 Release The B2C Commerce 25.9 release occurs between August 19, 2025 and September 25, 2025. Stay current with all the important B2C Commerce product updates by reviewing the release notes. To review past release notes, see the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). Customer-reported issues across Salesforce products and notifications about bug fixes are now published in [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). You can view the status of an issue and subscribe to notifications. The B2C Commerce Release Notes continue to provide information about new features and major feature enhancements. - **[Enhance Product Discovery in Your B2C Store (Generally Available)](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_shop_the_store.htm&release=264.0.0&type=5)** Elevate your shoppers' experience by merging online and in-store experiences, connecting shoppers to your stores and boosting sales. Shoppers can now discover in-store products when searching the online store and pick-up from their preferred store location. This feature, which is now generally available, includes some changes since the pilot release. - **[Help Shoppers Find the Best Deals](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_unitprice_sort.htm&release=264.0.0&type=5)** Shoppers can now sort prices by quantity or size to find the lowest price for a product. Add Unit Quantity and Unit Measure for each product. Then with these new sorting options, shoppers can identify the most affordable products. - **[Manage Campaign Details More Efficiently with the New User Interface](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_campaign_new_interface.htm&release=264.0.0&type=5)** Create and update campaigns using the new Campaigns Detail screen. The new screen includes updated default values, saving you time while you create a campaign. - **[Simplify Coupon Management by Sharing Coupon Codes Across Sites](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_coupon_code_sharing.htm&release=264.0.0&type=5)** Share system-generated coupon codes across multiple sites. If a customer redeems a shared code on one site, that code can't be redeemed on another site unless it’s set to be redeemed more than once. You can import and export shared coupon codes, and you can set site-specific redemption limits. - **[Manage A/B Tests More Efficiently with the New User Interface](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_ab_test_new_interface.htm&release=264.0.0&type=5)** Use the quick filters in the new A/B test interface to sort and manage A/B tests. Find the best- performing segments by scanning visual indicators. The new interface also includes clipboard functionality so that you can copy test results for further analysis. Test data is displayed if at least one data point is available in every test segment. - **[Establish Security Compliance with an Outbound Connections Allowlist](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_manage_outbound_connections.htm&release=264.0.0&type=5)** Gain greater security and control over outbound connections. The new Outbound Connections screen in Business Manager lists recently used endpoints that you can select from. You can also configure new endpoints and add them to your allowlist. Connections defined under Service credentials are automatically allowed from the B2C Commerce platform. - **[Identify Scalability Issues with Multi-Order Transactions](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_multi_order_transactions.htm&release=264.0.0&type=5)** An alert now appears in Business Manager to inform you if a custom job is changing multiple orders per transaction. The alert helps you proactively identify the issue and appears hourly until you resolve the issue. Review the source code in your custom job script to make sure that the custom job only changes one order per transaction. After you resolve the issue, the alert disappears within a day. - **[Identify Concurrent Modification Issues During Order Export](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_concurrent_modification.htm&release=264.0.0&type=5)** An alert now appears in Business Manager to inform you if another process is concurrently modifying the order during the export process. The alert helps you proactively identify when processes lead to order export data being out of sync or exported twice. To minimize the risk of another process modifying orders during export, you can delay order exports. - **[Service Credentials Are Encrypted During Import and Export](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_encrypt_service_credentials.htm&release=264.0.0&type=5)** Service credentials are now encrypted, instead of masked, during a service export when using Site Import & Export under Site Development. You can also import service credentials back if needed using the same method. Previously, service credentials were encrypted only when exported via Import & Export under Operations. - **[Connect More Effectively to Sandboxes](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_httpclient_connection_pool.htm&release=264.0.0&type=5)** Now when you log in to sandboxes using OAuth, you don’t experience Connection Reset errors. With these errors eliminated, you can more reliably authenticate, improving your user experience. - **[Add Attachments to an Email Using the Script API's dw.net.Mail Class](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_dw_net_mail.htm&release=264.0.0&type=5)** With the new addAttachment(dw.io.File file) method, you can easily add one or more attachments to an outgoing email. Previously, this class did not provide a way to add attachments to emails. # 26.1 Release The B2C Commerce 26.1 release occurs between December 4, 2025 and January 29, 2026. The B2C Commerce Release Notes provide information about new features and major feature enhancements. To review past release notes, see the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). Customer-reported issues across Salesforce products and notifications about bug fixes are published in the [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). You can view the status of an issue and subscribe to notifications. - **[Access Developer Documentation in a Unified Location](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_unified_dev_doc.htm&release=264.0.0&type=5)** In response to your feedback, we have combined the developer documentation for B2C Commerce, B2C Commerce API (SCAPI), and Composable Storefront into a single table of contents. You can now find what you need faster without switching contexts between product guides. A centralized API reference page also provides a single starting point for technical specifications. - **[Launch Agentforce for B2C Commerce from More Places in Your SFRA Storefront](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_shopping_agent_launch_locations.htm&release=264.0.0&type=5)** Give your customers more ways to chat with the Shopping Agent for B2C Commerce by selecting different launch locations. Add agent access from an icon in the site header, from a shopper's search suggestions, or a floating icon at the bottom of each storefront page. - **[Guide Shoppers to Manually Add Coupons](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_shopping_agent_apply_coupon.htm&release=264.0.0&type=5)** The B2C guided shopping agent now helps shoppers manually apply coupons to the cart and clearly shows complex discounts in the cart summary and order confirmation pages. To enable the B2C Commerce Coupon Management agent topic, contact your Salesforce account executive. - **[Help Shoppers Find Products Faster with Guided Questions](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_shopping_agent_actions.htm&release=264.0.0&type=5)** Streamline the shopping experience with intelligent, guided search options. The B2C shopping agent prompts shoppers with relevant search results and follow up questions, leading shoppers to find the right product faster. For example, if a shopper searches for running shoes, the agent displays a list of running shoes and then asks follow-up questions based on the surface type, such as trail, road, or track. - **[Add Adyen as a Salesforce Payments Option](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_adyen.htm&release=264.0.0&type=5)** Integrate your existing Adyen merchant accounts into Salesforce Payments for B2C Commerce. Unify payment processing by managing all your accounts natively within Salesforce. - **[Access Site Controls from the Administration App](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_storefront_controls.htm&release=264.0.0&type=5)** Access the Site Selector, Storefront Preview, and Toolkit controls directly from the Administration app in Business Manager. You no longer need to switch to the Merchant Tools app, making it easier to preview your storefront and complete other site management tasks. - **[Get Consistent Storefront Preview URLs](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_preview_url.htm&release=264.0.0&type=5)** Storefront preview URLs from Business Manager are now reliable and reflect the live storefront experience. The preview URL is generated based on the vanity hostname defined as the SEO alias instead of using the generic hostname. This improved consistency also applies to previews generated from the list and detail pages for Product and Content in Business Manager. - **[Automatically Recover Inventory Availability After an Interruption](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_oci_status_sync.htm&release=264.0.0&type=5)** Omnichannel Inventory now triggers a recovery when a data stream interruption is detected, thus preventing gaps in availability updates. The recovery uses one of the two simultaneous export slots. If you use custom processes for full Omnichannel Inventory availability exports, review potential resource contention. - **[Use Analytics and Data Features in Non-Production Environments](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_cip_non_prod.htm&release=264.0.0&type=5)** Test integrations, validate dataflows, and develop configurations with non-production B2C Commerce instances. - **[Streamline Subdomain Management with Wildcard Custom Hostnames](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_ecdn_wildcard_hostnames.htm&release=264.0.0&type=5)** You can now use a single wildcard configuration in eCDN to cover multiple subdomains. For example, setting up \*.merchantsite.com manages hostnames like shop.merchantsite.com and blog.merchantsite.com. This reduces the overhead of managing multiple custom hostnames. - **[Manage eCDN Rate Limits in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_ecdn_rate_limits.htm&release=264.0.0&type=5)** You can now configure and manage embedded CDN rate limits directly in Business Manager. Previously, these settings were only accessible via the CDN Zones API. Use the intuitive interface to adjust rate limits quickly, optimize performance, and ensure compliance with traffic management policies. # 26.2 Release The B2C Commerce 26.2 release occurs between January 27 and February 26, 2026. The B2C Commerce Release Notes provide information about new features and major feature enhancements. To review past release notes, see the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). Customer-reported issues across Salesforce products and notifications about bug fixes are published in the [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). You can view the status of an issue and subscribe to notifications. - **[Track B2C Shopping Agent–Assisted Revenue for SFRA Storefronts](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_agent_analytics.htm&release=264.0.0&type=5)** See the orders and revenue that are directly attributed to the B2C Shopping Agent on B2C Commerce Reports and Dashboards. Estimate the return on investment contributed by the agent, and make informed decisions on how to use agent capabilities. Shopping Agent data is available on the Home, Sales, Products, and Promotions tabs. - **[Launch the Shopping Agent from Two Places in Your PWA Kit Storefront](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_header_launch_location.htm&release=264.0.0&type=5)** Give your customers more ways to chat with the Shopping Agent for B2C Commerce. A floating icon appears by default at the bottom of each page. You can also add an icon in the site header for agent access. - **[Gain Instance-Level Control Over On-Demand Sandbox Availability](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_cc_ods_instance_scheduler.htm&release=264.0.0&type=5)** For flexible and cost-effective sandbox management, create schedulers for individual on-demand sandboxes (ODS). Instance-level schedulers control when an on-demand sandbox instance stops and starts, so you can configure sandbox availability based on usage patterns. Individual instance schedulers override any realm-level schedulers. - **[Customize Product Lists with Saved Filters for Faster Merchandising](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_product_lists.htm&release=264.0.0&type=5)** Accelerate product discovery and bulk updates with redesigned, metadata-driven product lists. Edit, save, and quickly switch between filter and column configurations to eliminate repetitive setup. - **[Monitor Suspicious Access to Sensitive Shopper Data](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_26_2_piilogging.htm&release=264.0.0&type=5)** Security logs now capture the source IP address that accesses sensitive shopper data in Business Manager. Use these enhanced logs to investigate suspicious activity and validate authorized access to sensitive customer and order details. - **[Choose Which Page Designer Pages to Replicate](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_page_designer.htm&release=264.0.0&type=5)** Replicate specific Page Designer pages instead of an entire library. Push critical content updates to production faster by running smaller, more targeted replications multiple times a day without the expense and complexity of a full data replication. - **[Component Icons Removed from Page Designer](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_page_designer_component_icons.htm&release=264.0.0&type=5)** Page Designer no longer shows component icons in the component palette, page structure panel, or the window for adding components. This change provides a cleaner, more streamlined interface. - **[Exit Business Manager Sessions Without Auto Reauthentication](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_bmlogout.htm&release=264.0.0&type=5)** You are no longer automatically logged into Account Manager or Business Manager again to reauthenticate when you end a session. Previously, accounts linked to Salesforce were automatically reauthenticated, making it difficult to exit the application if you're using unified authentication. - **[Manual Refresh Data Maps as Needed](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_26_2_metadatasync.htm&release=264.0.0&type=5)** Sync new custom attributes in Salesforce Order Management with your B2C Commerce org with the click of a button. Manually trigger a data map refresh to get instant access to new schema changes instead of waiting for the next scheduled sync. - **[Prefill Shipping and Payment Information to Streamline Checkout](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_prefill_checkout_information.htm&release=264.0.0&type=5)** In the createBasket and transferBasket endpoint of the ShopperBaskets API V2, set the new populateCustomerDetails query parameter to true to prefill a shopperʼs information during checkout. This setting invokes the new dw-order.populateCustomerDetails business hook, which populates the basket with the registered shopperʼs default or first saved address and payment information. You can also customize the business hook. - **[Validate OCAPI Version Numbers Strictly](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_ocapi_validate_version_numbers.htm&release=264.0.0&type=5)** You can now strictly validate version numbers with the Open Commerce API (OCAPI). OCAPI requests that include a version number with leading zeros, such as v024\_05, are rejected. These requests return a 400 Bad Request response and an InvalidVersionException fault. Going forward, if you have a new project or a major refactoring, use the B2C Commerce API (SCAPI) instead of OCAPI. - **[View Available Meta API Versions in OCAPI Explorer](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_ocapi_meta_api_versions.htm&release=264.0.0&type=5)** The Meta API call in the Open Commerce API (OCAPI) Explorer now returns the available Meta API versions instead of an empty JSON response. The OCAPI Meta API is accessible only through an on-demand sandbox. Going forward, if you have a new project or a major refactoring, use the B2C Commerce API (SCAPI) instead of OCAPI. - **[Find the B2C Commerce Release Notes in a New Location](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_find_release_notes.htm&release=264.0.0&type=5)** The B2C Commerce Release Notes are moving into the standard Salesforce Release Notes for a unified experience. - **[Ingest B2C Commerce Domain Data into Data 360 Using Apache Iceberg](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_iceberg_domain_data.htm&release=264.0.0&type=5)** Use the Apache Iceberg File Federation connector to ingest B2C Commerce domain data—including products, orders, customer profiles, and custom attributes for products and customer profiles—into Data 360. # 26.3 Release The B2C Commerce 26.3 release occurs between February 24 and March 26, 2026. The B2C Commerce Release Notes provide information about new features and major feature enhancements. To review past release notes, see the [B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&type=5&language=en_US). Customer-reported issues across Salesforce products and notifications about bug fixes are published in the [Salesforce Known Issues](https://trailblazer.salesforce.com/issues). You can view the status of an issue and subscribe to notifications. - **[B2C Commerce Release Notes Are Now Included with Salesforce Release Notes](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_3_release_notes_move.htm&release=264.0.0&type=5)** The B2C Commerce Release Notes are now published as part of the standard Salesforce Release Notes for a unified experience. # A New Quota and Logging for Objects Embedded in HTML Attributes Were Added Starting with Release 21.3, only users with strong authentication, such as through MFA with Account Manager, can include objects embedded with iframe, object, applet, or embed tags into HTML attributes. A new quota implemented in Release 21.2, `api.object.EmbeddedObjectInHTMLAttributeUserWithoutStrongAuth`, helps you to prepare for the upcoming 21.3 restriction. Use the new quota to see if you have objects embedded in HTML attributes and if so, make sure that users who embed such objects use strong authentication. How: Also starting with Release 21.2, changes to HTML attributes that include embedding objects are recorded in the security logs. The restrictions on embedded objects in HTML attributes are similar to restrictions previously implemented for JavaScript in HTML attributes. #### See Also - [JavaScript In HTML Attributes](https://documentation.b2c.commercecloud.salesforce.com/DOC1/index.jsp?topic=%2Fcom.demandware.dochelp%2Fcontent%2Fb2c_commerce%2Ftopics%2Fadmin%2Fb2c_javascript_in_html_attributes.html) # A Unique ID Was Added to Log Files for Jobs The name of the log file for a job executed in the new job framework now includes a unique ID. How: For example, a log file previously named Job-MyCustomJob-20201201103417145.log is now named something like Job-MyCustomJob-1e9420b5e6ae0e2bd3c99a4317.log. The ID ensures that two job executions that occur in short succession don’t use the same name for the log file. #### See Also - [Jobs](https://documentation.b2c.commercecloud.salesforce.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2Fcontent%2Fb2c_commerce%2Ftopics%2Fjobs%2Fb2c_job_creation_management.html) # Aborted Order Alerting Set up email alerts for aborted orders on the Point of Sale (POS) app, so you can take corrective measures. Modern POS App build: 5.12.1 or later. Platform Support: iPhone and iPad (or iPad only) or (iPhone Only). Offline Support: No Technical Prerequisites: Payment gateway is either Adyen or Elavon. On the POS app, on rare occasions, payment status can’t be determined. For example, the payment terminal froze or the network connectivity with the payment gateway was interrupted, causing unhandled errors. In such cases, orders can be in have an "Unknown" payment status and will need manual intervention to correct it. 1. Go to **Advanced > Monitoring**. 2. Create a new monitoring policy. 3. Under **Subscriptions > Events**, select Aborted Orders. 4. Configure the rest of the fields using this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_policy_management_settings.htm&release=264.0.0&type=5 "Create monitoring policies in Point of Sale CMS to designate email addresses for receiving alerts about subscription or application-based events.") as a reference. 5. Select **Save**. # About the Manual Salesforce Tax Solution The manual Salesforce tax solution is a built-in service that calculates taxes for B2B stores that use gross taxation—taxes are included in the product price. The manual Salesforce tax solution supports tax percentage calculations at the country, state, and province level. The manual solution is appropriate if you have a simple gross tax situation. In any case, consult with a tax expert when setting up taxes for your store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) A tax rate specifies the percentage at which a product is taxed and the country, state, and province where that rate applies. A tax treatment maps the tax rate to products. A tax policy collects all the tax treatments for a specific store. ![Block diagram showing how tax entities are related.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/tax_relationship.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note The manual Salesforce Tax solution supports only Gross tax. For example, you want all adult clothing sold in the United Kingdom (UK) taxed at the full 20% VAT rate. Because children’s clothing is exempt from VAT in the UK, you want to tax children’s clothing at 0%. 1. Assign all adult clothing to the product code Adult-Clothing. 2. Assign all children’s clothing to the product code Child-Clothing. 3. Configure a tax rate with UK, a 20% rate, and a tax code such as VAT. 4. Configure a tax rate with UK, a 0% rate, and a tax code such as No\_Tax. 5. Create a tax treatment that maps the product code Adult-Clothing to the 20% tax rate using the tax code VAT. 6. Create another tax treatment that maps the product code Child-Clothing to the 0% tax rate using the tax code No\_Tax. 7. Assign both tax treatments to the tax policy for the store. When an adult clothing product is shipped to the UK, the 20% tax rate is applied. When a child clothing product is shipped to the UK, the 0% tax rate is applied. You can configure a default tax treatment for a store. Use the default tax treatment to simplify the configuration. For example, you want all products in a country to be taxed at the same rate. 1. Assign the same product code to all products, for example, All. 2. Create a tax rate for each country. Assign all tax rates to the same tax code, for example All\_Tax, and whatever rate you want to use for the country. 3. Create a tax treatment that uses the same tax code that all the tax rates are assigned. 4. Assign the tax treatment as the default tax policy for the store. The default tax treatment is applied to all products, with the tax rate determined by the ship-to-country. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Subscriptions aren't supported in the manual Salesforce tax solution. # Access API Keys for POS App Increase security by using Point of Sale CMS to generate brand and environment-specific Activation QR Codes. Simplify the process of managing API keys for different Point of Sale (POS) app brands and environments. ## Prerequisites - Modern POS App build: 8.0.1 & later - [Supported POS device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - Offline Support: NA ## Activation Code in CMS Go to the environment you want to switch the app to, and go to **Store Management > Activate App**. If it's the first time activating the app, switch to Production. ## POS App Flow The next sections show how the POS app works within each environment. ## First Time POS Activation - Production On the first launch of the POS, the app presents the Welcome Screen with a message to scan the Activation QR code.![The welcome screen in the POS app with directions to scan the QR code](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_api_activate.PNG) Tap "Scan QR Code" and you will launch the camera scanner. You can scan the activation QR code found in **CMS > Store Management > Activate App**.![Scan the Activation QR code from the device's camera scanner.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_camera_scanner.jpeg) If the scan is successful, the app initializes with the corresponding configuration for that brand QR code. ## First Time POS Activation - Staging From version 8.2.1 and onwards, users can activate and directly enter the Staging environment by scanning the Staging activation QR code. The Staging QR code is different from the Production code and can be accessed via the respective CMS site. On a successful scan of a Staging code, the user is prompted to enter the configuration token from that specific environment. After it's applied, the app initializes with the corresponding environment and configuration token.![The enter staging token dialogue box in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_activate_pos_staging.jpeg) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For versions less than 8.2.1, if you want to test on Staging, scan the legacy QR code first and then switch to Staging. You can find the legacy QR code on the same CMS page with the label "Scan the following Legacy QR code for App Versions 8.1.1 or older". ## Switching to an Environment First time If this is the first time you're switching to the staging environment with 8.0.1, the POS app prompts the user to scan an environment-specific QR code. ## Upgrading from a previous version from Staging Environment If you're currently in the Staging environment on versions 7.16.5 or earlier and upgrading to 8.0.1, the POS app prompts you to scan the respective environment's activation code to continue. This is similar to switching to a different environment for the first time on the new version.![The scan staging QR code dialogue box in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_scan_staging_qr_code.PNG) ## Updating API Keys After 8.0.1 Rollout If a brand decides to update API Keys after rolling out the 8.0.1 version, all POS apps undergo a reset to clear the current environment-specific API Keys. Use the Advanced Reset POS deep link to reset the POS app and begin the Activation Step again. ## Troubleshooting ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important After completing the activation flow, wait for the app config download to complete before exiting the app. You can validate that the download is completed by observing the background of the welcome page loading. If for some reason, the activation failed and you see a Retry screen if clicking on **Login** or **Enter Store** in the launch screen, bring up the reset UI from the launch Screen. Then, select **‌Reset POS App**.![The reset POS app dialogue on the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_reset_pos_app.jpeg) # Access Associate 360 Report on the POS App Track assocate's individual productivity. Use snapshots of key metrics to better benchmark and course-corret relative to targets that determine performance and compensation. ## Prerequisites - Modern POS App Build: 10.0.1 or greater - Platform Support: iPad & iPhone - Offline Support: no ## Configure a Deep Link to Acces Associate 360 Report Configure a deep link to access the report on the POS app. 1. Edit a layout, hamburger menu, or tab. 2. Using the deep link picker, go to **Store Associate > Associate 360**. 3. Optionally, check **Show Quotes** to include quote-related information in the associate's 360 profile. If enabled, a widget will show the associate’s created and converted quotes. 4. Set the deep link and save your changes. ## Associates 360 Report POS App Flow See an associate's basic information, attributed sales, returns, client activities, and quotes in the Point of Sale (POS) app. On the POS app, tap the Associate 360 deep link to access the associate's 360 page. Here, you can view the associate's basic information, including name, ID, email, role, store ID (current store), and register ID (current register). Additionally, you can see the associate's attributed sales and returns, clienteling activities, and quotes (if Show Quotes is enabled). This page also includes a date filter to set the date range for the metrics shown. Note: The update interval for the refresh frequency of this report is approximately 15 minutes. The associate's profile image can be set directly in CMS if [creating or editing an associate](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manually_create_associates.htm&release=264.0.0&type=5 "Create store associate user profiles in Point of Sale CMS so that you can manage them."), or through the [Store Associates Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_create_store_associates.htm&release=264.0.0&type=5 "Add users to Point of Sale CMS who can access store functions and operate a point of sale (POS) system."). ### Attributed Sales & Returns Under this section, the associate's sales and returns metrics are displayed. Refer to the table to learn how each metric is calculated and their descriptions. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: All the metrics shown on this page are rounded and abbreviated. Values under a thousand are rounded to the nearest one (for example $123.45 → $123); and values over a thousand are rounded to the nearest hundred (for example $1,234.56 → $1.2K).
FieldDescription
Sales After DiscountsGross Sales - Discounts
Order CountNumber of orders attributed in whole or in part to this associate
Net SalesGross Sales - Discounts - Refunds Excl. Tax
Average Order Value (AOV)Sales After Discounts / Order Count
Refunds Excl. TaxAmount refunded excluding tax
Refund CountNumber of total refunded orders (includes return leg of an exchange)
### Clienteling Under this section, the associate's clienteling metrics are displayed. Refer to the table to learn how each metric is calculated and their descriptions.
FieldDescription
Profiles CreatedNumber of customer profiles created by this associate
Collections SentCollections created and shared by this associate
### Quotes Under this section, the associate's quotes metrics are displayed. Refer to the table to learn how each metric is calculated and their descriptions. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: All the metrics shown on this page are rounded and abbreviated. Values under a thousand are rounded to the nearest one (for example $123.45 → $123. Values over a thousand are rounded to the nearest hundred (for example $1,234.56 → $1.2K)
FieldDescription
Created QuotesNumber of quotes created by this associate using the POS app. When a merchant system is configured as the master of record, quotes created via external systems are not included. Point of Sale only retrieves and displays data for the logged-in associate.
Created AmountPotential GMV from quotes created
Converted QuotesNumber of quotes created by this associate (at any point) for which payment is completed (in the specified date range)
Converted AmountGMV of quotes converted
# Access Associate Login Report in Point of Sale View a store associate's ID, full name, and last login date and time. Use the report in both Point of Sale CMS and the Point of Sale (POS) app to monitor associate activity. Customize the report by date to view specific timeframes. Prerequisites - Modern POS App Build: 9.0.1 and later - Platform Support: iPhone & iPad - Offline Support: no ## View and Generate Reports in Point of Sale CMS 1. Go to **Store Management > Report & Analytics > Associate Login Report**. 2. (Optional) Select **DOWNLOAD CSV** to download a CSV-formatted file of the results.![The Assocaite Login Report screen in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_associate_login_csv.png) ## Configure A POS App Deep Link To view the report on the POS app, configure a deep link. The deep link can be configured in a [Hamburger Menu](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_hamburger_menu.htm&release=264.0.0&type=5 "Configure a hamburger menu in the POS app to access a wide range of features without cluttering the screen. This setup streamlines navigation, making it easier for users to find and use essential functions quickly.") or a layout, but not as a Tab. 1. Go to **Layouts > Layout Templates > Hamburger Menu**. 2. Edit an existing menu or create one. 3. Using the deep link picker, go to **Store Associate > Associate Login Report**. 4. Set and save the changes. ![The Associate Login Report deep link screen in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_associate_login_deep_link.png) ## Access Associate Login Reports in the POS App View and customize the Associate Login Report in the Point of Sale (POS) app. After you've set the deep link with the steps in POS App Deep Link, close and relaunch the app. Tap the deep link and this screen appears. The report includes this information: - Store associate's ID and their full name - Store associate's last login date and time (in UTC) ![The Store Associate information shown in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_store_assocaite_info.png) The report can be reloaded, on-demand, by selecting on the refresh icon at the top right. This launches a fresh new query, using the currently selected date for the data filtering. ### Customizing Report by Date The report allows date range filtering through the calendar icon at the bottom, with the default view initially set to cover the last seven days. For app builds 9.9.1 and earlier, the report can be filtered by the current day, last three days, last seven days, and last 30 days. ![The Data Range window in the POS app, where you select how far back to filter the report.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_date_range.png) For builds 9.9.1 and later, users can customize the filter by day, week, month, year, or a specific range.There's a maximum limit of 31 days for a specific range. ![The Report Filter in a POS app build earlier than 9.1.1.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_filter_older_build.png) # Access Control Center Audit Events in Log Center As of June 2025, you can view Control Center audit events in Log Center, which offers a centralized location for log management. Access to audit events directly from Control Center will be phased out, but for backward compatibility, it will remain available until February 2026. After this date, the Audit Logs button in the Control Center UI will be removed, and Log Center will be the sole location to access these events. **Where:** This change applies to the Control Center UI in all editions. **When:** Starting in February 2026, the Audit Logs button in the Control Center UI will be removed, and the Control Center audit events will be available only in Log Center. **Who:** Only users with the Log Center External Admin or the Log Center User role can view the audit events. These users must be assigned specific instances or the sandbox filter realm (realm\_sbx) by applying tenant filters. Administrators apply these roles and filters in Account Manager. **How:** To access the audit events in Log Center, click **Log Center** at the top of the Control Center UI. You can also access Log Center from a browser or from Business Manager. To see the view that is being deprecated, click **Audit Logs**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_important.png) Important Audit events are available for only 90 days in the Log Center, after which they are deleted. ![Control Center home page with Log Center and Audit Logs buttons](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_7/b2c_conrol_center_with_logctr_button.png) Here's an example of audit events shown in Log Center. ![View of Control Center audit events in Log Center](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_7/b2c_audit_msgs_log_center.png) #### See Also - [View Control Center Audit Events in Log Center](https://help.salesforce.com/s/articleView?id=cc.b2c_cc_view_the_audit_log.htm&language=en_US) - [Log Center](https://help.salesforce.com/s/articleView?id=cc.b2c_log_center.htm&language=en_US) # Access Customer 360 in Point of Sale Use Customer 360° to see all the information about a customer that the merchant handles. This includes customer information and their history with your brand, past orders, items saved in the cart, loyalty details, and more. Prerequisites - Modern POS App Build: 5.8.2 or greater - Platform Support: iPhone & iPad - Offline Support: no ## Creating Clienteling Layout in Point of Sale CMS 1. Go to **Layouts > Layout Pages**. 2. Select **Add From Template**. 3. Select a template based on the platform: 1. "**Clienteling profile - iPad**" 2. "**Clienteling profile - iPhone**" 4. After you make the choice and select the font, the landing page shows the default template. This default layout is editable. The various selections and the placement can change or be removed as needed. You can also add new inline deep links as well. ## View Available Deep Links The table provides a list of available deep links that can be configured within the Customer's 360° Profile layout. Deep links marked as "**Yes**" under the Default column are considered defaults, indicating that they are preconfigured on the Clienteling Profile layout.
Deep Link Description Default
Quiz

Displays a quiz for gathering the customer's preferences

While the Preference icon is a default feature on the Clienteling layout, configuring it with the Quiz deep link is necessary. This configuration enables the selection of the specific type of quiz to show.

Yes
Create Note for Client Displays a window for entering notes of the customer Yes
Add Customer to Black Book Adds the customer to the store associate's Black Book Yes
Wishlist Displays a carousel of the customer's favorite items. Items are favorited via the product catalog by tapping the heart. Yes
Cart Products Displays a carousel of the customer's cart items Yes
My Closet Products Displays a carousel of the customer's previous purchases Yes
Order History Displays a carousel of the customer's past orders Yes
Client Notes Displays a carousel of notes left by previous associates in the customer’s profile Yes
Saved Carts Displays a carousel of the customer's saved or suspended carts Yes
Show Redeemable Rewards Displays customer's redeemable rewards. Additional loyalty can be configured and displayed via Print Tags. Learn More No
## Assigning Clienteling Layout Assign the Clienteling layout to an app config to show it on the POS app. 1. Go to **Apps > All**. 2. Edit the app configuration you want to have the layout. 3. Go to **Modules > Clienteling** | **.** 4. Under **Clienteling Profile Layout**, select the layout you've previously created. ## View Customer 360 in the POS App After you've configured CMS for Customer 360, relaunch the POS app. Tap on the **Clienteling deep link** and log in as a customer. You'll be shown the customer profile which includes this information: - **Name**: the name of the customer. - **Add Notes**: Add notes and store important information about your customer. - **Add to Black Book**: The Black Book feature allows associates to track their customers easily. - **Customer Reviews**: See reviews the customer has given on a product. - **Order on Behalf**: Associates can order for the customer. - ![Customer 360 as seen in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_customer_360_pos_app.png) ## Known Issues and Restrictions If **Save Address to User's Profile (App > Modules > Cart)** is set to "**Always Save Address**" then the customer's profile address is linked to the shipping address in the cart. Every time a shipping address is added to the cart, it also updates the customer's profile address as well. # Access Developer Documentation in a Unified Location In response to your feedback, we have combined the developer documentation for B2C Commerce, B2C Commerce API (SCAPI), and Composable Storefront into a single table of contents. You can now find what you need faster without switching contexts between product guides. A centralized API reference page also provides a single starting point for technical specifications. Existing bookmarks continue to function even with these navigation changes. You may notice that the URL in your browser varies depending on whether you access a topic through the new navigation or a direct bookmark. However, both paths lead to the same source material, ensuring your saved resources remain reliable. **When:** These changes are scheduled for release in January 2026. We are committed to further improving your documentation experience and will continue to refine and merge technical topics in upcoming phases. We will notify you as additional updates and phases of this consolidation become available. **How:** To view the unified table of contents, navigate to any of the three product areas (B2C Commerce, SCAPI, or Composable Storefront) and click the **Guides** tab. To access API reference documentation, navigate to the new, consolidated reference page, titled Commerce Cloud Reference Information, and select a specific API from the centralized menu. #### See Also - [_B2C Commerce Developer Guide_: Get Started with B2C Commerce](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide) - [_B2C Commerce API Developer Guide_: Get Started with the B2C Commerce API](https://developer.salesforce.com/docs/commerce/commerce-api/guide) - [_Composable Storefront Developer Guide_: Get Started with Composable Storefront](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide) # Access eCDN Logs in Log Center The log center includes eCDN error logs, including HTTP status codes 502-530, for proxy zones on B2C Commerce Production instances. Use these logs to monitor site performance and security. **Where:** This change applies to B2C Commerce. **How:** Access the log center from a browser or from Business Manager. #### See Also - [_Salesforce Help_: Access Log Center](https://help.salesforce.com/s/articleView?id=cc.b2c_start_log_center.htm&language=en_US) # Access Key Resources in the New Business Manager UI (Beta) The new B2C Commerce Business Manager user interface (UI) was introduced as an open option in release 24.9. Release 24.10 includes improvements and several new features. **Why:** The enhancements and features include: - Guidance Center in the header–Find references to the most important product enablement information and Trailhead assistance by clicking the icons in the upper-right corner of the header. - Insights on the Admin home page–In addition to favorites and alerts, the Administration home page shows operational metrics. - Alerts in header–Access alerts from any Business Manager page. The alerts icon is integrated into the header next to the My Profile setting. - New footer–View instance information, including the version, default time zone, and POD ID number, in the footer. - New icons–The left navigation includes icons that represent common Salesforce usage. **How:** To use the new UI, in Business Manager, select **Administration** | **Global Preferences** | **Feature Switches** | **Enable New Business Manager UI (Beta)**. Enable the feature toggle. When the toggle is on as a global preference, every user can switch to the new UI in their My Profile settings. A user can switch back to the classic UI if something isn’t working as expected. # Access New JavaScript Features and Functionality with the Latest Compatibility Mode When you select compatibility mode 21.2, the B2C Commerce Server-Side JavaScript engine supports elements from ECMAScript 6 (ES6) and later. With compatibility mode 21.2, you can access numerous fixes and new and expanded features, including new top-level built-in types and methods for existing classes. How: ES6 isn't fully compatible with ECMAScript 5 (ES5). For example, ES6 includes new keywords that you can no longer use as identifiers. Compatibility modes earlier than 21.2 continue to use a JavaScript version based on ES5. #### See Also - [Compatibility Mode Changes](https://documentation.b2c.commercecloud.salesforce.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2Fcontent%2Fb2c_commerce%2Ftopics%2Fsite_development%2Fb2c_compatibility_mode_considerations.html) # Access On-Demand Sandbox Logs in Log Center Salesforce B2C Commerce On-Demand Sandbox (ODS) logs are now available in Log Center. This enhancement eliminates the need to use a separate URL to access ODS logs for the first-party instance of Log Center. With this update, the Log Center experience now includes: - A single URL access point for all realms - Extended log retention of up to 14 days - Advanced search capabilities **How:** To access the ODS Logs within Log Center: 1. Start Log Center. 2. Select a region. 3. select a realm. If you're unsure of your realm ID, ask your Account Executive (AE) or Customer Service Manager (CMS) for assistance. 4. Click **Show filtered results**. 5. Select **Search** | **Current Search**. 6. Under Service Type, select **ecom** or **jwa**. 7. To view the ODS logs, select **host**. ![Host Dropdown](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/24_4/log_center_host.png) # Access Page Designer with SCAPI You can now use the Shopper Experience SCAPI API to add content created in Page Designer to your B2C Commerce headless implementation. Use the SCAPI Shopper Experience API to look up page information for pages created in Page Designer. The Shopper Experience API responses include: - The entire component hierarchy of the page at design time. - All merchant data provided at design time. - Server-side scripting data provided at run time. #### See Also - [Shopper Experience](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-experience?meta=Summary) # Access Point of Sale on Android and Windows Point of Sale for Android and Windows is available by invitation. Request access for testing or for distributing the app to your stores. ## Request Access Contact your account team to request access to Point of Sale for Windows or Android. Provide the email addresses used to configure your Windows or Android devices. Salesforce sends an invitation for the Point of Sale application to those email addresses. ## Testing Distribution - Android: You receive an invitation to download AppTester, the platform for sharing Android builds for testing. For details, see [Get set up as a tester (Android)](https://firebase.google.com/docs/app-distribution/get-set-up-as-a-tester?platform=android) in the Firebase documentation. - Windows: Salesforce shares a Point of Sale executable file for testing. ## Store Distribution - Android: Point of Sale is available on Google Play and accessible by invitation. After Salesforce grants your organization access, you can distribute the app to your store devices through your mobile device management (MDM) solution. Users must open the invitation link and accept it before they can download the app from Google Play. - Windows: Point of Sale is available on the Microsoft Store and accessible by invitation. After Salesforce grants your organization access, you can distribute the app to your store devices through your MDM solution. #### See Also - [_Salesforce Help:_ Point of Sale on Android and Windows](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_android_windows.htm&release=264.0.0&type=5 "Point of Sale is available on Android and Windows, in addition to iOS. Use Android or Windows devices for in-store checkout and other retail operations.") # Access Quotes Report in Point of Sale Track created and converted quotes to gain a snapshot of store performance or compare associate metrics. This report can be viewed on the POS app by configuring a deep link. The same data is also available in the CMS as a report across all of the merchant’s stores. Prerequisites: - Modern POS App Build: 10.3.1 or greater - Platform Support: iPhone & iPad - Offline Support: no ## Access Quotes Report in POS App Access the Quotes Report in the Point of Sale (POS) app to view metrics for the current day. The report can be accessed in the app by configuring a deep link in CMS: 1. Edit a layout, hamburger menu, or tab. 2. Using the deep link picker, go to **Reporting > Quotes Report**. 3. Set and save your changes. On the POS app, tap the Quotes Report deep link . By default, the report will show metrics for the current day. Tap the filter icon towards the bottom of the report to specify a date range. At the top of the report, you will see store-level totals for the quote-related metrics. Below the totals, you will find metrics for each associate at the current store, along with their associate ID and associate name. For descriptions and details of each metric shown, refer to the [Metrics](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_quotes_report.htm&release=264.0.0&type=5 "Track created and converted quotes to gain a snapshot of store performance or compare associate metrics.") section. ## Access Quotes Report in Point of Sale CMS View and analyze quote metrics across stores or associates. The report can be accessed in CMS by going to **Store Management > Reporting and Analytics > Quotes Report**. You can filter the report by store ID, associate ID, and date range. Additionally, you have the flexibility to group the search results by store or associate. If the report is grouped by store, it’ll show the data aggregated at the level of each store, allowing you to compare the quote metrics across stores. Likewise, if the report is grouped by associate, it’ll show the quote data aggregated at the associate level. Lastly, you can view merchant-level totals by applying no grouping. ### Metrics These metrics are shown in the report: - **Created**: number of quotes created - **Created Amount**: monetary value of the quotes created - **Converted**: Number of quotes that converted - **Converted Amount**: Monetary value of the quotes that converted Conversion refers to a quote resulting in a sale. The amount of money quoted is reported as gross sales after discounts. This is the product price, adjusted for any discounts, and multiplied by the number of orders for the period. Finally, the metrics reported for quotes created and converted aren't based on a group of quotes. This means that the changed quotes reported for the chosen period aren't always the same quotes that were made in that period. # Access Reconciliation Report on the POS App View key fields from from any of the past seven days in the reconciliation report and print it on a receipt printer. Prerequisites: - Modern POS App Build: 8.7.1 or above - Platform Support: iPhone & iPad - Offline Support: No Not all fields are present in this report and full reconciliation can be done within Retail Cloud CMS. Additionally, allow up to 15 minutes for recent sales to be accurately reflected in the report. To configure a deep link to access the report on the POS app. 1. In CMS, edit a layout or hamburger menu. 2. Using the deep link picker, go to **Store Associate > Reconciliation Report**. 3. Set and save your changes. ![The Reconciliation Report deep link that you select in the Store Associate section in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_store_associate_reconciliation.png) ## Manage the Reconciliation Report in Point of Sale View the report data by selecting the deep link configured in CMS. When the deep link is tapped within the POS app, the associate sees a screen like the one below. ![The Reconciliation Report showing in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_report_reconcililiation_report_app.png) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip For a comprehensive list of all sales-related terminology, please refer to [Sales Reporting Glossary of Terms](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_sales_reporting_glossary.htm&release=264.0.0&type=5 "To understand sales data, use this glossary of terms commonly seen in sales and app reports in Point of Sale.") ### Filtering Report The user may also select any date from the most recent trailing seven days by tapping the calendar at the bottom of the screen, as shown below. ![Filtering the Reconciliation Report in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_reconciliation_report_filtering.png) For app builds 10.5.1 and later, the report can be filtered by order type: - **In Store**: Filters sales metrics for in-store purchases and refunds for in-store returns. - **Endless Aisle**: Filters sales metrics for endless aisle purchases and refunds for returns from endless aisle orders. - **Mixed Cart**: Filters sales metrics for mixed cart purchases and refunds for mixed cart returns. - **Web (BORIS)**: Filters refunds for items returned in-store that were originally purchased online ![Select the Order Type of filters to show in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_filter_type_reconciliation_report.png) ### Printing Report The same data presented on the screen can be printed on the receipt using **Print Report**. The app prints a receipt like the one shown below on the printer connected to the POS app. ![The Reconciliation Report as shown on a printed receipt.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_printing_report.png) ### Known Report Issues and Restrictions - A4 printing of the sales report is not supported on the POS app. - The **Reconciliation Report** receipt is not supported for Fiscal printers. - It can take few seconds to show the updated details on the report screen when after any transaction is done. - **Sales** and **Reconciliation Report** receipts cannot be configured via layouts. Receipt customization can be done in the receipt settings of the selected app config by going to **Modules > POS > Receipt Configuration**. - BORIS return transactions are tracked in the **TLog** and **Electric Journal** reports. However, they are not part of the Reconciliation report. # Access Sales Attribution Reports in Point of Sale Measure sales associate performance, predict commissions, and get a summary of sales and returns attributed to each associate in Point of Sale CMS. Point of Sale's [Associate Sales Attribution](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_track_sales_attribution.htm&release=264.0.0&type=5 "Set sales attribution at either the order level or the item level so associates can get credit for the sales they make and you can track their performance.") report allows merchants to predict commissions and measure performance. This comprehensive report is accessible on both the POS app and CMS. It presents a concise summary of sales and returns attributed to each sales associate, allowing merchants to view insights into their performance. The attributed sales ‌vary from the sales where the associate completed the transaction. ## Configure Sales Attribution Access in Point of Sale Set up Point of Sale CMS to view sales attribution reports and analyze associate performance. ### Viewing Report in CMS 1. Go to **Store Management > Reporting and Analytics > Associate Sales Attribution Report**. 2. Customize the report by specifying the store, sale associate, associate role, and date/time. 3. To see additional details of an associate, select **SA Details** on the right side. ### Configuring Access in POS App 1. Edit a layout or a hamburger menu. 2. Using the deep link picker, go to **Store Associate > Associate Sales Attribution Report**. 3. Set and save the changes. ### Field Descriptions The table lists the fields and their descriptions as seen in the report. For a comprehensive list of all sales-related terminology, see [Sales Reporting Glossary of Terms](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_sales_reporting_glossary.htm&release=264.0.0&type=5 "To understand sales data, use this glossary of terms commonly seen in sales and app reports in Point of Sale.").
Field Descriptions
Net Sales Gross Sales - Discounts - Refunds Excl. Tax
Sales After Discounts

Gross Sales - Discounts

If Value Added Tax (VAT) is enabled for a merchant (Store Management > Store Settings > Tax), VAT taxes are automatically excluded from sales

Refunds Excl. Tax Amount refunded excluding tax
Order Count Number of Sales or Exchange orders completed
Refund Number of total refunded orders (includes return leg of an exchange. Refund count is only for the attributed associate of the original order and not for the associate who completes the refund
Average Order Value (AOV) Sales After Discounts or Order Count
## View Sales Attribution in the POS App See how to view sales attribution reports in the point of sale (POS) app. ### Accessing Report To access the report on the POS app, tap the deep link. The user is directed to a screen showing a list of all associates of the store with their data. ### Customizing Report by Date The report allows date range filtering through the calendar at the bottom. Users can customize the filter by day, week, month, year, or a specific range. There's a maximum limit of 31 days for a specific range. ### View More Details Tapping on an associate will display a detailed breakdown of their stats. If the selected associate has data for multiple stores, the report categorizes their data by store. However, if there's data for only one store, the total summary section won't be displayed. Instead, it only shows the associate's tallies for that specific store. ## Sales Attribution Known Issues and Restrictions Understand performance data discrepancies that can show in Point of Sale CMS. The data (Net Sales, Order Count, Refund, and so on) displayed for an associate on the screen listing all associates sometimes differs from the data shown on the individual associate's screen. This difference happens because the screen listing all associates shows the Net Sales for the store the user is currently signed in to. The detailed screen for a specific associate shows the Net Sales based on their total performance across all stores they have worked in. # Access Site Controls from the Administration App Access the Site Selector, Storefront Preview, and Toolkit controls directly from the Administration app in Business Manager. You no longer need to switch to the Merchant Tools app, making it easier to preview your storefront and complete other site management tasks. **Where:** This change applies to B2C Commerce. #### See Also - [_Salesforce Help_: B2C Commerce Tools](https://help.salesforce.com/s/articleView?id=cc.b2c_demandware_tools.htm&language=en_US) # Access Stripe with Commerce Cloud Payments (Generally Available) Commerce Cloud Payments, also referred to as Commerce Payments, lets brands launch commerce sites with an out-of-the-box payments solution powered by Stripe, a preferred provider. With Commerce Payments, brands can get to market faster and boost conversion rates with checkout experiences that support credit cards, express checkout options such as Apple Pay and Google Pay, and noncard payment methods such as SEPA, iDEAL, and Bancontact, all with integrated fraud protection. You can integrate Commerce Payments, now generally available, with B2C Commerce to begin processing payments quickly through Stripe. Why: Commerce Payments helps brands: - Simplify integration and launch faster with embedded payments - Target fraud with precision - Power a trusted experience at scale How: To use Commerce Payments, contact your Salesforce Account Executive to purchase it. It’s easy to get started. - Build your storefront with SFRA and the plugin\_commercepayments overlay cartridge. - Configure Commerce Payments to associate your Commerce Cloud instances with the Stripe payment platform. - Set up Commerce Payments so you can take storefront payments with the platform Stripe integration.> - Configure payments for a storefront site in a Commerce instance with an associated Stripe account. - Set up and onboard your Stripe account from the Stripe website. For details about getting started and using Commerce Cloud Payments, see resources in [B2C Commerce Infocenter](https://help.salesforce.com/s/articleView?id=cc.b2c_salesforce_payments.htm&type=5&language=en_US) and contact your Salesforce Account Executive # Access the Black Book Feature Access your black book on the POS app by configuring a deep link in CMS. 1. Edit a layout, hamburger menu, or tab. 2. Using the deep link picker, select **Clienteling > Black Book**. 3. Set and save your changes. 4. On the POS app, tap the **Black Book** deep link in the app. The black book screen is where you can see and manage your black books.![The Preferred Client list in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_access_black_book.png) # Access the Change History for Campaigns, Promotions, and Coupons You can now use the change history feature in Business Manager to identify which campaigns, promotions, and coupons have been created, edited, or deleted on a production instance. # Access to a B2B Store Specify which profiles and permission sets can access a store. Create buyer accounts and assign them to buyer groups, or set up self-registration so that customers can create an account and log in on their own. You can also enable guest browsing to allow unauthenticated users to browse the store. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Permission Sets for Buyers, Buyer Managers, and Account Switchers for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.commerce_buyer_and_buyer_mgr_perm_sets.htm&release=264.0.0&type=5)** Manage access to your commerce store's features and data by using the preconfigured permission sets for buyers, buyer managers, and account switchers. - **[Add Profiles and Permissions for B2B Store Community Members](https://help.salesforce.com/s/articleView?id=commerce.comm_assign_comm_membership.htm&release=264.0.0&type=5)** Specify which profiles and permission sets are members of the store community. Only users with profiles or permission sets that are part of a store’s community can access the store. - **[Configure Self-Registration for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_self_registration.htm&release=264.0.0&type=5)** When you enable self-registration, customers can create their own account and then log in to your store using that account instead of browsing as a guest. - **[Secure Buyer Contact Updates with Two-Step Verification](https://help.salesforce.com/s/articleView?id=commerce.comm_two_factor_authentication.htm&release=264.0.0&type=5)** Secure buyer contact updates for a B2B Store with one-time passcodes (OTP). If a shopper changes their email address or phone number, an OTP is first sent to their current email address to confirm their identity. A second OTP is then sent to the new email address or phone number to verify the change. This process ensures that only authorized shoppers can update their contact details. - **[Manage Access to a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_access.htm&release=264.0.0&type=5)** Create buyer accounts directly from the Customer Workspace or use a business account or a person account to create buyers. Add the buyer account to a buyer group. Associate the buyer group with a store. The products and prices buyers can access in the store are determined by the entitlement policies assigned to the buyer group. - **[Manage Guest Access to a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_config_guest_browsing.htm&release=264.0.0&type=5)** A guest is someone who isn’t logged in to your store as an authenticated customer. Depending on the level of access that you provide, guests can browse your store, add products to their cart, and place orders. - **[Buyer Group Extension](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_group_extensibility.htm&release=264.0.0&type=5)** Dynamically assign buyers to buyer groups for a B2B store by using a custom Apex logics. Review the considerations to understand the factors that influence how these assignments take place in your store. # Access to Reporting - Austria Point of Sale reporting data is available at both the company and register levels. This means auditors can easily request and get the required DEP files. Reporting can be accessed at both the company level and the specific register level. ## Company-Level Reporting Data Download In case of an audit in the store, the auditor can request for the DEP File. To download DEP files. 1. Login to EFSTA Dashboard via URL Portal.efsta.net/dashboard. 2. From the home page, select Organizations and make sure that Show Companies is checked. 3. Select the company name, which will open the properties window. 4. Select Data Share and provide the required date range. Then, select Share Data. Upon clicking Share Data, you will see a Link and key. 5. Select Copy key and then select the LINK. You'll be navigated to another window where you can select the download file and enter the key you copied in the last step. 6. Download the following files: Journal archive (JSON) AT Datenerfassungsprotokoll §7 RKSV 7. You will see multiple JSON files downloaded for each register setup in both Austrian stores. Provide these files to the auditor. ## Register Level Reporting Data Download If the auditor requests files for a specific store's registers, then follow the next steps: 1. On the screen, select the EFR number. You'll be able to see a screen where all the registers are listed. 2. Select the icon located in the right-hand corner. 3. Enter the data range for the data you need to download and select SHARE DATA. You will see a URL and Key. Copy the Key and select the URL. 4. You'll be navigated to another tab where you will paste the Key that you copied earlier then select OK. This will download the data for one specific register. ## Register Level Reporting Data Download To identify a store's registers, look for your store ID. ![A store ID and Register](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_register_id.png) # Access to Reporting - France Retrieve required fiscal reports, like FR Journal Archive and FR Fiscal, from the EFSTA portal in Point of Sale CMS for audits in France. In the event of an audit in France, auditors may request specific reports to be made available: - FR Journal Archive - FR Fiscal - FR Grand Totals These reports can be accessed via the EFSTA portal, and each register in the store should have its reports downloaded. Here are the steps for downloading and verifying the reports: ## Downloading Reports To download reports: 1. Log in to EFSTA using Google Auth. 2. After logging in, you'll see the dashboard screen. 3. Select EFR from the left-hand menu. 4. Select your store and register, then select the three dots at the end. 5. Select a date range and select "Share Data." 6. Note the provided password and copy it. You'll need it for the next step. 7. Select the provided LINK. 8. Download the following three files from the dropdown option on the EFSTA portal: - FR Journal Archive (.jou file) - Proof.js utility (can verify FR Fiscal) - Proof.js utility (can verify FR Grand Totals) ## Verifying Reports To verify reports: 1. Download the proof.js file provided on the portal. 2. Place all these downloaded files in one folder named "EFR" under the Downloads section of your Mac. 3. Install Node.js on your local machine (download from [https://nodejs.org/en/download/](https://nodejs.org/en/download/)). 4. Open a terminal window and go to the correct folder by typing "cd ~/Downloads/EFR." 5. To verify the files' presence, type "ls -l," and you should see the files listed. ## Running Verification Commands To run verification commands: 1. Execute the following two commands in the terminal: - node proof.js \*total.xml - node proof.js \*export.xml If you're using a MacBook, you can right-click on the folder containing EFR files and proof.js, then select "New Terminal at Folder." This will take you directly to the correct folder in the terminal. 2. In the terminal window, type the following commands: - node proof.js \*total.xml - node proof.js \*export.xml You should see "Summary OK" for each command, indicating that the files meet the fiscal requirements. ## Running Verification Commands On the EFSTA service portal under the EFR tab, to identify a store's registers, look for your store ID as shown:![Identify your register for French fiscalization](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_identify_register_france.png) # Access to Reporting - Germany Download the Point of Sale merchant’s store register data from the EFSTA portal to share with auditors. If the auditor requests files for a specific store's registers, follow these steps: 1. Log in to your EFSTA portal. 2. On the left-hand side menu, select **Companies** and select your Germany company. 3. Select next the EFR option on the company to see a list of EFRs. 4. The EFRs are listed for each store.![EFRs listed for each German store](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_germany_efrs.png) 5. Select the ellipsis (three horizontal dots) on the right and you'll see a data share option. Enter the date range, select **Share Data**, and you'll see a link and a key. Copy the key and select the URL.![The Data Share option for German companies](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_germany_access_share_data.png) 6. A dropdown for downloading the reports will appear. Download the DE DSFinV-K and DE TSE Export. Enter the key you previously copied to download the file.![Download the reports in the dropdown menu](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_germany_download_reports.png) # Access to Reporting - Portugal Access SAFT-PT files to send them to Portuguese tax authorities monthly. You can download fiscalization reports for each register in a store via Point of Sale CMS. The system is required to generate SAFT-PT files and submit them to the Tax authorities monthly, by the 5th of the following month. [Learn More](https://faturas.portaldasfinancas.gov.pt/home.action) You can access SAFT file downloads for each register in a store through Point of Sale CMS by navigating to **Orders > Downloadable Fiscalization Reports**. # Accessibility Settings Point of Sale's Layout Editor helps ensure your app meets ADA compliance, enhancing accessibility with alternative text and a 75px by 75px touch target. This feature helps businesses serve all customers, including those with disabilities, by adhering to federal standards. ## Check ADA Compliance In the Layout Editor: 1. Enable Check ADA Compliance in the first tab of the toolbar. 2. The cells highlighted in green are compliant, while the red-highlighted cells aren't compliant. 3. Select a red-highlighted cell to see what the compliance issue is. A red check-marked box indicates which is needed ![The Layout Editor highlighting the accessibility information and controls for an image.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_accessibility_info.png) ## Alternative Text For ADA compliance, alternative text must be provided for images, audio files, videos, and all other non-text elements published online. To add alternative text to a cell that contains an image: 1. Select the cell. 2. Enter **Alt Text for ADA**. ## Decorative Cells The screen reader should ignore cell types that are purely decorative (for example, dividers or blank cells). 1. Select the cell. 2. Enable **Does Not Need Alt Text**. ## Quiz Answer Cells Because quiz answer cells have selected and unselected images, each cell should have two alternative texts. 1. Select the quiz answer cell. 2. Enter **Alt Text for ADA.** 3. Enter **Alt Text for ADA (Selected Image)**. ![The Layout Editor displaying two quiz images and the associated alt text.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_accessibility_quiz.png) ## Touch Target Size In addition to having alternative text for non-text cells, compliancy also includes adequate touch target size. Having a touch target too small may hinder the ability to interact with the app for those with disabilities. Clickable cells like deep links and form elements should be at least 75px by 75px. If you select a cell and a red checkbox appears next to the Touch Target, the cell height and width are less than 75 pixels. 1. Select the cell. 2. Set the row height or width to at least 75 pixels. ## Additional Information Information on other aspects of accessibility to consider. ## Color Contrast WCAG2 requires contrast to be a ratio of 4.5:1 for normal text and 3:1 for large text. Images and text that are created in layouts should comply with this standard. For more information, visit [https://webaim.org/resources/contrastchecker/](https://webaim.org/resources/contrastchecker/). ## In-App Web Links When launching a web link inside a Point of Sale iOS app, check that the web page is ADA compliant by its ability to allow the user to pinch to zoom. ## Text Size Text size options aren't configured in the Layout Editor. Rather, they can be adjusted on your Apple device by going to your settings and selecting Accessibility. The POS app will respect the settings by displaying a larger font and boosting the size of the layouts. On the iPad, go to **Settings** > **Accessibility** > **Vision** > **Display and text size**. For information on iPhone accessibility support, see the Apple [Accessibility Support](https://support.apple.com/accessibility) page. ## Resources The Point of Sale ADA compliance guidelines and features were developed in consultation with Mobile Accessibility: How WCAG 2.0 and Other W3C/WAI Guidelines Apply to Mobile [https://www.w3.org/TR/mobile-accessibility-mapping/](https://www.w3.org/TR/mobile-accessibility-mapping/). [Americans with Disabilities Act (ADA)](https://www.ada.gov/) # Accessing EFSTA Fiscal Reports Generate fiscal reports using Point of Sale and EFSTA to sign every transaction with TSE. Point of Sale has partnered with EFSTA to provide TSE (which signs every transaction) and Fiscal reports generation. To obtain access to EFSTA's portal, contact Salesforce Customer Support. 1. Log in to the EFSTA portal ([Portal.efsta.net/dashboard](https://Portal.efsta.net/dashboard)). 2. Select **EFR** in the left menu to access a list of all stores along with their corresponding registers. 3. Identify the specific register for which you need Fiscal Data, and select the three dots located on the right side of that register. This will open a window. 4. In the window, select the ‌date range, and then select **Share Data**. 5. Copy the secret key provided within the window. Select the link at the bottom of the window.![Click Share Data and the Data Link in the ESFTA service portal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_esfta_share_data.png) 6. On the next page, select the required report and download it.![Download the ESFTA report in the Service Portal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_download_esfta_data_report.png) # Accessing Point of Sale CMS Access the Point of Sale Content Management System (CMS) using a custom URL after configuring Azure AD. Merchants use their designated URL slug and environment to reach the CMS. After Azure AD and Point of Sale are set up, the merchant can access the CMS through a special URL. The normal login page using the Google authorization flow is ignored because it won't work for them. The merchant entry point will be in the following format in their respective environments: https://{ENV}.example.com/{MERCHANT\_IDENTIFIER} - ENV - either labs or crm - MERCHANT\_IDENTIFIER - URL slug that represents the company THe URLs that the merchant uses to access the CMS in their respective environments are: - Labs - https://salesforce.com.com/my-company - CRM - https://crm.salesforce.com/my-company # Accessing Reports View inventory counts in Point of Sale CMS by specific store, product search, or inventory bucket. Also, group the report by product ID or variant ID. ## Product Search If configuring the **Product Search** filter, you can select from three options: - **All Products**: filters the report to include all products available in the specific store. - **Product Attribute**: allows you to add and select multiple attributes (for example size, color) to refine the report. You can also specify attribute values (for example, small, green). - **Product Keywords**: provides a free-text search, allowing you to input terms like product titles, product IDs, or variant ID. However, this filter limits the report results to 2,000 records. ## Inventory Bucket The **Inventory Bucket** filter allows you to select an inventory bucket (for example **Returned Items**) and specify a value for it (for example 2). For example, you can configure the filter to show products that have been returned two or more times. ## Group By The **Group By** filter allows you to group the results in the report by product ID or variant ID. ## Grouping by Product ID If the report is grouped by product ID, it displays each product alongside its inventory bucket counts. To change the inventory count or see more information about a product, select the three vertical dots to the right of the product listing. This will take you to more options. Click Edit Inventory to open a window that allows you to adjust the product inventory for the **Floor Demo**, **Not for Sale**, and **Safety Stock** buckets. Select **Product Details** to see more information about a product. This includes the store price, store inventory count, product class, and more. You can also edit the product details by selecting **Edit** at the bottom of the screen. ## Grouping by Variant ID If the report is grouped by variant ID, it displays the inventory for all items within the same variant group, along with their variant group ID. To view individual variants within a group, select the back arrow to access detailed information for each variant. On this page, you can also view product details and adjust inventory buckets by clicking the ellipses, similar to the options available if grouping by product ID. # Account Activation Emails Are Only Sent Once Account activation emails are now only sent once. Previously, these emails were sent daily for seven days. # Account Creation for Guest Checkout in B2B Stores If your B2B store allows guests to purchase products, you can configure whether to create a person or business account for the guest upon checkout. As of Winter ’25, person accounts don’t need to be enabled for B2B store guest checkout. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Whether B2B store guest checkout creates a person or business account depends upon your checkout configuration and if it supports self-registration. ## Self-registration supported If your store allows self-registration, you can specify which account type to create upon registration. See [Allow Self-Registration and Guest Access to the Pay Now Site](https://help.salesforce.com/s/articleView?id=commerce.pay_now_site_perms_activate.htm&type=5&language=en_US). - **Business account creation**: When the account record type for self-registration is set to Business Account. - **Person account creation**: When the account record type for self-registration is set to Person Account. ![Self-registration preferences with Business Account selected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_self_registration_account.png) ## Self-registration not supported If your store doesn’t allow self-registration, you can specify which account type to create by setting the guest buyer profile’s account record type defaults. See [Assign Record Types and Page Layouts in Profiles](https://help.salesforce.com/s/articleView?id=platform.users_profiles_record_types.htm&type=5&language=en_US). If you don’t specify an account type in the guest buyer profile, the account created depends upon whether your store supports person accounts. - **Business account creation**: When either the guest buyer profile has a business account, or the store doesn’t have person accounts enabled. - **Person account creation**: When the guest buyer profile doesn’t have a business account and the store has person accounts enabled. ![Default record type set to Business Account.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_account_default_record.png) ## Considerations for high-scale orders If your store has high-scale orders enabled, you can use duplicate rules to handle any potential duplication of accounts. A duplicate rule defines whether to create a record or update an existing record. Salesforce provides standard duplicate rules for business and person accounts, contacts, and leads. You can also create custom duplicate rules. Any active duplicate rules in your org are considered during the guest checkout account creation process. #### See Also - [Manage Guest Access to a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_config_guest_browsing.htm&release=264.0.0&type=5 "A guest is someone who isn’t logged in to your store as an authenticated customer. Depending on the level of access that you provide, guests can browse your store, add products to their cart, and place orders.") - [Enable Person Accounts for Commerce](https://help.salesforce.com/s/articleView?id=commerce.commerce_enable_person_accounts.htm&release=264.0.0&type=5 "Person accounts are required for D2C stores, which use them to represent shoppers who visit the store and purchase products. Person accounts are optional for B2B stores, which typically use business accounts that include multiple buyers. You can either set up person accounts through the automated process from the Commerce Setup Assistant setup page or manually. This topic describes the steps to use to enable person accounts manually, without using Commerce Setup Assistant.") - [Customize Duplicate Rules](https://help.salesforce.com/s/articleView?id=sales.duplicate_rules_create.htm&type=5&language=en_US) - [Deduplication for High Scale Orders](https://developer.salesforce.com/docs/atlas.en-us.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_high_scale_deduplication.htm) # Account Deep Links Explore a detailed list of Point of Sale account deep links, each with a clear description and supported context. Links include features for account management, orders and deliveries, payment details, and personalization. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.
Deep Link Description Supported Context
Check Permissions Checks for allowed permissions "Hamburger Menu, Layouts"
Delivery

Displays one of the following delivery screens:

  1. List view of past deliveries
  2. List view of the future deliveries
  3. Detail view of the next delivery
"Hamburger Menu, Layout, Tab, Notification"
Forgot Password Displays the 'Forgot Password' screen "Hamburger Menu, Layouts"
My Closet Displays the 'My Closet' screen "Hamburger Menu, Layouts"
Order History Displays the 'Order History' screen "Hamburger Menu, Layouts"
Order Subscription Displays the 'Order Subscription' screen "Hamburger Menu, Layout, Tab, Notification"
Payment Information Displays the payment information screen "Hamburger Menu, Layouts"
Sign In Displays the sign-in screen "Layouts, Hamburger Menu, Tab"
Sign Out Signs out the current user "Hamburger Menu, Layouts"
Sign Up

Displays the signup screen.

Note
Note This deep link should not be used for 'Sign Up Without Auto Login'. Instead, use the layout deep link.
"Layouts, Hamburger Menu, Notification"
Wishlist Displays the wishlist screen "Hamburger Menu, Notification, Tab, Layouts"
# Account Fields The Account object represents an individual shopper. When using person accounts, an account of the Person Account record type represents an individual shopper. When not using person accounts, a standard account and contact together represent an individual shopper. A business account buyer or shopper always has a standard account and a contact. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Account object. | Field Label | Description | | --- | --- | | Account Name | The name of the account. If the account is a person account, the account name is the concatenation of the first name, middle name, last name, and suffix of the associated person contact. | | Account Number | The account number assigned to this account (not the unique, system-generated ID assigned during creation). | | Account Owner | The user who owns the account. | | Account Record Type | The ID of the record type assigned to the account. | | Account Source | The source of the account record, for example, advertisement or trade show. | | Annual Revenue | The estimated annual revenue of the account. | | Assistant | The name of the assistant assigned to the account. | | Asst. Phone | The phone number of the assistant assigned to the account. | | Billing Address | The billing address for the account. | | Birthdate | The birth date of the contact assigned to the account. | | Department | The department the account is assigned to. | | Description | The description of the account. | | Email | The email address for the account. | | Email Opt Out | Indicates whether the account has opted out of email (true) or not (false). | | Employees | The number of employees working at the company represented by the account. | | Fax | The fax number for the account. | | Home Phone | The home phone number for the account’s contact. | | Individual | The ID of the data privacy record associated with the account. | | Industry | The industry associated with the account. | | Lead Source | The lead source for the account. | | Mailing Address | The mailing address for the account. | | Mobile | The mobile phone number for the account | | Other Address | The alternate address for the account. | | Other Phone | The alternate phone number for the account. | | Ownership | The ownership type for the account, for example, private, public, or subsidiary. | | Parent Account | The name of the parent account, if any. | | Phone | The phone number for the account | | Rating | The prospect rating for the account, for example, hot, warm, or cold. | | Shipping Address | The shipping address for the account. | | Title | The title for contact assigned to the account. | #### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Account Manager 1.31 The B2C Commerce Account Manager 1.31 release. ## Release Highlights - In this release, we introduce a new login flow for Account Manager. - **[Account Manager Login Flow](https://help.salesforce.com/s/articleView?id=commerce.account_manager_release1_31_12_w7206555_pd.htm&release=264.0.0&type=5)** Logging into Account Manager is now a two-step process. # Account Manager 1.31.100 The B2C Commerce Account Manager 1.31.100 is available on September 8, 2022. This release delivers: With this Account Manager release we deliver: - Security fixes - Bug fixes # Account Manager 1.31.102 The B2C Commerce Account Manager 1.31.102 is available on October 5, 2022. This release delivers: - Security Fixes - Bug Fixes - Updates to email sent by Account Manager Updates include new messaging and a new format that improve the user email experience. # Account Manager 1.31.104 The B2C Commerce Account Manager 1.31.104 is available on October 26, 2022. This release delivers: - Security Fixes - Bug Fixes - Usability Improvements to the API Client List Page - **[Updated API Client List Page](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_api_client_list_page_je.htm&release=264.0.0&type=5)** With the addition of two new columns and filters, the Account Manager API Client List page is now easier to use. # Account Manager 1.31.108 The B2C Commerce Account Manager 1.31.108 is available on February 8, 2023. This release delivers: - Security Fixes - Bug Fixes - New Error Message - Preventing Org Invites to Deleted Users - New Last Log In Date - **[New Multi-Factor Authentication Error Message](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_error_message_je.htm&release=264.0.0&type=5)** During multi-factor authentication (MFA), when a user tries to Log in with an insecure Device, Account Manager displays the following prescriptive error message: Your log in request can't be completed. Set PIN, pattern or passcode to secure your mobile device and try again. - **[Use the Last Log In Date to Track User Activity](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_last_login_dates_je.htm&release=264.0.0&type=5)** The Account Manager User Detail page now displays the user's last log in date. Admins can use this date to track user activity and identify inactive users. - **[New Account Manager Password Requirements](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_password_requirements_je.htm&release=264.0.0&type=5)** For stronger passwords and better security, The password requirements for Account Manager are changing. - **[Updated Cipher Suite](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_updated_cipher_suite_je.htm&release=264.0.0&type=5)** To increase security Account Manager now supports the following cipher suites: - **[Prevent Org Invitations to Deleted Users](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_prevent_invites_je.htm&release=264.0.0&type=5)** You can no longer add deleted users to an organization. Attempts to add a deleted user returns the following error message: Only enabled users can be invited into an organization. # Account Manager 1.31.111 The B2C Commerce Account Manager 1.31.111 is available on March 8, 2023. This release delivers: - Security Fixes - Bug Fixes - New Error Message - Preventing Org Invites to Deleted Users - New Last Log In Date - **[New Account Manager Password Requirements](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_changing_password_requirements.htm&release=264.0.0&type=5)** For stronger passwords and better security, we're revising password requirements in Account Manager. - **[Add Description of API Clients](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_new_description_fields_for_api_clients.htm&release=264.0.0&type=5)** When configuring API clients, you can now add additional description and details about the API clients. The new description field is limited to 256 characters. - **[New Reminder to Remove Role-Tenant Filters](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_new_reminder_on_user_detail_page.htm&release=264.0.0&type=5)** When you remove an organization from a user detail page, a warning is now displayed as a reminder to remove all role-tenant filters belonging to the organization. If the role-tenant filters are note removed, the user retains access to them. # Account Manager 1.31.112 The B2C Commerce Account Manager 1.31.112 is available on April 5, 2023. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - New Password Requirements - New Warning Message - **[New Account Manager Password Requirements](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_final_password_requirements.htm&release=264.0.0&type=5)** For stronger passwords and better security, we're revising password requirements in Account Manager. - **[New Account Manager Warning Message](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_warning_message_user_purging.htm&release=264.0.0&type=5)** During Account Manager log in, administrators now receive a warning message when their organization has users who have been in a deleted state for 90 days or more. The message includes a reminded to purge those users. To maintain security and compliance, Account Manager users that are in a deleted state are automatically removed after 180 days. # Account Manager 1.31.113 The B2C Commerce Account Manager 1.31.113 is available on May 3, 2023. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - **[Tenant specific Rate Limiting for Account Manager Remote Procedure Call (RPC) Traffic](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_account_manager_remote_procedure_call.htm&release=264.0.0&type=5)** Commerce Cloud Account Manager now enforces a new tenant specific rate limit for RPC traffic. OCAPI Shop and Data API calls generate RPC traffic on a POD. The New rate limit is enforced on a per minute basis. This provides all B2C Commerce users on the same POD an equal share for RPC traffic. # Account Manager 1.31.114 The B2C Commerce Account Manager 1.31.114 is available on May 31, 2023. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates # Account Manager 1.31.115 The B2C Commerce Account Manager 1.31.115 is available on June 28, 2023. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - **[Automatic Removal of Deleted Account Manager Users](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_account_manager_auto_delete_users.htm&release=264.0.0&type=5)** Account Manager users who are in a deleted state are automatically removed after 180 days. - **[Specify Enhanced Domain Names In Account Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_account_manager_enhanced_domain_names.htm&release=264.0.0&type=5)** You can now configure Identity Federation with Salesforce Identity in Account Manager using supported enhanced domain names. You can specify the organization MyDomain subdomain name in Salesforce Core. The default domain suffix is my.salesforce.com. If the identity federation is allowed or enforced, you can change the value. For example, if you use a Salesforce Core sandbox, you can use sandbox.my.salesforce.com as the domain suffix. - **[Switch to JWT Access Tokens](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_account_manager_switch_to_jwt_access_tokens.htm&release=264.0.0&type=5)** Starting Thursday, June 28 2023, Salesforce will no longer support the use of UUID token formats for API Clients in Commerce Cloud Account Manager. New API clients now only support the JWT access token format. # Account Manager 1.31.117 The B2C Commerce Account Manager 1.31.117 is available on July 26, 2023. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - **[Auto Disable Inactive Users](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_auto_disable_inactive_users_release.htm&release=264.0.0&type=5)** Compliance with PCI DSS 8.1.4 requires that Account Manager user accounts are disabled when their accounts are inactive for 90 days. To support compliance with PCI DSS 8.1.4, Account Manager administrators can now set the number of inactive days before an account is disabled. When the setting is enabled, users with inactive accounts receive an email notification 10 days and 1 day before their account is deactivated. To keep an account active, users can log in to any Commerce Cloud application. To enable the setting, in Account Manager > Organization details, activate or deactivate the setting. The setting is disabled by default. - **[New Account Manager Password Requirements for API Client](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_new_account_manager_password_req_api_client.htm&release=264.0.0&type=5)** For stronger passwords and better security, new password requirements are now enforced for Account Manager API Clients. - **[Replace Wildcard Tenant Filter](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_replace_wildcard_tenant_filter.htm&release=264.0.0&type=5)** Starting with the Account Manager 1.31.118 release, the wildcard filter, realm\_\*, isn’t supported and is replaced with this set of filters: # Account Manager 1.31.118 The B2C Commerce Account Manager 1.31.118 is available on August 23, 2023. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - **[End of Support for Wildcard Tenant Filter](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_end_support_wildcard_tenant_filter.htm&release=264.0.0&type=5)** The Account Manager wildcard filter, realm\_\*, is no longer supported and is replaced with this set of filters: - **[Tenant-specific Rate Limiting for Account Manager OAuth Traffic](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_tenant_specific_rate_limit.htm&release=264.0.0&type=5)** Commerce Cloud Account Manager now enforces a new tenant-specific rate limit for OAuth traffic. OCAPI Shop and Data API calls can generate OAuth traffic on a POD. The New rate limit is enforced on a per minute basis. This change provides all B2C Commerce users on the same POD an equal share for OAuth traffic. # Account Manager 1.31.120 The B2C Commerce Account Manager 1.31.120 is available on September 21, 2023. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - **[Email Notification of Changes to Inactive User Settings](https://help.salesforce.com/s/articleView?id=commerce.account_manager_email_notificatin_for_changes_to_inactive_user.htm&release=264.0.0&type=5)** As part of the Auto Disable Inactive Users feature, an email notification is sent to users when the Inactive User settings are activated or deactivated. An email is also sent when the Days Before Deletion settings are changed on the organization detail page. The email is sent to the email address entered in the Contact Users field on the organization detail page. - **[Enable Read Only Account Manager Access](https://help.salesforce.com/s/articleView?id=commerce.account_manager_enable_read_only_account_manager_access.htm&release=264.0.0&type=5)** The Read Only Account Administrator role is now available in Account Manager. The role provides users read-only access to view details about their organization, API clients, and users. The role doesn’t include permissions to make updates. The new role is useful for auditors who want to confirm compliance with their company policies. High-privilege roles such as Account Administrator or API Administrator override the new role. # Account Manager 1.31.123 The B2C Commerce Account Manager 1.31.123 is available on October 4, 2023. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates # Account Manager 1.31.124 The B2C Commerce Account Manager 1.31.124 is available on October 25, 2023. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates # Account Manager 1.31.29 The B2C Commerce Account Manager 1.31.29 release. ## Release Highlights - In this release, we introduce the ability to specify tenant scopes in Account Manager, which support the Salesforce Commerce API. - **[Account Manager Tenant Scope](https://help.salesforce.com/s/articleView?id=commerce.account_manager_release1_31_29_w7606407_pd.htm&release=264.0.0&type=5)** Account Manager can now add scopes (claims) to API clients, enabling them to provide a tenant context as required by the Salesforce Commerce API. # Account Manager 1.31.38 The B2C Commerce Account Manager 1.31.38 release. ## Release Highlights - In this release, we improve the user interface for Multi Factor Authentication (MFA) management, and we improve the validation of API scopes when defining API clients. - **[Improved User Interface for Multi Factor Authentication (MFA) Management](https://help.salesforce.com/s/articleView?id=commerce.account_manager_release1_31_38_w7956991_pd.htm&release=264.0.0&type=5)** We improved the Organization Detail page in two ways. You can now use sliders to set password policy values. And you can easily view which roles have MFA enabled, instead of selecting checkboxes. This user interface is similar to that of the User Detail page. - **[Improved Scope Assignment for API Clients](https://help.salesforce.com/s/articleView?id=commerce.account_manager_release1_31_38_w7957101_pd.htm&release=264.0.0&type=5)** Each API client requires a scope assignment, either a default scope or one or more allowed scopes that you specify. Account Manager now validates your scope assignments before saving the API client. # Account Manager 1.31.44 The B2C Commerce Account Manager 1.31.44 release. - **[Salesforce Identity Integration Supported by Account Manager](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_44_w8095286_salesforce_identity_account_manager_lb.htm&release=264.0.0&type=5)** You can now use Salesforce Identity to log into Account Manager. Salesforce Identity provides a single sign-on (SSO) solution for Salesforce users across all Salesforce clouds. - **[New Multi-Factor Authentication Methods](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_44_w8095473_new_mfauth_methods_lb.htm&release=264.0.0&type=5)** We've added two new multi-factor authentication methods: Webauthn Cross Platform (FIDO2) and TOTP. Account administrators can decide which Multi-Factor Authentication methods they want for their organization. - **[Account Activation Emails Are Only Sent Once](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_44_w8109528_account_activation_sends_once_lb.htm&release=264.0.0&type=5)** Account activation emails are now only sent once. Previously, these emails were sent daily for seven days. # Account Manager 1.31.53 The B2C Commerce Account Manager 1.31.53 release. - **[Role and Tenant Filter No Longer Disappear After Token Renewals](https://help.salesforce.com/s/articleView?id=commerce.accont_manager_rn_1_31_53_w8746632_filters_dont_disappear_lb.htm&release=264.0.0&type=5)** Roles and tenant filter now appropriately display in tokens after a token renewal with refresh\_token. - **[Linking to Salesforce Identity Disabled from Business Manager Screensaver](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_53_w8741112_linking_disabled_screensaver_lb.htm&release=264.0.0&type=5)** You can no longer link Account Manager profiles to Salesforce Identity using the Business Manager Screensaver. This reduces errors or issues during the linking process. - **[Troubleshoot API Clients More Effectively with Improved Error Reporting](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_53_w8743835_api_error_reporting_lb.htm&release=264.0.0&type=5)** When API clients fail to save, more information is now provided to help you understand what went wrong and correct the issue. - **[MFA Verifier Allows Non-Ascii Characters](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_53_w8746479_non_ascii_characters_allowed_lb.htm&release=264.0.0&type=5)** You can now use non-Ascii characters, such as ü, in the MFA Verifier display name. Previously, using these characters prevented user updates. # Account Manager 1.31.60 The B2C Commerce Account Manager 1.31.60 release. - **[Define Users to Receive Security Emails](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_60_w9029342_security_email_list_lb.htm&release=264.0.0&type=5)** Keep your organization secure by defining contact users for security emails. Assigned users receive an email whenever a partner account with administrative permissions is added to your organization. Partner accounts with admin permissions receive admin permissions for all organizations they're part of. For security reasons, we recommend creating a new, non-admin account for users with existing admin permissions. # Account Manager 1.31.67 The B2C Commerce Account Manager 1.31.67 release. - **[Secure Your Organization By Removing Shared Users With Escalated Privileges](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_67_w9348446_permission_escalation_lb.htm&release=264.0.0&type=5)** To prevent privilege escalation, partner accounts in your organization who received administration privileges in another organization are now automatically removed from your organization. Previously, these users would receive admin privileges in your organization. Whenever a partner account receives admin privileges in another organization, any assigned security contacts in your organization receive an email notifying them of the event and whether the user was removed. - **[Change Logs Show Executing User's Email Address](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_67_w9496660_change_log_user_email_lb.htm&release=264.0.0&type=5)** The change log now display the executing user's email address. Change logs can be found on the user detail page, API client detail page, organization detail page, and account information page. - **[Trusted Location for Multi-Factor Authentication Is Now Supported](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_67_w9501525_trusted_location_mfa_lb.htm&release=264.0.0&type=5)** All users can now use the Trusted Location feature when using the Salesforce Authenticator for multi-factor authentication. - **[Passwords Can Only Be Changed Through Self-Service](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_67_w9502313_passwords_changed_self_service_lb.htm&release=264.0.0&type=5)** Passwords can only be changed by a user, through the self-service feature. Administrators can continue to initiate user password resets through the API, but they can't update the password. - **[New Accounts That Remain Inactive Are Purged After 90 days](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_67_w9596425_inactive_user_purge_lb.htm&release=264.0.0&type=5)** New accounts that remain in the status Waiting for Activation for over 90 days are automatically purged. A job runs once a day remove these accounts. # Account Manager 1.31.75 The B2C Commerce Account Manager 1.31.75 release delivers: - Several performance improvements - Security fixes - Migration to a more reliable an improved authentication service for Multi-Factor Authentication - **[Multi-Factor Authentication Options](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_75_w9901601_mfa_options_lb.htm&release=264.0.0&type=5)** The option to exclusively use the Salesforce Authenticator is being replaced with the option to select from a number of different multi-factor authentication (MFA) options. The Salesforce Authenticator is still the default form of authentication. # Account Manager 1.31.77 The B2C Commerce Account Manager 1.31.77 is available on October 26, 2021. This release delivers: - Several performance improvements - Security fixes - Monitoring improvements # Account Manager 1.31.79 The B2C Commerce Account Manager 1.31.79 is available on January 12, 2022. This release delivers: - Security fixes - Bug fixes - Monitoring improvements # Account Manager 1.31.83 The B2C Commerce Account Manager 1.31.83 is available on February 2, 2022. This release delivers: - Security fixes - Bug fixes - Deployment Improvements - A warning message for users logging in without MFA - **[Multi-Factor Authentication Warning Message](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_mfa_warning.htm&release=264.0.0&type=5)** To increase security for our customers, as of February 1, 2022, Salesforce requires all users to use multi-factor authentication (MFA) to access B2C Commerce products, including Account Manager. When logging into Commerce Cloud Account Manager, users who don't use MFA receive a warning message stating that they aren't using MFA. # Account Manager 1.31.88 The B2C Commerce Account Manager 1.31.88 is available on March 2, 2022. This release delivers: - Security fixes - Bug fixes # Account Manager 1.31.90 The B2C Commerce Account Manager 1.31.90 is available on March 30, 2022. This release delivers: - Security Fixes - Bug Fixes - Improved Alerting - Resiliency and Scalability Improvements # Account Manager 1.31.91 The B2C Commerce Account Manager 1.31.91 is available on April 20, 2022. This release delivers: - Security Fixes - Bug Fixes # Account Manager 1.31.93 The B2C Commerce Account Manager 1.31.93 is available on May 18, 2022. This release delivers: - Security Fixes - Bug Fixes # Account Manager 1.31.96 The B2C Commerce Account Manager 1.31.96 is available on June 15, 2022. This release delivers: - Security Fixes - Bug Fixes # Account Manager 1.31.97 The B2C Commerce Account Manager 1.31.97 is available on July 13, 2022. This release delivers: - Security Fixes - Bug Fixes # Account Manager 1.31.99 The B2C Commerce Account Manager 1.31.99 is available on August 10, 2022. This release delivers: - Security Fixes - Bug Fixes - SSO Linking - **[Link Account Manager Account for SSO without MFA](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_mfa_not_required_je.htm&release=264.0.0&type=5)** New Account Manager users can now use using their Account Manager username and password to link their account with Salesforce Identity or a third party IDM (for example, OKTA) for SSO/federation. Previously, users were required to use multi-factor authentication (MFA) to link to Salesforce Identity or a third party IDM for SSO/federation. # Account Manager 1.32.0 The B2C Commerce Account Manager 1.32.0 is available on January 10, 2024. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - **[UUID Tokens Switched to JWT Access Tokens](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_uuid_tokens_switched_to_jwt_access_tokens.htm&release=264.0.0&type=5)** As previously announced in June 2023, Account Manager no longer supports the use of UUID token formats. All new API Clients only support the JWT access token format. # Account Manager 1.32.1 The B2C Commerce Account Manager 1.32.1 is available on February 7, 2024. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - **[Simplified Identity Federation for Existing Users](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_simplified_identity_federation_for_existing_users.htm&release=264.0.0&type=5)** Account Manager now supports automatic activation and linking for new user accounts. This change improves the single sign-on (SSO) user experience by making it simpler and faster. - **[Automate Account Provisioning with Just-In-Time User Provisioning](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_automate_account_provisioning.htm&release=264.0.0&type=5)** The Just-in-time user provisioning setting enables automated account provisioning and linking for new Account Manager user accounts. - **[Invalidate User Session for Improved Security](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_invalidate_user_session_for_improved_security.htm&release=264.0.0&type=5)** To improve security, Account Manager user sessions are invalidated when an account is edited, reset, deleted, or the password is changed. # Account Manager 1.34.0 The B2C Commerce Account Manager 1.34.0 is available on March 6, 2024. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - **[Log in to Account Manager with SSO](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_login_page_for_sso.htm&release=264.0.0&type=5)** The Account Manager login screen now supports Single Sign-On (SSO). This enhancement simplifies the login process for new users. To link their account with Account Manager and get auto-provisioned in Account Manager, new users, who connect to Commerce Cloud with SSO, click **Link for Single Sign-on**. This setup requires that Just-in-time user provisioning is enabled. - **[Security Update for the Audit History Logs](https://help.salesforce.com/s/articleView?id=commerce.account_manager_audit_history_logs_security_updates.htm&release=264.0.0&type=5)** Starting with the 1.34.0 release, the full name and full email address for active audit history users are masked from administrators. Masking occurs when the active user isn’t part of the organization and they’re active in Audit History for a User, Organization, or API Client sessions. Masking is also used when organization users view their audit history on the start page. The mask improves security compliance. # Account Manager 1.35.0 The B2C Commerce Account Manager 1.35.0 is available on April 3, 2024. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates - **[Upcoming Removal of Deprecated Roles in Account Manager](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_upcoming_removal_of_deprecated_roles.htm&release=264.0.0&type=5)** Salesforce is removing deprecated roles from Account Manager. To prevent any disruption in your organization's workflow, ensure you aren’t using the deprecated roles. # Account Manager 1.36.0 The B2C Commerce Account Manager 1.36.0 is available on April 24, 2024. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates # Account Manager 1.38.0 The B2C Commerce Account Manager 1.38.0 is available on May 29, 2024. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates # Account Manager 1.39.0 The B2C Commerce Account Manager 1.39.0 is available on June 19, 2024. This release delivers: - Security Fixes - Bug Fixes - Infrastructure Updates # Account Manager 1.40.0 The B2C Commerce Account Manager 1.40.0 is available on July 17, 2024. This release delivers: - Security Fixes - Bug Fixes # Account Manager 1.41.0 The B2C Commerce Account Manager 1.41.0 is available on August 14, 2024. This release delivers: - Security Fixes - Bug Fixes - **[Improve Administrator Invitation Transparency with User Details](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_improve_admin_invitation_transparency.htm&release=264.0.0&type=5)** We have made an improvement to the email notification process for user invitations in customer Orgs. With the new enhancement, email notifications now include the username of the person inviting a new admin, increasing transparency and aiding in the quick identification of responsible parties. - **[Track API Client Activity with Last Authentication Date](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_track_api_client_last_authentication_date.htm&release=264.0.0&type=5)** The Account Manager API Client Detail page now displays the last authenticated date for API clients. This date represents the last time an API client successfully used valid credentials to acquire an access token. This enhancement allows administrators to monitor API client activity and pinpoint any inactive API clients. As a security best practice, Salesforce recommends disabling API clients that aren’t in use. In our ongoing efforts to enhance security, we’re planning to remove API Clients that haven’t authenticated in the last 6 months. # Account Manager 1.42.0 The B2C Commerce Account Manager 1.42.0 is available on September 4, 2024. This release delivers: - Security Fixes - Bug Fixes # Account Manager 1.43.0 The B2C Commerce Account Manager 1.43.0 is available on September 24, 2024. This release delivers: - Security Fixes - Bug Fixes - **[Upgrade to Introspect Endpoint for Secure Token Management](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_upgrade_to_introspect_endpoint.htm&release=264.0.0&type=5)** Salesforce strongly recommends that you replace the `/tokeninfo` endpoint with the `/dwsso/oauth2/introspect` endpoint. The `/tokeninfo` endpoint requires that the token is passed as a URL parameter. Sensitive information within URLs can be logged in various locations, including the user’s browser, the web server, and any forward or reverse proxy servers between the two endpoints. The `/dwsso/oauth2/introspect` endpoint includes the UUID access token in the request body which isn’t logged or recorded. In addition, only authenticated clients can use this endpoint. As an added level of security, an API client can only introspect its own tokens and can’t share information outside of your organizations. # Account Manager 1.44.0 The B2C Commerce Account Manager 1.44.0 is available on October 23, 2024. This release delivers: - Security Fixes - Bug Fixes - **[Update Your Allow List with New IP Addresses for Account Manager](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_update_ip_addresses.htm&release=264.0.0&type=5)** During the January 2025 release of Account Manager, the IP addresses for traf fic coming to Account Manager will be changed. To make sure ‌service is uninterrupted, we a dvise adding the new IP addresses to your allowlist before this release. After the new IP addresses are in effect, you can then remove the old IP address from the allowlist. Further instructions will be detailed in the January release notes. # Account Manager 1.46.0 The B2C Commerce Account Manager 1.46.0 is available on Feb 12, 2025. This release delivers: - Security Fixes - Bug Fixes - **[Removal Deprecated Role Assignments](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_deprecated_roles.htm&release=264.0.0&type=5)** Salesforce is removing deprecated roles from Account Manager, ensuring a cleaner and more streamlined user experience. This update will not affect the supported roles currently assigned to users, and no action is required from customers. - **[Update Your Allow List with New IP Addresses for Account Manager](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_ip_addresses_updated.htm&release=264.0.0&type=5)** With this release of Account Manager, the IP addresses for traffic coming to Account Manager are now changed. If you have allow listed old IP addresses, you can remove them from the allowlist. # Account Manager 1.46.4 The B2C Commerce Account Manager 1.46.4 is available on March 5, 2025. This release delivers: - Security Fixes - Bug Fixes - **[Purge API Clients from Account Manager](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_purge_api_clients.htm&release=264.0.0&type=5)** Account administrators can now purge an API client after the API Client’s status is set to disabled for seven days. The wait period prevents any unexpected business disruptions caused by an unintentional immediate purge of an API Client. Before the wait period ends, the purge option isn't active. - **[Update OAuth Endpoints](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_tokenendpoint_disabled.htm&release=264.0.0&type=5)** Salesforce has disabled the `/tokeninfo` endpoint in Account Manager. Use the `/dwsso/oauth2/introspect` endpoint for token validation. In addition, Salesforce will deprecate the `/dw/oauth2` endpoint starting June 30th, 2025. Use `/dwsso/oauth2` for OAuth operations to ensure continued secure access. # Account Manager 2.0.5 The B2C Commerce Account Manager 2.0.5 is available on April 2, 2025. This release delivers: - Security Fixes - Bug Fixes - Infrastructure updates - **[Identify Uninvited Account Manager Users with the External User List](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_external_users_list.htm&release=264.0.0&type=5)** You can now use the External User tab in Account Manager to view and manage uninvited users who still have access to your Business Manager instances. Account Manager administrators can decide to either revoke their access or invite them to join your organization. - **[Update Your Account Manager Login Experience](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_am_login_change.htm&release=264.0.0&type=5)** As part of the Account Manager infrastructure upgrade, Salesforce is updating the Uniform URL path and attribute values for the Account Manager login page. This change doesn’t affect the domain name. You can still use https://account.demandware.com/ to access Account Manager. - **[Update OAuth Endpoints](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_oauth_endpoint_disabled.htm&release=264.0.0&type=5)** Salesforce has disabled the `/tokeninfo` endpoint in Account Manager. Use the `/dwsso/oauth2/introspect` endpoint for token validation. # Account Manager 2.1.0 The B2C Commerce Account Manager 2.1.0 is available on May 7, 2025. This release delivers: - Security Fixes - Bug Fixes - Infrastructure updates ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note As part of the 2.0.5 release, we added the External User List. You can use the External User tab in Account Manager to view and manage uninvited users who still have access to your Business Manager instances. Account Manager administrators can decide to either revoke their access or invite them to join your organization. #### See Also - [Identify Uninvited Account Manager Users with the External User List](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_external_users_list.htm&type=5&language=en_US) # Account Manager 2.2.0 The B2C Commerce Account Manager 2.2.0 is available on June 4, 2025. This release delivers: - Security Fixes - Bug Fixes - Infrastructure updates ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note As part of the 2.0.5 release, we added the External User List. You can use the External User tab in Account Manager to view and manage uninvited users who still have access to your Business Manager instances. Account Manager administrators can decide to either revoke their access or invite them to join your organization. #### See Also - [Identify Uninvited Account Manager Users with the External User List](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_external_users_list.htm&type=5&language=en_US) # Account Manager 2026 Deployment Schedule Interested in when the next release is coming? The B2C Commerce Account Manager Deployment Schedule lists all of the planned release dates for 2026. B2C Commerce Account Manager deployment dates are subject to change but typically take place according to the following schedule. B2C Commerce Account Manager 2026 Deployment Schedule | Deployment Dates | Deployment Time | | --- | --- | | January 14 (Wed) | 6:00 UTC - 8:00 UTC | | February 11 (Wed) | 6:00 UTC - 8:00 UTC | | March 11 (Wed) | 6:00 UTC - 8:00 UTC | | April 8 (Wed) | 5:00 UTC - 7:00 UTC | | May 6(Wed) | 5:00 UTC - 7:00 UTC | | June 3 (Wed) | 5:00 UTC - 7:00 UTC | | July 1 (Wed) | 5:00 UTC - 7:00 UTC | | July 29 (Wed) | 5:00 UTC - 7:00 UTC | | August 26 (Wed) | 5:00 UTC - 7:00 UTC | | September 23 (Wed) | 5:00 UTC - 7:00 UTC | | October 21 (Wed) | 5:00 UTC - 7:00 UTC | We update these dates as soon as we’re aware of changes. # Account Manager 3.0 The B2C Commerce Account Manager 3.0 is available on August 27, 2025. This release delivers: - Security Fixes - Bug Fixes - Infrastructure updates - **[Use the Simplified Account Manager Login Screen Flow](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_am_login_flow.htm&release=264.0.0&type=5)** As part of the Account Manager infrastructure upgrade, Salesforce is simplifying the Account Manager login screen flow. Updates include changes to the forgotten password link location, Multi-Factor Authentication (MFA) verification, and Salesforce Identity Management (SFIDM) redirect steps. - **[Update Your Account Manager Login Experience](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_am_login_update.htm&release=264.0.0&type=5)** As part of the Account Manager infrastructure upgrade, Salesforce is updating the Uniform URL path and attribute values for the Account Manager login page. This change doesn’t affect the domain name. You can still use https://account.demandware.com/ to access Account Manager. # Account Manager 3.1 The B2C Commerce Account Manager 3.1 is available on September 24, 2025. This release delivers: - Security Fixes - Bug Fixes - Infrastructure updates - **[Create Multiple User Accounts with Subaddressing](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_subaddressing.htm&release=264.0.0&type=5)** Use a single email inbox for multiple user accounts and assign specific roles based on the subaddress. Enhance security and simplify partner management by creating customer-specific subaddresses with limited roles, giving partners a single email inbox with distinct, traceable accounts for each customer relationship. You can also create separate user accounts for different functions, such as development, testing, and administration. Before setting up this feature, confirm that your email provider supports email subaddresses. - **[Disable Inactive Users by Default](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_inactive_users.htm&release=264.0.0&type=5)** To improve security, new Account Manager organizations now disable inactive user accounts after 90 days by default. You can turn this setting off or adjust the number of inactive days before an account is disabled in Account Manager Organization settings. # Account Manager 3.3 The B2C Commerce Account Manager 3.3 is available on October 22, 2025. This release delivers: - Security Fixes - Bug Fixes - Infrastructure updates - **[Improve Security and Authentication Success with API Client Public Key Validation](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_public_key_validation.htm&release=264.0.0&type=5)** Account Manager now verifies the Client JSON Web Token (JWT) Bearer Public Key field in API client configurations to prevent authentication failures and improve system security. You can input a PEM-formatted certificate or a Base64-encoded RSA public key (for B2C Commerce only), with or without headers. The system checks for correct formatting and valid cryptographic material. You can still create API clients without JWT public keys if public keys aren’t needed for your use case. - **[Gain Visibility into Instance Filters for All User Accounts](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_instance_filters.htm&release=264.0.0&type=5)** All users can view the instance filters that are applied to their Account Manager user roles in their account profile. Instance filters limit a role's scope to specific Business Manager instances. Previously, this information was visible only to account administrators. - **[Ensure Account Access with One-Time Passwords as Multi-Factor Authentication Fallback](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_mfa_fallback.htm&release=264.0.0&type=5)** If service issues prevent the use of multi-factor authentication (MFA), you can log in using a time-based one-time password (TOTP) from a registered authenticator app. This fallback option ensures that you maintain access to B2C Commerce applications and works with your registered Salesforce or third-party party authenticator apps. To use this fallback option, make sure that you register at least one authenticator app that supports TOTP. # Account Manager 3.4 The B2C Commerce Account Manager 3.4 is available on January 14, 2026. This release delivers: - Security Fixes - Bug Fixes - Infrastructure updates - **[Delegate User Management with the User Administrator Role](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_am_user_administrator.htm&release=264.0.0&type=5)** Secure your organization by granting the new User Administrator role to support staff who manage user accounts. This role permits users to add, invite, and delete users, reset passwords, and manage organization assignments without full administrative access. This least-privilege approach improves security and compliance by only giving users the permissions necessary for their specific duties. # Account Manager 3.5 The B2C Commerce Account Manager 3.5 is available on February 11, 2026. This release delivers: - Security Fixes - Bug Fixes - Infrastructure updates # Account Manager Login Flow Logging into Account Manager is now a two-step process. Previously, when you logged into Account Manager, you provided your username and password on one page. Now, you follow a two-step process. In the first step you enter your login name on one page, and in the second step you provide your password. # Account Manager Release Notes Check out the latest features and updates from B2C Commerce Account Manager. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Starting with release 3.6, find Account Manager release notes in the [Salesforce Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_account_manager.htm&language=en_US). - **[Account Manager 2026 Deployment Schedule](https://help.salesforce.com/s/articleView?id=commerce.account_manager_deploy_schedule_2026.htm&release=264.0.0&type=5)** Interested in when the next release is coming? The B2C Commerce Account Manager Deployment Schedule lists all of the planned release dates for 2026. - **[Account Manager 3.5](https://help.salesforce.com/s/articleView?id=commerce.account_manager_3_5_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 3.5 is available on February 11, 2026. This release delivers: - **[Account Manager 3.4](https://help.salesforce.com/s/articleView?id=commerce.account_manager_3_4_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 3.4 is available on January 14, 2026. This release delivers: - **[Account Manager 3.3](https://help.salesforce.com/s/articleView?id=commerce.account_manager_3_3_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 3.3 is available on October 22, 2025. This release delivers: - **[Account Manager 3.1](https://help.salesforce.com/s/articleView?id=commerce.account_manager_3_1_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 3.1 is available on September 24, 2025. This release delivers: - **[Account Manager 3.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_3_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 3.0 is available on August 27, 2025. This release delivers: - **[Account Manager 2.2.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_2_2_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 2.2.0 is available on June 4, 2025. This release delivers: - **[Account Manager 2.1.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_2_1_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 2.1.0 is available on May 7, 2025. This release delivers: - **[Account Manager 2.0.5](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_2_0_5_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 2.0.5 is available on April 2, 2025. This release delivers: - **[Account Manager 1.46.4](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_46_4_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.46.4 is available on March 5, 2025. This release delivers: - **[Account Manager 1.46.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_46_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.46.0 is available on Feb 12, 2025. This release delivers: - **[Account Manager 1.44.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_44_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.44.0 is available on October 23, 2024. This release delivers: - **[Account Manager 1.43.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_43_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.43.0 is available on September 24, 2024. This release delivers: - **[Account Manager 1.42.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_42_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.42.0 is available on September 4, 2024. This release delivers: - **[Account Manager 1.41.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_41_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.41.0 is available on August 14, 2024. This release delivers: - **[Account Manager 1.40.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_40_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.40.0 is available on July 17, 2024. This release delivers: - **[Account Manager 1.39.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_39_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.39.0 is available on June 19, 2024. This release delivers: - **[Account Manager 1.38.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_38_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.38.0 is available on May 29, 2024. This release delivers: - **[Account Manager 1.36.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_36_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.36.0 is available on April 24, 2024. This release delivers: - **[Account Manager 1.35.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_35_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.35.0 is available on April 3, 2024. This release delivers: - **[Account Manager 1.34.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_34_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.34.0 is available on March 6, 2024. This release delivers: - **[Account Manager 1.32.1](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_32_1_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.32.1 is available on February 7, 2024. This release delivers: - **[Account Manager 1.32.0](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_32_0_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.32.0 is available on January 10, 2024. This release delivers: - **[Account Manager 1.31.124](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_124_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.124 is available on October 25, 2023. This release delivers: - **[Account Manager 1.31.123](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_123_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.123 is available on October 4, 2023. This release delivers: - **[Account Manager 1.31.120](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_120_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.120 is available on September 21, 2023. This release delivers: - **[Account Manager 1.31.118](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_118_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.118 is available on August 23, 2023. This release delivers: - **[Account Manager 1.31.117](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_117_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.117 is available on July 26, 2023. This release delivers: - **[Account Manager 1.31.115](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_115_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.115 is available on June 28, 2023. This release delivers: - **[Account Manager 1.31.114](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_114_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.114 is available on May 31, 2023. This release delivers: - **[Account Manager 1.31.113](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_113_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.113 is available on May 3, 2023. This release delivers: - **[Account Manager 1.31.112](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_112_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.112 is available on April 5, 2023. This release delivers: - **[Account Manager 1.31.111](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_111_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.111 is available on March 8, 2023. This release delivers: - **[Account Manager Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_account_manager_release_notes_archive.htm&release=264.0.0&type=5)** Review the features and updates from past B2C Commerce Account Manager releases. # Account Manager Release Notes Archive Review the features and updates from past B2C Commerce Account Manager releases. - **[Multi-Factor Authentication for all Account Manager Users](https://help.salesforce.com/s/articleView?id=commerce.account_manager_mfa_enforcement.htm&release=264.0.0&type=5)** Starting May 1, 2022 and continuing on a rolling basis through the end of May, Salesforce will enable and enforce MFA for all users who login in directly to B2C Commerce applications. - **[Account Manager 1.31.108](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_106_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.108 is available on February 8, 2023. This release delivers: - **[Account Manager 1.31.104](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_104_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.104 is available on October 26, 2022. This release delivers: - **[Account Manager 1.31.102](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_102_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.102 is available on October 5, 2022. This release delivers: - **[Account Manager 1.31.100](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_100_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.100 is available on September 8, 2022. This release delivers: - **[Account Manager 1.31.99](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_99_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.99 is available on August 10, 2022. This release delivers: - **[Account Manager 1.31.97](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_97_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.97 is available on July 13, 2022. This release delivers: - **[Account Manager 1.31.96](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_96_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.96 is available on June 15, 2022. This release delivers: - **[Account Manager 1.31.93](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_93_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.93 is available on May 18, 2022. This release delivers: - **[Account Manager 1.31.91](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_91_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.91 is available on April 20, 2022. This release delivers: - **[Account Manager 1.31.90](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_90_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.90 is available on March 30, 2022. This release delivers: - **[Account Manager 1.31.88](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_88_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.88 is available on March 2, 2022. This release delivers: - **[Account Manager 1.31.83](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_83_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.83 is available on February 2, 2022. This release delivers: - **[Account Manager 1.31.79](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_79_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.79 is available on January 12, 2022. This release delivers: - **[Account Manager 1.31.77](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_77_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.77 is available on October 26, 2021. This release delivers: - **[Account Manager 1.31.75](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_675_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.75 release delivers: - **[Account Manager 1.31.67](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_67_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.67 release. - **[Account Manager 1.31.60](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_60_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.60 release. - **[Account Manager 1.31.53](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_53_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.53 release. - **[Account Manager 1.31.44](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_44_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.44 release. - **[Account Manager 1.31.38](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_38_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.38 release. - **[Account Manager 1.31.29](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_29_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31.29 release. - **[Account Manager 1.31](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_1_31_12_release.htm&release=264.0.0&type=5)** The B2C Commerce Account Manager 1.31 release. # Account Manager Tenant Scope Account Manager can now add scopes (claims) to API clients, enabling them to provide a tenant context as required by the Salesforce Commerce API. Depending on the specific service, if API endpoints require privileged access permissions, Account Manager also provides a role context. # Account Objects Learn about the Account objects and fields available for reporting in Order Management. - **[Account Fields](https://help.salesforce.com/s/articleView?id=commerce.om_account_fields.htm&release=264.0.0&type=5)** The Account object represents an individual shopper. When using person accounts, an account of the Person Account record type represents an individual shopper. When not using person accounts, a standard account and contact together represent an individual shopper. A business account buyer or shopper always has a standard account and a contact. - **[Address Fields](https://help.salesforce.com/s/articleView?id=commerce.om_address_fields.htm&release=264.0.0&type=5)** The Address object represents a mailing, billing, or home address. - **[Contact Fields](https://help.salesforce.com/s/articleView?id=commerce.om_contact_fields.htm&release=264.0.0&type=5)** The Contact object is used with the Account object to represent an individual shopper. When not using person accounts, a contact and standard account together represent an individual shopper. When using person accounts, contacts aren’t used for individual shoppers. A business account buyer or shopper always has a contact and a standard account. # Activate and Register Point of Sale App Activate your iOS device and install it as in-store register. First, download the TestFlight and Point of Sale (POS) apps on your iOS device. Prerequisites: - CMS Access - iOS Device (iPad) - TestFlight and Point of Sale apps downloaded on your iOS device - TestFlight account 1. On your iOS device, download the latest build via TestFlight. After the build appears on your device’s home screen, open the POS app. 2. Scan the remote registration QR code using your device’s camera. To access the QR code, in CMS, go to **Store Management** | **Activate App**. You can choose to scan by merchant environment or by a specific store. A login screen with the Salesforce logo opens. ![The QR code to scan to activate the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_store_management_activate_app.png) 3. Rapidly tap the upper right-hand corner of the screen until a menu pops up. 4. Make note of the Installation Device ID right below Switch configuration. This number is unique to your device. Keep this number readily available because you need it for CMS configuration verifications.\[The installation device ID under Switch Configuration\] verifications.![The installation device ID under Switch Configuration](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_switch_config.png) 5. In CMS, go to the Registers page through either of these options: ![The register creation icon in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_register_pos_app.png) - **Store Management** | **Stores**. Search for your store and select the register icon. - **Store Management** | **Stores** | **Registers**. 6. Click **Create**. Set your Register ID to whatever you like, but make sure that it's unique and easily identifiable. 7. Select a register installation option: - To autopopulate your device’s Installation ID and allow remote activation, turn on **Remote Installation Registration** and then **Automatically Set Register to Active on Remote Activation**. - To install manually, enter or select your Installation Device ID and then turn on **Register is Activated**. 8. Set Cash Drawer Mode to **Disconnected Cash Drawer** (appears as **EXTERNAL\_CASH\_MODE**), and set Till Management ‌to **Automated** (appears as **AUTO**). You can leave everything else as is. 9. Go back to your iOS device and reset the POS App. 10. Scan the remote registration QR Code again. This QR Code is also on the Registers page in Store Management. 11. From the Saleforce login page, rapidly tap the upper right-hand corner of the screen to bring up the menu popup again. Flip the switch to **STAGE**, enter in the token from your App Config, and select **Apply**. The app token can be found in the CMS by going to **Apps** | **All**. The token is listed under the App Config. You are prompted to scan the QR code again. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If you switch a register from one region to another, relaunch the app. 12. If you have created Store Associate credentials, enter them here. # Activate Omnichannel Inventory Inventory availability in your store is only considered when the inventory integration is configured and turned on. 1. On your store’s home page, click the **Administration** tile. 2. In the navigation menu, select **Inventory**. 3. Confirm inventory provider settings. 4. To turn on the inventory service, click **Turn On**. If the button is disabled and you see an error message, you don't have field-level security to turn on the inventory service. # Activate or Deactivate a Synonym Rule in B2B Store Turn synonym rules on or off temporarily to adjust the search behavior without deleting them. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Synonym Rules**. 3. Locate the rule that you want to activate or deactivate. 4. Turn off or turn on the **Active** switch for the rule. Deactivated rules remain in your list but don't affect search results. #### See Also - [Synonym Rules for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_search_synonym_rules_for_b2b_stores.htm&release=264.0.0&type=5 "Synonym rules define relationships between different search terms that buyers use to describe the same product. Buyers often search using everyday language rather than your exact catalog terms. By mapping alternate words to your catalog terminology, synonym rules ensure searches return relevant results and make products easier to discover. Configure one-way rules for targeted mappings or two-way rules for fully interchangeable terms. For example, a one-way rule allows a search for “sofa” to return products named “couch”, while a two-way rule ensures searches for either term return results for both.") - [Create a Synonym Rule for B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_create_synonym_rules.htm&release=264.0.0&type=5 "Define one-way or two-way relationships to map buyer search words to your catalog data. Connect alternate phrasing, informal words, or regional terms to your exact product names to make sure that buyers find relevant products even when they use search terms that don’t exactly match your catalog.") - [Edit or Delete a Synonym Rule in B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_edit_delete_synonym_rules.htm&release=264.0.0&type=5 "Modify existing synonym rules or remove rules that no longer apply to your current catalog.") # Activate the Exchanges with RMA Flow Template The Exchanges RMA flow lets a customer service representative create even, uneven, and post-fulfillment exchanges. To use the flow, copy and activate the flow template, and then clone or customize the flow as needed. ### Required Editions
View supported editions.
Previous step: [Set Up Prerequisites for Exchanges RMA](https://help.salesforce.com/s/articleView?id=commerce.om_complete_prereq_exchanges_rma.htm&release=264.0.0&type=5 "There are a few prerequisites necessary before you can set up Exchanges with RMA for your org.") See all steps in [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns."). 1. From Setup, in the Quick Find box, search for and select **Flows**. 2. Click **New Flow**, click **Use a Template**, and click **Next**. 3. Select **Exchanges with RMA Returns** and click **Create**. 4. Click **Save**. 5. For Flow Label, enter a unique name. 6. Click **Save**. 7. Click **Activate**. Next step: [Configure Flow for Exchanges with RMA](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_flow_ensure_funds_refunds.htm&release=264.0.0&type=5 "Exchanges with RMA support both EnsureFunds and EnsureRefunds. These variables must be configured properly in your org.") #### See Also - [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns.") - [Exchanges with RMA Returns Overview](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_overview.htm&release=264.0.0&type=5 "An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer.") # Activate the Integration Activate the integration and start using Omnichannel Inventory with your B2C Commerce storefront. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_important.png) Important Don’t begin this process until you verify that the initial import of inventory data into Omnichannel Inventory is complete. Use the importStatusLink API endpoint to check the import status. 1. In Business Manager, navigate to **Administration** | **Operations** | **OCI Integration**. 2. In the Omnichannel Inventory Integration Status section, click **OCI Cache Enabled**. B2C Commerce changes to OCI Cache Enabled inventory mode. 3. The Cache Status table begins populating with inventory data. Wait for data to appear for all inventory lists associated with locations and location groups. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note Normally, the cache requires at least one overnight data import to fully populate. For information on how the cache is populated, see [Omnichannel Inventory Data Synchronization](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/inventory/b2c_omnichannel_inventory_data_synchronization.html) in the B2C Commerce Infocenter. 4. Verify that availability data in B2C Commerce matches the data in Omnichannel Inventory. To view B2C Commerce inventory data in Business Manager: 1. Verify that availability data in B2C Commerce matches the data in Omnichannel Inventory. To view B2C Commerce inventory data in Business Manager: 2. Select an inventory list. 3. Select the **Records** tab for that list, and search for individual products. To review all the products in the list, leave the search field empty, and click **Find**. 4. Select a product. The **General** tab shows the internal B2C Commerce availability data and the cached Omnichannel Inventory data for that product. Verify that the cached data matches the data in Omnichannel Inventory. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note Remember that in the OCI Future values, the Quantity is the sum of all future quantities for the product and the date is the date of the earliest future restock. 5. Repeat the steps for each inventory list and product. 5. After you verify that all the Omnichannel Inventory data is in the cache, you can activate the integration. We recommend that you minimize the risk of overselling during the activation by taking one or more of these actions: 1. Activate the integration during a quiet business time when you expect few incoming orders. 2. Take your storefront offline temporarily while you activate the integration. 3. Before activating the integration, export all orders that already have reserved inventory. 6. Navigate to **Administration** | **Operations** | **OCI Integration**. 7. In the Omnichannel Inventory Integration Status section, click **Omnichannel Inventory**. B2C Commerce changes to Omnichannel Inventory mode. Now B2C Commerce uses the cache for all availability data and sends inventory reservations to Omnichannel Inventory. Individual inventory records in B2C Commerce are read-only. 8. Verify that everything works properly. 9. Start following regular processes for importing inventory data into Omnichannel Inventory. 10. Stop the processes that import inventory data directly into B2C Commerce. Continuing to run them produces warning logs, but doesn’t overwrite the Omnichannel Inventory data cache. # Activate the Order on Behalf Of Flow Template The Order on Behalf Of flow lets a customer service representative use OOBO or Order Entry to create an order on behalf of a customer. To use the flow, copy and activate the flow template, and then customize the flow as needed. ### Required Editions
View supported editions.
Previous step: [Webstores for Order on Behalf Of (Optional, B2C OOBO Only)](https://help.salesforce.com/s/articleView?id=commerce.om_webstores_for_oobo_b2c.htm&release=264.0.0&type=5 "To create orders that aren’t already being pulled in from a storefront through integration, create a webstore. If you’re using B2B Commerce or D2C Commerce, your webstores are already configured.") See all steps in [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization."). 1. From Setup, in the Quick Find box, search for and select **Flows**. 2. Click **New Flow**, click **Use a Template**, and click **Next**. 3. Select **Order on Behalf Of Flow** and click **Create**. 4. Click **Save**. 5. For Flow Label, enter a unique name. 6. Click **Save**. 7. Click **Activate**. Next step: [Add the Order on Behalf Of Flow to an Object Page](https://help.salesforce.com/s/articleView?id=commerce.om_add_oobo_flow_object_page_oobo.htm&release=264.0.0&type=5 "Give users easy access to the Order on Behalf Of flow by adding it to the Actions & Recommendations component on a Lightning page for an object. Because all orders are associated with an account, add the flow to the Actions and Recommendations component on the account page.") #### See Also - [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.") - [Video: Order on Behalf Of Setup](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2) # Activate Your Store Activating your B2B store makes it available to customers and accessible to external services and online search engines. Activating the store also publishes it. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before you go live to customers, configure a custom domain and CDN to optimize security, scalability, and performance. See [Configure a Custom Domain and CDN](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_cdn_and_custom_domains.htm&release=264.0.0&type=5 "For B2B stores created with the LWR template, if you prefer a branded URL or a URL without my.site.com, connect your store to a domain. Connecting the store to a domain automatically enables the Salesforce content delivery network (CDN) partner. You can use a single custom domain for multiple Commerce stores. A Salesforce admin typically configures the custom domain.") and [Use a Custom URL for Your Store](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_url.htm&release=264.0.0&type=5 "The default URL for a Commerce store includes a temporary path you specified when creating the store. The default URL is suitable for testing pre-production stores during development. However, before you launch a B2B store created with an LWR template into live production, we recommend that you configure a custom URL for the store. Associate the custom URL with a custom domain served by the Salesforce CDN, with Cloudflare as the CDN partner. For B2B stores created with an Aura template, a custom URL is optional. However, we recommend using a custom domain and corresponding CDN if broad access and high security are required."). Use the Digital Experiences app to change the domain for the public channel associated with the store’s CMS workspace. Make the domain match the domain that you configure for your store. See [Configure the Salesforce CDN for Salesforce CMS](https://help.salesforce.com/s/articleView?id=xcloud.cms_channel_enable_cdn.htm&type=5&language=en_US). 1. (Optional) When you activate your store, registered customers receive a welcome email. If you want, disable the welcome email before activating. See [Disable the Welcome Email for Your B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_disable_welcome_email.htm&release=264.0.0&type=5 "When you activate your store, all members of the site receive a welcome email. You can turn off this feature before you activate so that the email isn’t sent."). 2. In the navigation sidebar, select a store from the **Store** dropdown. 3. Select **Settings** | **Store**, and then click **Store Activation**. 4. Click **Activate**. #### See Also - [Disable the Welcome Email for Your B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_disable_welcome_email.htm&release=264.0.0&type=5 "When you activate your store, all members of the site receive a welcome email. You can turn off this feature before you activate so that the email isn’t sent.") - [Deactivate Your B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_deactivate_store.htm&release=264.0.0&type=5 "Deactivating your store makes it inaccessible to customers. Deactivate only when you want to temporarily or permanently bring down the store.") - [Publication and Activation](https://help.salesforce.com/s/articleView?id=commerce.comm_publish_activate.htm&release=264.0.0&type=5 "When you’ve previewed your pages and are ready to start selling, it’s time to make your B2B Commerce store available to your customers. First, configure a custom domain and CDN. Assign the store a custom URL. Then publish the store and activate it.") - [Configure a Custom Domain and CDN](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_cdn_and_custom_domains.htm&release=264.0.0&type=5 "For B2B stores created with the LWR template, if you prefer a branded URL or a URL without my.site.com, connect your store to a domain. Connecting the store to a domain automatically enables the Salesforce content delivery network (CDN) partner. You can use a single custom domain for multiple Commerce stores. A Salesforce admin typically configures the custom domain.") - [Use a Custom URL for Your Store](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_url.htm&release=264.0.0&type=5 "The default URL for a Commerce store includes a temporary path you specified when creating the store. The default URL is suitable for testing pre-production stores during development. However, before you launch a B2B store created with an LWR template into live production, we recommend that you configure a custom URL for the store. Associate the custom URL with a custom domain served by the Salesforce CDN, with Cloudflare as the CDN partner. For B2B stores created with an Aura template, a custom URL is optional. However, we recommend using a custom domain and corresponding CDN if broad access and high security are required.") - [Configure Store Language, Currency, and Tax](https://help.salesforce.com/s/articleView?id=commerce.comm_create_international_store.htm&release=264.0.0&type=5 "Make sure that the language, currency, and tax settings are configured correctly to sell around the world.") # Activating the Point of Sale App Scan a QR code to turn on the POS app on your device for the first time. Make sure you have CMS environment access and a POS device with the TestFlight app installed. Before proceeding, make sure you have these requirements: - CMS environment access ([Staging](https://labs.predictspring.com/), [Dev,](https://devcrm.predictspring.com/) [Prod](https://crm.predictspring.com/)) - [Supported POS device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - [Supported POS Device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") For setting up the first time, make sure that you have a POS device and CMS screen (pulled up on a laptop or desktop) on hand. After you've downloaded the latest build via TestFlight, you can open the POS app. Make note of which POS app version (8.4.1, 8.1.1, and so on). Know which environment you want to turn on your app in (Staging, Dev, Prod). Using your device's camera, you'll be prompted to scan the QR code based on the app version. The code can be found by: 1. Go to your CMS environment of choice. 2. Go to **Store Management > Activate App**. 3. Expand the appropriate QR Code by clicking + to the right.![Access the QR code to activate the Point of Sale app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_activate_pos_app.png) 4. For Staging and Dev, that there are two QR Codes (for Prod, there's only one regardless of app version). If your app version is older (8.1.1 or older) scan a different QR Code than if your app version is greater than 8.1.1 (for example 8.4.1). Carefully read the labels before scanning.![A QR code for legacy POS app version](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_legacy_qr_code.png) 5. After scanning the code, a screen appears where you enter a token from the app config. The token can be found under the app config by CMS by going to **Apps > All**. 6. Select the edit icon to enter a token if it isn't set as shown. 1. List of apps on CMS app.![List of Apps on the CMS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_apps_list.png) 2. Enter Token in the respective field to be use for POS app activation.![The token used to activate the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_activation_token.png) 7. After you've entered a token, you'll be directed to the login screen. 1. For app builds less than 9.0.1, you have the option to either log in or enter the store. ![Log in to the POS app or tap Enter Store](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_app_enter_store.png) 2. Some POS actions don’t require you to log in and tap "Enter Store" to complete them. Other, such as reconciling tills, fulfilling BORIS/BOPIS orders, are limited until you log in. For app builds 9.0.1 and later, enter your login credentials to interact with the POS app. After the initial login, you can be logged out if the [app timeouts](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_app_timeouts.htm&release=264.0.0&type=5 "Configure timeout sessions in the Point of Sale (POS) app to automatically log out users after a period of inactivity, enhancing security. Specify timeouts for cart items to clear abandoned carts, store associate logins to protect sensitive data, and customer profile logins to maintain privacy. Adjusting these settings helps maintain security and manage cart contents efficiently.") but still have limited access. To have full access to the POS app, log in again. # Ad Hoc Coupon Line Items Aren't Flagged Erroneously When a shopper adds an ad hoc coupon to a cart, "Invalid Coupon" no longer shows and the shopper can complete their purchase. # Add a B2B Store to an Existing Experience Cloud Site Reuse your Exprerience Cloud site’s domain, settings, branding, and styling to maintain a consistent look and feel. The site template, pages, components, and navigation stay the same. After you add the store, you can design your commerce experience using your commerce pages and components. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) You can add a B2B store to an existing site using these templates. You can’t add a store to a custom template. | B2B | D2C | | --- | --- | | B2B (Aura) | D2C (LWR) | | B2B (LWR) | Pay Now (LWR) | | B2B Reorder Portal (LWR) |   | | CPT (Aura) |   | | Starter (Aura) |   | | Pay Now (LWR) |   | 1. Click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter and select **Stores**. 3. Click **Create a Store on Existing Site**. 4. Create a B2B store. Your options depend on which licenses you have. 5. Enter a name for your store, and click **Next**. When naming your store: - Don’t include an apostrophe in the store name. - If you’re creating more than one store, differentiate the beginning of each store name by business unit, region, and so on. - Keep it short. Names are truncated in the global header dropdown menu. Users can see up to 32 characters. 6. Select the site where you want to create the store. If a site already has a store, it’s not included in the list. 7. Click **Create Store**. When you add a store to an existing site, the store defaults for buyer group, catalog, category, price book, and entitlement policy aren’t created for you. 8. From the new store’s home page, click the **Experience Builder** tile. 9. (Optional) Add the standard commerce pages that you want to use in your storefront. 1. From the Pages dropdown menu, select **New Page** | **Standard Page**. 2. To add, for example **Checkout**, click the page, and then click **Next**. 3. Enter a name and API name for the page. 4. Click **Create**. 5. Repeat these steps for other standard pages that you want to use, for example, Commerce Storefront, My Lists, Order Confirmation, and Quick Order. 10. (Optional) Add the Cart object page. 1. From the Pages dropdown menu, select **New Page** | **Object Pages**. 2. Click **Cart**, and then click **Create**. 3. In the message about the new object pages, click **Create**. 4. From the Pages dropdown, select **Cart Detail**. 5. Optionally, delete the generic components on the page and add the Cart, Cart Totals, and Checkout button components. 11. (Optional) Add the Category object page. 1. From the Pages dropdown menu, select **New Page** | **Object Pages**. 2. Click **Category**, and then click **Create**. 3. In the message about the new object pages, click **Create**. 4. From the Pages dropdown, select **Category Detail**. 5. Optionally, delete the generic components from the page and add the Results Layout component. 12. (Optional) Add the Product object page. 1. From the Pages dropdown menu, select **New Page** | **Object Pages**. 2. Click **Product**, and then click **Create**. 3. In the message about the new object pages, click **Create**. 4. From the Pages dropdown, select **Product Detail**. 5. Optionally, delete the generic components from the page and add the Product Detail Card and Product Attachment components. 13. (Optional) Set up the store to use categories as the default navigation. 1. Click the gear icon and select **Settings** | **Navigation**. 2. From the Default Navigation dropdown, select **Edit**. 3. Click **Add Menu Item**. 4. From the Type dropdown, select **Data Source**. 5. From the Data Source dropdown, select **Storefront Categories**. 6. Select **Publicly available**. 14. For D2C stores, to associate the site with the store, republish the site. #### See Also - [B2B Store Setup Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_store_setup_considerations.htm&release=264.0.0&type=5 "The Commerce Setup Assistant and the Store Setup Assistant work together to create a guided path for store creation. This path is simplified to get you up and selling as fast as possible. However, you can customize a store for your specific needs by configuring locales, languages, and currencies. If you haven’t configured these before creating your store, only the default options configured for your Salesforce org show. You can update these values after creating your store.") # Add a Buyer for a B2B Store You can add buyers in different ways. You can add a buyer from your Customer workspace or enable a business or person account. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Use the Customer Workspace to Add a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_from_cust_wkspc.htm&release=264.0.0&type=5)** The simplest way to add a buyer is to create the buyer account from the Customer workspace. - **[Configure a Business Account as a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_accounts.htm&release=264.0.0&type=5)** Create a business account and then enable it as a buyer account. Add contacts to the buyer account and enable the contacts as customer users. - **[Create a Buyer for a B2B Store from a Person Account](https://help.salesforce.com/s/articleView?id=commerce.comm_person_buyer_accounts.htm&release=264.0.0&type=5)** One way to add a buyer is to enable a person account as a buyer account and a customer user. The individual identified in the person account has access to stores related to the account’s buyer group. When you enable a person account as a buyer, you can't convert the person account to a business account. You also can't merge the account with other accounts. To merge or convert the account, you must disable it as a buyer, merge or convert the account, and then reenable it as a buyer. # Add a Content Security Policy (CSP) Trusted Site for the Commerce Einstein Domain Before you turn on storefront activity tracking and semantic search, add a trusted URL for the Commerce Einstein domain. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Add a [trusted URL](https://help.salesforce.com/s/articleView?id=xcloud.security_trusted_urls_manage.htm&type=5&language=en_US) with these settings. 1. For URL, enter https://api.cquotient.com. 2. In the Content Security Policy (CSP) Settings section, for context, select **All**. 3. Select the **connect-src (scripts)** CSP directive. 4. Select the **img-src (images)** CSP directive. #### See Also - [Enable Commerce Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_deploy.htm&release=264.0.0&type=5 "Commerce Einstein features personalize shopper experiences, increase merchandiser productivity, and improve conversion. Enable Commerce Einstein so that merchandisers can turn on storefront activity tracking, turn on semantic search, and configure Einstein recommendations. Commerce Einstein deployment can take up to 24 hours to complete.") - [Enable Storefront Activity Tracking](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_activity_tracking_enable.htm&release=264.0.0&type=5 "Storefront activity tracking captures browser-based, real-time buyer or shopper activities in your store, unless settings are explicitly changed by the buyer or shopper. Storefront activity tracking requires a Content Security Policy (CSP) trusted site for the Commerce Einstein domain.") - [Enable Semantic Search for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_enable_semantic_search.htm&release=264.0.0&type=5 "Semantic search improves your search results by matching and returning items that are semantically related to a query. Semantic search requires a Content Security Policy (CSP) trusted site for the Commerce Einstein domain.") # Add a Finance Tender Layout to a Point of Sale App Assign a finance tender layout to an app configuration in Point of Sale CMS. 1. In CMS, go to **Apps**. 2. Select the **app configuration** used in stores that support financing. 3. Select **Edit**. 4. Go to **Modules** | **Cart**.![A screenshot shows the options for setting up a tender layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_tender_layout.png) 5. Edit **Finance Tender Layout** and select a layout. 6. Save your changes. #### See Also - [_Salesforce Help:_ Set Up Processing of Synchrony Credit Card Purchases using Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony.htm&release=264.0.0&type=5 "The POS app, in combination with an Adyen terminal, supports the recognition of Synchrony cards and enables financing transactions. During checkout, when a customer chooses to pay with their Synchrony PLCC and the card is presented, the store associate can process the payment. If the order total meets a set threshold, the store associate can offer financing, which requires the customer to sign an electronic disclosure and financing contract. The threshold, electronic disclosure, and financing contract terms are customizable in the CMS.") - [_Salesforce Help:_ Maintain PCI Compliance with Synchrony](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony_pci_compliance.htm&release=264.0.0&type=5 "Add a form to your Point of Sale app for customers that opt to use Synchrony as a payment method. After a store associate submits the form, the app retrieves a secure, PCI-compliant token that substitutes for a credit card number. The token enables the checkout to remain compliant without collecting the customer's full card information.") - [_Salesforce Help:_ Create a Finance Form Layout for Synchrony](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony_finance_form.htm&release=264.0.0&type=5 "To maintain Payment Card Industry (PCI) compliance with Synchrony, add a finance tender form to your Point of Sale CMS.") # Add a Location Add a distribution center, warehouse, or retail store to use as a fulfillment location. ### Required Editions
View supported editions.
User Permissions Needed
To add a location. Create on Locations
1. From the Navigation bar, open the Locations list view page. 2. Click **New**. 3. Enter the information about the location. The Visitor Address is the location’s physical address to use for proximity-based routing. 4. Save your entries. 5. Commit your changes. #### See Also - [Manage Locations](https://help.salesforce.com/s/articleView?id=commerce.inv_locations.htm&release=264.0.0&type=5 "Locations represent physical locations—distribution centers, warehouses, or retail stores—where you have inventory available for fulfilling orders. Manage them using the Omnichannel Inventory Console.") # Add a Location Group Add a location group to aggregate inventory availability across multiple locations. ### Required Editions
View supported editions.
1. From the Navigation bar, open the Location Groups list view page. 2. Click **New**. 3. Complete the fields on the New Location Group page. 1. For External Reference, enter a unique identifier for the location group. If you’re using B2C Commerce, this value matches the ID of the Inventory List on your B2C Commerce storefront. 2. To include the location group when you commit changes to Omnichannel Inventory, select **Sync with OCI**. 3. To enable the location group for Omnichannel Inventory, select **Enabled**. 4. Save your entries. 5. Commit your changes. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_important.png) Important Don’t upload inventory availability data while committed changes are pending. Before uploading availability data, verify that no location group changes are in progress by checking the async operation logs. #### See Also - [Manage Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_location_groups.htm&release=264.0.0&type=5 "Location groups represent sets of related locations. Assign locations to a location group. A location group provides an aggregate view of inventory availability across the locations in the group. Manage them using the Omnichannel Inventory Console.") # Add a Payment Link to a Salesforce Record To create a Pay Now payment link, use the Generate Payment Link flow. This flow guides you through the link creation process. How you incorporate a link into your business application and share it with your customer is specific to your work flow. ### Required Editions
View supported editions.
This procedure assumes knowledge of Salesforce declarative tools and working with objects. 1. Establish a lookup relationship between the Payment Link object and the object that you want to accept payments for. The lookup relationship creates a record of what the payment link is for. For example, to collect payment for an invoice or work order, add a lookup field on the Invoice or Work Order object. 1. From Setup, go to Object Manager and locate the Payment Link object. 2. Select **Fields & Relationships**. 3. Click **New**, and select **Lookup Relationship**. 4. Follow the prompts, and select the object that you want the Payment Link to relate to. 2. In Flow Builder, the Generate Payment Link flow automates payment link generation. Use the flow as is or customize it. If you want to customize the flow, complete these tasks. Otherwise, go to the next step. 1. In Setup, and in the Quick Find box, enter flows, and select **Flows**. 2. Select the Generate Payment Link flow, save it under a new name, then modify it. You can also build your own application workflow using the Payment Link object and a Salesforce declarative tool, such as Flow or Quick Actions. You can also use a developer tool, like Apex invocable actions. 3. (Optional) Add the payment link flow as an action to an object’s page layout. You don't have to create an action, but it's an efficient way to generate a link. 1. From Object Manager, choose the object that you want to create a payment link from. 2. Select **Buttons, Links, and Actions**, and then click **New Action**. 3. For Action Type, select **Flow** and select the payment link flow. 4. Enter a label and name for the link, and save your changes. 5. Select **Page Layouts**. 6. From Mobile and Lightning Actions, drag the action that you created to the Salesforce Mobile and Lightning Experience Actions section of the page layout. A button to generate a payment link is added to all record pages for the object. You can generate as many payment links as you want for a single object. Pay Now doesn’t perform post-processing logic, so you must configure automation for post-payment processing. For example, when a payment is received, add a process to mark an invoice as paid with the amount sent. 4. Test your action button to ensure that it triggers the flow. When the flow starts, select which link you want to create. - Predefined Amount —sends the customer to a page that shows only an amount owed. - With Products —sends the customer to a payment page that shows a list of products, provides shipping options, and calculates the tax based on the shipping address and products purchases. If your payment link takes you to an error page, go to the Payments Link list view and verify that the link’s status is active. Next, open the link in your browser’s private or incognito browsing mode. 5. Test the generated payment link to make sure that it takes you to the correct Pay Now page. If you accept payments with Apple Pay, test the link by opening it in a Safari browser. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_example.png) Example In Object Manager, modify the Quote object. Add an action named Generate Payment Link to the Quote page layout. When you click the new Generate Payment Link button on the page, the flow starts and walks you through payment link creation. Copy the resulting link and share it with your customer. ![Payment link action button on the quote record page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/paynow_link_from_record.png) #### See Also - [Automate Your Business Processes](https://help.salesforce.com/s/articleView?id=platform.platform_automation.htm&language=en_US) - [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&language=en_US) - [Quick Actions](https://help.salesforce.com/s/articleView?id=platform.actions_overview.htm&language=en_US) # Add a Point of Sale CMS User As an Admin, you can add users and assign roles and permissions. 1. In CMS, go to **Advanced | User Management | Users**. 2. Select **ADD USER**. 3. For User ID, enter the user’s email address. 4. Select the user's time zone. 5. Select the user type. - Global: The user can access all merchant regions. - Regional: The user can only access the region that you're currently logged in to. 6. Select the user’s role. 7. Select how long the user can access CMS before their access expires. 8. Save your changes. 9. Let the user know about the new account. The user isn’t automatically informed. #### See Also - [_Salesforce Help:_ CMS User Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_user_management.htm&release=264.0.0&type=5 "Customize users in CMS to control access to reports, configurations, and other features within a company.") # Add a Product Search Deep Link Add a Point of Sale product search deep link to let users initiate a product search from multiple access points. 1. Open the Layout Editor. 2. Double-click any cell to launch the Image Picker. 3. Select an image. 4. Click **SELECT DEEPLINK**. 5. Click **PRODUCT SEARCH**. 6. Click **SET DEEPLINK**. 7. Save and publish the layout. Because the deep link was not customized in any way (for example, with a search query), a star search is performed. This means that the search query is an asterisk, i.e., \*, and all available products will be shown. # Add a Product to a B2B Commerce Store from the Workspace Add a product to up to five categories. The product can include variations such as color and size. You can also add digital products, which can be excluded from shipping calculations. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) You can also bulk import multiple products in the store. See [Import Data Globally Using a CSV File](https://help.salesforce.com/s/articleView?id=commerce.comm_import_products_global.htm&language=en_US). If you want to create a digital product that is excluded from shipping charge calculations, a System Admin must first enable access to the Shipping Charge Not Applicable field on the Product object and also add the field to the Product page layout. See [Configure Your B2B Commerce Org to Support Digital Products](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_org_for_digital_products.htm&release=264.0.0&type=5 "Add digital products to your store, such as downloadable cookbooks, e-books, music files, or software. To do this, you must configure the page layout for the Product object to include the Shipping Charge Not Applicable field."). 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Products**. 3. Click **New**. To edit the displayed product fields, customize the Product Detail components on the Product page in Experience Builder. 4. Enter the product name and other optional details. Adding a product description helps customers understand the product. 5. To make the product available in your store, select **Active**. 6. To configure this product as a digital product to be excluded from shipping calculations, select the **Shipping Charge Not Applicable** checkbox. 7. (Optional) Enter the pricing information. To highlight a discount, you can show a strikethrough price next to the selling price. The strikethrough price is the product’s original price or manufacturer’s suggested retail price. 8. To add images or videos to the product, complete the media fields. You can upload media directly, select them from your CMS workspace, or add them from hosting sites or cloud storage by using a URL. Only users assigned as workspace contributors can access the CMS workspace media. Drag and drop media to arrange them in the order in which you want them to appear on the product detail page. 9. To set a hover image, use the image options on any product image and click **Set As Hover Image**. This image appears when a shopper hovers over the main product image on a product listing page, such as search results. To enable rollover images, in Experience Builder, select the Product Card component. Then, under Product Information Settings, set Image Hover Action to Image Rollover. 10. To show a unique product image in product listing pages such as search results or the cart, select **Use a unique image for list view**. The list image isn’t visible in the live preview. 11. Enter up to five existing or new product categories. 12. If the product has variations, select **This product has variations** and add the variation details. Select or create an attribute or attribute set. After you save the variations, you can’t remove them, but you can deactivate them. 13. Click **Save**, or to continue adding products, click **Save & New**. After you save your product, go to the product record page to assign additional details, such as variations, localization, and SEO information, or add it to multiple markets. To make a product discoverable in a search, mark it as searchable. #### See Also - [Choose Product Categories to Use in Breadcrumbs](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_breadcrumbs.htm&release=264.0.0&type=5 "The order of breadcrumbs is determined by a combination of a category and product and the date and time that their association was established. The first category that a product is associated with is the product’s primary category and becomes the basis of the breadcrumb order. You can customize the default order of breadcrumbs by explicitly identifying categories as primary. When you identify a category as primary, your store uses it to construct the category path that populates the breadcrumbs on the Product Detail page. You can associate a product with multiple categories, but it can have only one primary category.") - [Import and Export Commerce Data](https://help.salesforce.com/s/articleView?id=commerce.comm_data_import.htm&release=264.0.0&type=5 "Import data, including products, product variations, and images, by uploading a CSV file. Perform other tasks while the import runs asynchronously. You can import up to 10,000 products with nine images each per session, though import times may increase with more images. We recommend using the CSV file import process, but for large imports, use Data Loader. You can also export data for up to 300,000 products to a CSV file.") - [Set Up a Strikethrough Price Book to Highlight Discounts](https://help.salesforce.com/s/articleView?id=commerce.comm_original_pricebook.htm&release=264.0.0&type=5 "To highlight a discount that you granted to a buyer, you can show a strikethrough price next to the negotiated price. It’s called a strikethrough price because the value is shown with a line through it. The strikethrough price is the product’s original price or manufacturer’s suggested retail price (MSRP). The strikethrough price book is automatically created with your B2B Commerce store.") - [Create a CMS Workspace to Import Images to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_cms_workspace.htm&release=264.0.0&type=5 "When you use a CSV file to import images, you must specify a CMS workspace where the imported images are linked. If you don’t have a CMS workspace, create one before you begin the import process.") - [https://help.salesforce.com/s/articleView?id=xcloud.cms\_content\_rte\_video.htm](https://help.salesforce.com/s/articleView?id=xcloud.cms_content_rte_video.htm&language=en_US) # Add a Product to a Custom Price Book You can add products that are in your standard price book to a price book tailored for a specific store or buyer group. You can then manage the products in the custom price book for the audience. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Pricing**. 3. On the **Price Books** tab, click a price book. 4. Click the **Related** tab. 5. In the Price Book Entries section, click **Add Products**. 6. Select a currency for the products that you’re adding. 7. Search for and select products that you want to the price book. If you haven’t added the product to your standard price book, it doesn’t appear in your search. 8. Click **Next**. 9. Add a list price, and click **Save**. #### See Also - [Pricing for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricebooks.htm&release=264.0.0&type=5 "You can set up pricing for your B2B store by configuring a standard strategy and pricing procedure, or enable advanced pricing for more complex pricing use cases.") # Add a Promotion Tier for a B2B Store Use tiers to create progressive discounts for a promotion. You can add tiers only to a promotion that was created as a tiered promotion. All discounts within a tier must be of the same type. You can create up to 10 tiers per promotion. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Promotions**, and select a tiered promotion. 3. On the Tiers tab, click **New**. 4. Enter a promotion tier name. 5. Select the promotion that you want to assign the tier to. 6. Enter a rank to specify which tier applies first. The lower the number, the better the discount. 7. Click **Save**. 8. Select the promotion tier you created, and click the **Related** tab. 9. To add discount details for the tier, click **New** next to Discounts. See [Edit a Promotion Discount for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_discounts.htm&release=264.0.0&type=5 "Modify a promotion discount to better meet your business goals and customer needs by adjusting the target audience, discount type, and amount."). 10. To add qualifier details for the tier, click **New** next to Promotion Qualifiers. See [Edit What Qualifies for a Promotion for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_qualifiers.htm&release=264.0.0&type=5 "Use a qualifier to set specific requirements for a discount to be added to a promotion. For example, you can require customers to spend a minimum amount to qualify for a percentage discount on a particular product. "). 11. Repeat these steps for each tier that you want to create. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example To entice shoppers to purchase more, you want to give a better discount as the shopper adds more to their cart. You create three promotion tiers that give the shopper 10% off a $50 purchase, 20% off a $100 purchase, or 30% off a $200 purchase. When you create your promotion, select **Tiered Promotion** and then: - Create a tier for each discount level and associate it with the tiered promotion. - Assign the best discount to the lowest rank. - Add your discounts and promotion qualifiers to each tier. ![Create a promotion tier.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_promotions_tier_create.png) #### See Also - [Commerce Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_create_manage.htm&release=264.0.0&type=5 "Enhance your B2B store by adding customized promotions. Create segments, discounts, qualifiers, and coupons for the right customers to receive the right deals. Highlight promotions for eligible customers on store pages and during checkout to boost engagement and sales.") # Add a Reason Text Option to a Service Flow You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization gives customer service representatives more flexibility when tracking a return or discount by providing an empty field to add a reason. ### Required Editions
View supported editions.
If you don’t have an editable version of the flow yet, [copy a flow template](https://help.salesforce.com/s/articleView?id=commerce.om_flow_copy.htm&release=264.0.0&type=5 "Before you can activate or customize a flow, you need to clone the flow. Cloning creates an editable version that you can modify or activate out-of-the-box on your store. If you set up your store using the Commerce Setup Assistant, your flows are already cloned."). You can enable reason text in discount, return, and RMA service flows. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter flows, and select **Flows**. 3. Select the flow that you’re customizing. 4. In the flow, open the Manager tab. 5. Find and select the **Reasons Selection** screen component. 6. Click **OMS Change Detail Selector**. 7. Set Use Reason Text to {!$GlobalConstant.True}. 8. Click **Done**. 9. Click **Save**. 10. If you’re ready to activate the flow, click **Activate**. #### See Also - [Customizing Order Management Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customizations.htm&release=264.0.0&type=5 "The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement.") - [Return Insights Overview](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5 "Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them.") # Add a Sales Channel to Order Management Create Sales Channel records to represent the sales channels that provide orders to your org. 1. For each B2C Commerce Site, create a Sales Channel record in Salesforce. 2. Set the Sales Channel’s Name field to match the Site ID. In a B2C Commerce order payload, the Site ID is the `site/site-id` value. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Add a Service Flow to an Object Record Page You can give users easy access to a flow by adding it to the Actions & Recommendations component on an object’s Lightning record page. Most Order Management flows service existing order summaries, so they’re usually added to the Order Summary record page. The Order on Behalf Of flow creates an order for a customer, so we recommend adding it to the Account page. That allows a customer service agent to create an order for a customer while viewing the customer’s account. ### Required Editions
View supported editions.
1. From Setup, in the Quick Find box, enter Actions & Recommendations, and then select **Actions & Recommendations**. 2. Click **New Deployment**, and then click **Next**. 3. After you name the deployment, select **Flows and quick actions**, deselect **Recommendations**, and click **Next**. 4. In the Available Objects list, move the object, such as **Order Summary** or **Account**, to the Selected Objects list, and click **Next**. 5. Select the **Default** tab. 6. In the All Actions list, drag the flows that you want to make available to the **Top Pinned** section. 7. Select the flow checkboxes, and click **Unmark Removable**. 8. Click **Next**, and then click **Save**. 9. In Lightning App Builder, edit the selected object’s record page. To edit an object record page, you open an existing record of that object. If none exists, then create one. To create an order summary record, verify that your Create Order Summary flow is active, and then create and activate an order. Activating an order triggers the Create Order Summary flow. Because order summaries require several related records, don’t manually create an order summary. 1. Open a record page. 2. From Setup, select **Edit Page**. 3. In the preview layout, select the **Actions & Recommendations** component. 4. For Actions & Recommendations Deployment, select the deployment that you created, and click **Save**. 5. Click **Activate**, and then click **Save**. 6. Click **Activation**. 7. Save the page as the org default. #### See Also - [Order Management and Salesforce Flow](https://help.salesforce.com/s/articleView?id=commerce.om_configure_om_flows.htm&release=264.0.0&type=5 "Order Management works with Salesforce Flow to help you to create manual and automated functions. We provide out-of-the-box flow templates for processes such as order summary creation, placing orders on behalf of shoppers, order fulfillment, and order servicing.") - [Automate Your Business Processes: Build a Flow](https://help.salesforce.com/s/articleView?id=platform.flow_build.htm&type=5&language=en_US) # Add a Sort Rule Create a sort rule based on available products and product attributes to let customers arrange results in search and category pages for B2B Commerce stores. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) When creating a sort rule, keep these considerations in mind. - You can configure up to 15 sortable fields. - The default Best Match rule sorts output based on its relevance to the search results. Commerce Search uses the frequency of the search terms in each product and how often each term appears in the catalog to determine the sort order for the search output. - You can’t delete the default Best Match rule, but you change the order in which it appears in the sort menu. - Sort rules apply to simple products and variation child products. When your store’s results display settings are set to show parent product only, product variation can appear out of order in sorted search results. Commerce Search applies sort rules to the most relevant child product within a variation group, and search results return the variation parent product. - Search results are sorted numerically only if you create a custom field of the Number type on the Product page. Custom fields with the Currency type are mapped as strings rather than numbers, which can result in non-numeric sorting. - Sort rule IDs change each time a new sort rule is added. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Search**. 3. Click **Sort Rules**. 4. Click **New**. 5. In the New sort option window, select the product field name to use as a sort option. Before sorting results by price, select a price book on the Search tile’s Additional Settings tab. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note You can’t delete custom fields that you use to create sorting rules. To delete a custom field, first delete the sorting rule that uses that field. 6. Select an ascending or descending sort order. Values in the Sort Order Label menu change to reflect your sort order selection. 7. (Optional) Select a sort order label to append to the sort option in the sorting menu. The sort order label appears in parentheses after the product field name. This label can help clarify how sorting occurs. For example, alphabetically, numerically, by cost, or by the size of a product. 8. (Optional) Specify where the new rule appears in the sort menu. By default, a new sort option is added to the end of the menu. You can override this placement by changing its numerical menu position. Until a shopper or buyer selects a different rule, the sort order follows the first sort rule in the sort menu. 9. Save your changes. 10. On the Search Index tab, update the search index. Changes appear in the store after the next search index rebuild. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates."). #### See Also - [Enable or Disable Sort for Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_options_enable.htm&release=264.0.0&type=5 "Sorting is enabled for search and category pages in B2B Commerce stores by default. However, you can control whether customers can see the sorting menu that appears on these pages with the Results Layout component. You can change the sorting properties on any page that uses the Results Layout component.") - [Edit or Delete a Sort Rule](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_rule_edit_delete.htm&release=264.0.0&type=5 "You can edit a sort rule and change where it appears in the sorting menu of your B2B Commerce store. To remove a sort rule from the sorting menu, delete the rule.") - [Select a Price Book for Sorting](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_by_price_book.htm&release=264.0.0&type=5 "To arrange search results in your B2B store by price, select a price book for sorting. The price book you select is always used for sorting, regardless of whether a customer is assigned to a different price book based on buyer group or entitlement policy. Deleted, archived, or inactive products are excluded from search results, which are sorted based on the store’s default currency. If the store's default currency is set to one type, such as EUR, and you sort the products by another currency, such as USD, products without prices in the sorting currency but with prices in the default currency are still considered to have prices and are displayed in the middle of the sorted list, while products without prices in the default ‌appear at the end of the sorted list‌.") # Add a Tax Calculation Service for Custom Checkout A tax calculation service determines how much your customers pay in taxes based on their location. You can set up the Salesforce Tax Solution or use a third-party tax calculation service for your B2B store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note In Winter ‘24, we introduced Commerce extensions for pricing, inventory, shipping, taxes, and other services. While the checkout integrations framework is still supported, we recommend extensions over integrations because they offer more targeted customizations for your B2B store. Plus, they’re available for more Commerce domains. See [Get Started With Salesforce Commerce Extensions](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/extensions.html). Also, starting in Spring ‘24, the Cart Calculate API is enabled by default for LWR stores (`OptionsCartCalculateEnabled` is set to true). When this setting is enabled, you can configure extension providers for tax calculation, but you can’t configure integrations for tax calculation. If you want to integrate a third-party service, we recommend using an AppExchange package. If you prefer implementing a service without using AppExchange, see reference examples in GitHub. - [Extension Provider Examples](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/extension-provider-examples.html) - [Reference Implementations for B2B Commerce](https://github.com/forcedotcom/commerce-on-lightning/tree/main-2/examples/b2b/checkout/integrations) - [Reference Implementations for D2C Commerce](https://github.com/forcedotcom/commerce-on-lightning/tree/main-2/examples/b2c/checkout/integrations) To implement an integration, see the [B2B Commerce Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.b2b_b2c_comm_dev.meta/b2b_b2c_comm_dev/b2b_b2c_comm_dev_guide.htm). This procedure assumes you’re using custom checkout. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Settings** | **Checkout**, and go to the Taxes tab. The next steps depend on whether the Cart Calculate API is enabled. 3. If the Cart Calculate API is enabled, click **Select Provider** to select a custom provider. Follow the steps in [Select Salesforce Tax Solution and Set Up a Tax Provider](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_salesforcetaxsoln.htm&release=264.0.0&type=5 "Use the Salesforce tax solution to automatically calculate tax rates, by mapping a third-party tax calculation service, such as Stripe, to your B2B store checkout."). 4. If the Cart Calculate API is disabled, select an integration. Click **Link Integration**, and then select the service that you want to use. - If your store tax type is gross, you can use the Salesforce tax service. To use the Salesforce service, select **Standard Tax, Salesforce Service**. Follow the steps in [Assign a Tax Policy with the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_assign_tax_policy.htm&language=en_US). - To use a third-party service, download the associated managed package from AppExchange. See [Extend Your Org with AppExchange Packages](https://help.salesforce.com/s/articleView?id=xcloud.distribution_installed_packages.htm&language=en_US). Check AppExchange listings carefully. A package can support only D2C stores, only B2B stores, or both types of stores. #### See Also - [Integration Architecture for B2B and D2C Stores (LWR)](https://developer.salesforce.com/docs/atlas.en-us.b2b2c_commerce.meta/b2b2c_commerce/1cb2c_integration_overview.htm) - [Checkout Integration](https://developer.salesforce.com/docs/atlas.en-us.b2b2c_commerce.meta/b2b2c_commerce/1cb2c_checkout_API_overview.htm) - [Configure Tax Settings for a Store](https://help.salesforce.com/s/articleView?id=commerce.comm_taxes_international_store.htm&language=en_US) - [Enable and Disable the Cart Calculate API for a Webstore](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html#enable-and-disable-the-cart-calculate-api-for-a-webstore) # Add a Third-Party Payments Service for Custom Checkout For a B2B store using custom checkout, instead of using Salesforce’s native payment service, you can use a third-party gateway adapter to integrate with your store's checkout process. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Click **Settings** | **Checkout**, and then click the **Payments** tab. 3. On the Alternate Provider tile, click **Select Provider**, and choose a gateway provider from a third-party package. If no adapter is listed, get one from AppExchange. See [Extend Your Org with AppExchange Packages](https://help.salesforce.com/s/articleView?id=xcloud.distribution_installed_packages.htm&language=en_US). Check the listings for a package that supports a B2B store. Alternatively, create one. - To integrate a third-party service without using AppExchange, see [Reference Implementations for B2B Commerce](https://github.com/forcedotcom/commerce-on-lightning/tree/main-2/examples/b2b/checkout/integrations) and [Reference Implementations for D2C Commerce](https://github.com/forcedotcom/commerce-on-lightning/tree/main-2/examples/b2c/checkout/integrations). - To create a custom package, see [Payments Integration](https://developer.salesforce.com/docs/atlas.en-us.b2b2c_commerce.meta/b2b2c_commerce/1cb2c_payment_integration.htm) in the B2B Commerce Developer Guide. After you configure your payment service, customize how you collect payment and billing details from your customers during checkout. See [Collect Payment Information During Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_customize_payments.htm&language=en_US). # Add a Third-Party Shipping Service for Custom Checkout A shipping calculation service determines how much customers pay for shipping in your B2B store. Instead of using Salesforce’s native shipping service, you can add a third-party shipping application to your store or set up your own shipping service. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note In Winter ’24, we introduced Commerce extensions for pricing, inventory, shipping, taxes, and other services. While the checkout integrations framework is still supported, we recommend extensions over integrations because they offer more targeted customizations for your B2B store. Plus, they’re available for more Commerce domains. See [Get Started With Salesforce Commerce Extensions](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/extensions.html). Also, starting in Spring ’24, the Cart Calculate API is enabled by default for LWR stores (`OptionsCartCalculateEnabled` is set to true). When this setting is enabled, you can configure extension providers for shipping, but you can’t configure integrations for shipping. You can use AppExchange packages to select third-party services. If you prefer to implement a service without using AppExchange, see examples in GitHub. - [Extension Provider Examples](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/extension-provider-examples.html) - [Reference Implementations for B2B (integrations framework)](https://github.com/forcedotcom/commerce-on-lightning/tree/main-2/examples/b2b/checkout/integrations) - [Reference Implementations for D2C Commerce (integrations framework)](https://github.com/forcedotcom/commerce-on-lightning/tree/main-2/examples/b2c/checkout/integrations) To implement an integration, see the [B2B Commerce Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.b2b_b2c_comm_dev.meta/b2b_b2c_comm_dev/b2b_b2c_comm_dev_guide.htm). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important If you have a Commerce and Revenue Lifecycle Management Add-on license, set **Is Assetizable** to false when creating a shipping product for both native and custom shipping calculators. For more information, see [Configurator Product Catalog](https://developer.salesforce.com/docs/atlas.en-us.revenue_lifecycle_management_dev_guide.meta/revenue_lifecycle_management_dev_guide/connect_responses_configurator_product_catalog_output.htm?q=Is+Assetizable). 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Checkout**. 3. Click **Shipping**. 4. Select a shipping service. - If the Cart Calculate API is enabled, click **Select Provider**. - If the Cart Calculate API is disabled, click **Link Integration**. Configure the supported ship-to countries for your store. If you don’t have at least one supported ship-to country selected, address validation fails. See [Configure Store Languages, Ship-To Countries, Currencies, and Tax](https://help.salesforce.com/s/articleView?id=commerce.comm_create_international_store.htm&release=264.0.0&type=5 "Make sure that the language, currency, and tax settings are configured correctly to sell around the world."). #### See Also - [Integration Architecture for B2B and D2C Stores (LWR)](https://developer.salesforce.com/docs/atlas.en-us.b2b2c_commerce.meta/b2b2c_commerce/1cb2c_integration_overview.htm) - [Checkout Integration](https://developer.salesforce.com/docs/atlas.en-us.b2b2c_commerce.meta/b2b2c_commerce/1cb2c_checkout_API_overview.htm) - [Enable and Disable the Cart Calculate API for a Webstore](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html#enable-and-disable-the-cart-calculate-api-for-a-webstore) # Add a Web Store Inventory Source for Exchanges with RMA (B2C Only) To use reservations when adding a new item to an exchange order, add a web store inventory source. Reservations help reduce out-of-stock errors by holding a product as soon as it’s placed in a cart. ### Required Editions
View supported editions.
Previous step: [Connect B2C Commerce and Salesforce](https://help.salesforce.com/s/articleView?id=commerce.om_connect_b2c_and_salesforce_oobo.htm&release=264.0.0&type=5 "To get product and pricing data from B2C Commerce, set up a connection between B2C Commerce and your Salesforce org.") See all steps in [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns."). 1. From the App Launcher, find and select **Web Store Inventory Sources**. 2. Click **New**. 3. Select a location or location group. 4. Select a web store. 5. Configure how long you want a reservation to last. 6. Enter an Inventory Cache TTL to set how long the cache lasts. 7. Select an inventory dimension. 8. Save your changes. Next step: [Payments for Exchanges with RMA](https://help.salesforce.com/s/articleView?id=commerce.om_payments_exchanges_rma.htm&release=264.0.0&type=5 "Because an exchange can result in a partial refund for the customer, you must configure payments to process this refund. You can find payment activity in the order payment summary for each order.") #### See Also - [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns.") - [Exchanges with RMA Returns Overview](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_overview.htm&release=264.0.0&type=5 "An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer.") # Add a Web Store Inventory Source for Order on Behalf Of To use reservations when placing an order on behalf of a shopper, add a web store inventory source. Reservations help reduce out-of-stock errors by holding a product as soon as it’s placed in a cart. ### Required Editions
View supported editions.
Previous step: [Connect B2C Commerce and Salesforce](https://help.salesforce.com/s/articleView?id=commerce.om_connect_b2c_and_salesforce_oobo.htm&release=264.0.0&type=5 "To get product and pricing data from B2C Commerce, set up a connection between B2C Commerce and your Salesforce org.") See all steps in [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization."). The steps in this task are for B2C Commerce only. If you set up a B2B or D2C Commerce using the Commerce Setup Assistant, your web store inventory source is already configured. To manually add an inventory source to your B2B or D2C Commerce org use the refreshed commerce app. 1. From the App Launcher, find and select **Web Store Inventory Sources**. 2. Click **New**. 3. Select a location or location group. 4. Select a web store. 5. Configure how long you want a reservation to last. 6. Enter an Inventory Cache TTL to set how long the cache lasts. 7. Select an inventory dimension. 8. Save your changes. Next step: [Payments for Order on Behalf Of](https://help.salesforce.com/s/articleView?id=commerce.om_payments_oobo.htm&release=264.0.0&type=5 "Processing payments is an integral part of the Order on Behalf Of process. Whether you’re using Order Entry or OOBO with Order Management, you need a payment service. You can find payment activity in the order payment summary for each order.") #### See Also - [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.") - [Video: Order on Behalf Of Setup](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2) # Add Accounts to a Buyer Group for a B2B Store To give multiple accounts access to the same store, price books, and entitlements, create a buyer group and add the accounts. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Unassigning an account assigned to a buyer group by another user requires the Modify All Data on Buyer Group permission. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Customers** | **Buyer Groups**. 3. Click **New**. 4. Enter a name and description. 5. For **Role**, select Account Based. 6. Click **Save**. 7. On the Related tab, next to Buyer Group Members, click **Assign**. 8. Select the accounts that you want to add to the buyer group. 9. Click **Assign**. #### See Also - [Configure a Business Account as a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_accounts.htm&release=264.0.0&type=5 "Create a business account and then enable it as a buyer account. Add contacts to the buyer account and enable the contacts as customer users.") - [Associate a Buyer Group with a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups.htm&release=264.0.0&type=5 "Product prices and the products that buyers can access depend on the price books and the entitlement policies assigned to the buyer group. When you create a store, a default buyer group is assigned to the store.") - [Add Billing and Shipping Addresses for Buyer Accounts for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_account_addresses.htm&release=264.0.0&type=5 "Set the default billing and shipping addresses for buyer accounts.") - [Create a Buyer Group Based on a Data Segment](https://help.salesforce.com/s/articleView?id=commerce.comm_create_data_segment_based_buyer_group.htm&release=264.0.0&type=5 "Personalize your customers’ shopping experience by combining the power of Data 360 segments and Commerce buyer groups. Build a targeted customer group using Data 360 segments and associate it with a Commerce buyer group. You can then deliver personalized promotions and content that directly caters to customer needs and interests.") - [Configure Markets for Your Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_markets.htm&release=264.0.0&type=5 "Use one B2B store to segment customers into markets based on their locale. When you create a market, assign a price book, an entitlement policy, a currency, ship-to countries, and the locales that it supports. After you create a market, you can also assign a promotion.") # Add Adyen as a Salesforce Payments Option Integrate your existing Adyen merchant accounts into Salesforce Payments for B2C Commerce. Unify payment processing by managing all your accounts natively within Salesforce. **Where:** This change applies to Salesforce Payments in SFRA for B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Administration** | **Global Preferences** | **Salesforce Payments**. Click **Add Account**. Select **Adyen** and follow the guided setup. ![Add Adyen as a payment gateway.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/26_1/b2c_rn_26_1_adyen.png) #### See Also - [_Salesforce Help_: Configure Salesforce Payments with Adyen for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_configure_salesforce_payments_with_adyen.htm&language=en_US) # Add Agentforce Merchandising for B2B Stores Topics Add topics to define what you want Merchandising Agent‌ to do. The promotions topic helps you craft promotions that meet your business needs. The business insights topic retrieves helpful insights into your store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Each topic encompasses a unique set of abilities that allows the agent to address various needs within that area effectively. 1. At the top of the page, click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In the Quick Find box, enter `Agentforce Agents`, and then select **Agentforce Agents**. 3. Click **Enable the Agentforce (Default) Agent** if it isn't already enabled. 4. Click the Agentforce (Default) agent. 5. On the Agent Details page, click **Open in Builder**. 6. In the Topics component, click **New** | **Add From Asset Library**. If the dropdown is disabled, deactivate the agent and try again. 7. Select one or both of these topics. - To create promotions and access templates, select **Commerce Promotions**. - To get recommendations to improve Key Performance Indicators (KPI) based on your store’s data, select **Insights Business Objectives**. 8. Click **Finish**. Next, [Launch Agentforce Merchandising for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_launch.htm&release=264.0.0&type=5 "Before launching an agent, test it to ensure good performance. After Merchandising Agent is live, depending on the topics you selected, the agent can help you create promotions or get insights about how to improve KPIs."). #### See Also - [Customize Your Agents with Topics and Actions](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_actions.htm&type=5&language=en_US) - [Explore Standard Agent Topics and Actions](https://help.salesforce.com/s/articleView?id=ai.copilot_ref.htm&type=5&language=en_US) - [Add a Topic from the Asset Library](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_add_standard.htm&type=5&language=en_US) - [Agent Topic: Commerce Promotions](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_ref_commerce_promotions.htm&type=5&language=en_US) - [Agent Topic: Insights Business Objectives](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_ref_insights_business_objectives.htm&type=5&language=en_US) # Add an Attribute Set to a Product You can add an attribute set to one or more products, but you can associate a product with only one attribute set. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Make sure that the attribute set is already created. You can associate an attribute set to more than one product, but a product can be associated with only one attribute set. 1. Create a variation parent product. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Products**. 3. From the page dropdown menu, select **Create Variation Parent**. 4. Click the **Product Attribute Set** field, and select the attribute set to associate with this product. 5. Enter the variation parent details, and save your work. 2. Create a variation of the parent product. You can create variations only from products in the Variation Parent product class. We recommend that you don’t modify custom picklist values of an attribute set after it’s associated with a variation product and store. 1. From Product Workspace, click the variation parent product that you created or any product in the Variation Parent product class. 2. Select the **Variations** tab, and click **Create Variation**. 3. Enter the variation attribute details and the product details. 4. Save your changes. 3. Assign the variation parent product to a category. The parent product’s variations inherit the category assignments from the parent. 1. From the product, select the **Related** tab. 2. Go to the Categories related list. 3. To add the variation parent product to a category, click **Assign**. 4. Assign an entitlement policy to the variation parent product and to each of its variations. 1. From the product, select the **Variations** tab. 2. Select the variation products that you want to assign. 3. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/options_16x16.png) and then select Add to Entitlement Policy. 4. Save your changes. 5. Assign price books to the variation parent product and to each of its variations. 1. From the product, select the **Variations** tab. 2. Select the variation products that you want to assign. 3. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/options_16x16.png) and then select Add to Price Book. 4. Save your changes. #### See Also - [Product Variations and Attributes](https://help.salesforce.com/s/articleView?id=commerce.comm_var_att_intro.htm&release=264.0.0&type=5 "Use variations to extend the range of products that you offer in your B2B store. For example, add size and color options to a tee shirt. Configure variations to be searchable in your stores and available in multiple languages.") # Add an Inventory SKU in the Omnichannel Inventory Console You can add up to 20 SKUs at a time. ### Required Editions
View supported editions.
1. In the Omnichannel Inventory console, click **Add Inventory**. 2. Enter a SKU and the inventory information. If the SKU exists, the new information overwrites the existing information. 3. To add another item, click **Add SKU**, or click **Save**. # Add Attachments to an Email Using the Script API's dw.net.Mail Class With the new addAttachment(dw.io.File file) method, you can easily add one or more attachments to an outgoing email. Previously, this class did not provide a way to add attachments to emails. **Where:** This change applies to B2C Commerce. #### See Also - [Class Mail](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/upcoming/scriptapi/html/api/class_dw_net_Mail.html) # Add Billing and Shipping Addresses for Buyer Accounts for a B2B Store Set the default billing and shipping addresses for buyer accounts. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Go to your buyer account, and click the **Related** tab. 2. Next to Contact Point Addresses, click **New**. You can create up to 2,000 contact point address records. Additional records are dropped. 3. Select the **Address Type**, either **Billing** or **Shipping**. 4. If you want this address to be the default address, select **Is Default Address**. 5. Enter the address. For stores based on LWR (Lightning Web Runtime), only ISO codes are allowed for the Country and State or Province. We recommend that the Salesforce Admin enable state and country picklists so that only allowed values are available to select. See [Enable and Disable State and Country/Territory Picklists](https://help.salesforce.com/s/articleView?id=xcloud.admin_state_country_picklist_enable.htm&type=5&language=en_US). 6. Save your changes. #### See Also - [Configure a Business Account as a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_accounts.htm&release=264.0.0&type=5 "Create a business account and then enable it as a buyer account. Add contacts to the buyer account and enable the contacts as customer users.") - [Add Accounts to a Buyer Group for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_add_buyer_accounts_to_buyer_group.htm&release=264.0.0&type=5 "To give multiple accounts access to the same store, price books, and entitlements, create a buyer group and add the accounts.") - [Associate a Buyer Group with a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups.htm&release=264.0.0&type=5 "Product prices and the products that buyers can access depend on the price books and the entitlement policies assigned to the buyer group. When you create a store, a default buyer group is assigned to the store.") # Add Cart Import and Export Components to Your B2B Store Cart import and export use the Cart Details component. If you created your B2B store before Summer ‘26, and aren’t using advanced cart management, then add the Cart Details component to the Cart page in your B2B store. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Click **Experience Builder**. 3. Add the Cart Details component to the Cart page. 1. From the Pages list, open the Cart page. 2. If your cart page already has a Cart component, then remove the component from the page. 3. Add the Cart Details component to the Cart page. 4. Add the Cart Export Jobs List page to the My Profile navigation menu. 1. From the Pages list, open the My Profile page. 2. Select the Navigation List Menu component. 3. In the component settings, click **Edit Default My Account Menu**. 4. Click **Add Menu Items**. 5. Select **Site Page** as the Type, and **Cart Export Job List** as the Page. 6. Enter a name for the navigation menu item, and save your updated menu. 5. Preview the site as a buyer to ensure that your store correctly displays the saved carts. 6. Publish your store. # Add Checkout Links to Facebook and Instagram Meta retired on-site checkout on Facebook and Instagram in September 2025. To send shoppers to your website to complete purchases, add checkout links. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, go to **Administration** | **Global Preferences** | **Feature Switches**. Select **Enable Permalinks Integration**. Then go to **Merchant Tools** | **Site** | **SEO** | **URL Rules** | **Pipeline URLs** and create a pipeline alias to direct shoppers from Meta to your storefront. ![Feature Switches Screen in Business Manager](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_10/b2c_rn_25_10_add_checkout_links_for_meta_shops.png) #### See Also - [_B2C Commerce Developer Guide_: Configure Permalink Checkout URLs for Social Sites](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-third-party.html#configure-permalink-checkout-urls-for-social-sites) # Add Classifiers to Flow The final step in configuring Return Insights is to add classifiers to flow. ### Required Editions
View supported editions.
1. From Setup, in the Quick Find box, find and select **Flows**. 2. Select **Analyze Returns**. 3. Click the **Add Classifier** component. ![flow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/classifiers_flow_insights.png) 4. Click **\+ Add assignment**. 5. Select **Classifier** for the Variable and **Add** for the Operator. 6. For Value, add the classifier text. For example, damaged or too small. ![classifier text](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/edit_assignment_classifiers.png) 7. Click **Done**. 8. Click **Save As**, and then click **Save**. 9. Click **Activate**. #### See Also - [Return Insights Overview](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5 "Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them.") - [Return Insights Setup](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights_setup.htm&release=264.0.0&type=5 "You can complete most of the initial Einstein configuration using the Data 360 Setup Guide.") # Add Country and State Picklists To let customer service representatives (CSR) select state and country codes for an address from a dropdown menu, enable state and country picklists. If you don’t enable picklists, the CSR must enter the state and country code into the address, which can introduce errors. ### Required Editions
View supported editions.
If you’re setting up Order on Behalf Of, the previous step is [Add the Order on Behalf Of Flow to an Object Page](https://help.salesforce.com/s/articleView?id=commerce.om_add_oobo_flow_object_page_oobo.htm&release=264.0.0&type=5 "Give users easy access to the Order on Behalf Of flow by adding it to the Actions & Recommendations component on a Lightning page for an object. Because all orders are associated with an account, add the flow to the Actions and Recommendations component on the account page."). If you’re setting up Exchanges with RMA, the previous step is [Add the Exchanges with RMA Flow to an Object Page](https://help.salesforce.com/s/articleView?id=commerce.om_add_exchanges_rma_flow_object_page.htm&release=264.0.0&type=5 "Give customer service representatives easy access to the Exchanges RMA flow by adding it to the Actions & Recommendations component on a Lightning page for an object. Because all orders are associated with an order summary, add the flow to the Actions and Recommendations component on the order summary page."). See all steps in [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.") or [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns."). This video shows the steps for Order on Behalf Of. The steps are the same for Exchanges with RMA. 1. From Setup, in the Quick Find box, search for and select **State and Country/Territory Picklists**. 2. Follow the onscreen steps to convert existing data into standard picklist values. 3. Click **Enable Picklists for Address Fields**. The state code value in your storefront order data must match the state code of an entry in the Salesforce state picklist. The country code value in your storefront order data must match the country or territory code of an entry in the Salesforce country/territory picklist. Next step: [Connect B2C Commerce and Salesforce](https://help.salesforce.com/s/articleView?id=commerce.om_connect_b2c_and_salesforce_oobo.htm&release=264.0.0&type=5 "To get product and pricing data from B2C Commerce, set up a connection between B2C Commerce and your Salesforce org.") #### See Also - [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.") - [Video: Order on Behalf Of Setup](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2) - [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns.") - [Exchanges with RMA Returns Overview](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_overview.htm&release=264.0.0&type=5 "An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer.") # Add Credit Types for Refunds Add credit types to control and expand how refunds are returned when a customer returns an item. A customer service representative can divide the refund amount across multiple credit types. The Credit value is automatically created for your store and is active by default. Only active values show during the flow. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Object Manager. 3. Select **Payment Credit** and go to the Fields and Relationships tab. 4. In the Credit Type Picklist Values section, click **New**. 5. Enter a label and API name. 6. Select a category and click **Save**. To configure which values show for your store, [customize your flow](https://help.salesforce.com/s/articleView?id=commerce.om_flow_enable_unreferenced_refund.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization lets you process returns as unreferenced refunds. Unreferenced refunds are disconnected from the original payment method, so the funds can be returned to any credit type. You can enable unreferenced refunds in the return and RMA flows."). #### See Also - [Unreferenced Refunds](https://help.salesforce.com/s/articleView?id=commerce.om_unreferenced_refunds.htm&release=264.0.0&type=5 "By default, when a product is returned, the refund is credited to the original payment source. To credit the refund to a different source, process the return as an unreferenced refund. You can credit an unreferenced refund amount to any credit type configured in your org.") - [Allow Multiple Credit Types for Refunds](https://help.salesforce.com/s/articleView?id=commerce.om_flow_enable_unreferenced_refund.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization lets you process returns as unreferenced refunds. Unreferenced refunds are disconnected from the original payment method, so the funds can be returned to any credit type. You can enable unreferenced refunds in the return and RMA flows.") # Add Description of API Clients When configuring API clients, you can now add additional description and details about the API clients. The new description field is limited to 256 characters. # Add Environment Variables to Your Application You can now manage environment variables with the Managed Runtime API. Without making code changes, you can use environment variables to add variables into an application process running in an environment. Environment variables are stored securely, and are ideal for the following use cases: - API keys for third-party integrations - Feature flags for application logic - Configuration that differs between environments **How:** Access environment variables in Node.js using[process.env](https://nodejs.org/docs/latest-v18.x/api/process.html#processenv). To manage environment variables via the Managed Runtime API. See [Environment Variables](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/managed-runtime-administration.html#environment-variables). # Add EPS as a Payment Option EPS is an Austria-based payment method supported by all Austrian banks. You can add the EPS option to your storefront in Business Manager Payment Settings. # Add Inline Deep Links Use inline deep links in Point of Sale to render content inside the current screen. This capability keeps users engaged by providing relevant information without navigating away from their current task. Enhance user experience and streamline workflows by embedding content directly within the interface. Boost productivity and provide seamless access to essential resources. To create an inline deep link, inside the Layout Editor: 1. Select a cell. 2. Expand Cell Content. 3. Click **Inline Deeplink**. 4. Select a Deeplink Type from the left-side menu.![A screenshot shows the deep link options.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_deep_links_inline.png) 5. Configure the deep link and click SET DEEPLINK.
Deep Link Option Notes
Account Order History Displays the order history to logged-in users (native checkout required).
Payment Information Displays the saved payment details to logged-in users. It also allows the user to enter a new payment card details (native checkout required).
Saved Carts Displays the saved carts of logged-in users.

Wishlist

Displays the wishlist to a logged-in user (native checkout required).
Clienteling Cart Products Displays the cart products of logged-in users.
Contact Us    
Layout   Displays another layout inside of the current layout.
Loyalty  

Configure the display style of the inline loyalty deep link:

  • Loyalty Barcode: displays barcode to be scanned in store.
  • Linear Points Graph: displays the number of points earned in a linear display style.
  • Circular Points Graph: displays the number of points earned in a circular display style.
  • Loyalty Rewards List Mode: displays rewards earned.
  • Profile View: displays loyalty profile details.
  • Activity View: displays account activity.
  • Cash History View
  • Rewards History View
  • Redeem Rewards View
  • Credits
  • None

Supported Contexts: Hamburger Menu, Layouts, Tab, Inline Deeplink, Split Cell Inline Deeplink.

Note
Note Allowed in split cells.
My Bundles  

Displays bundles created by brand stylist (integration required).

Products Bundles Refer to the Configure Product Bundle Deep Links article.
Multiple Products

Displays the specific products in a horizontally scrollable row. Clicking on the product takes the user to the PDP.

Product Search

Performs a product search and shows the search results in a horizontally scrollable row.

For detailed documentation on product search deep link configuration, please refer to the Product Search Deep Link article.

Quiz Answers  

Displays the user's answer to a quiz question after taking the quiz.

Note
Note Allowed in split cells.
Store Associate Client Notes Displays a list of notes that store associates created for the current client
My Closet Products Displays a carousel of products for customer closet.
# Add Klarna as a Payment Option Commerce Payments now supports Klarna as a Multi-step payment option. You can offer shoppers the option to buy now and pay later. The Klarna payment option makes it convenient for shoppers to purchase items in all price ranges. How: Klarna is a feature of Stripe and uses your Stripe merchant account for payment processing. You can add Klarna as a payment option in Business Manager. Select **Merchant Tools** | **Ordering** | **Commerce Payments**. Edit an existing Payment Zone assignment or create a Payment Zone assignment and select the Klarna Payments option. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Note: Commerce Payments is built with Storefront Reference Architecture (SFRA) back-end and front-end components. To use Commerce Payments, your Salesforce Support team must enable the Salesforce Payments feature switch in Business Manager. # Add Language Support to the Store Page Layout To manage products in more than one language, add a supported language field to the store page layout. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Object Manager, and then select **Object Manager**. 3. In the Quick Find box, enter Store, and select **Store** | **Page Layouts** | **Store Layout**. 4. From the Fields menu, drag the **Supported Language** and **Default Language** fields on to the Store page layout. 5. Save your changes. #### See Also - [Page Layouts](https://help.salesforce.com/s/articleView?id=platform.customize_layout.htm&type=5&language=en_US) - [Configure Salesforce for Global Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_config_org_for_international.htm&release=264.0.0&type=5 "Make sure that your language, translation, and currency settings support B2B Commerce stores around the world.") # Add Locations and Location Groups Use the Omnichannel Inventory app to add locations, location groups, and location group assignments in this order. ### Required Editions
View supported editions.
1. Add locations. 2. Add location groups. 3. Assign locations to location groups. 1. Assign locations to location groups based on your business needs and fulfillment processes. (Assign each location to one or more location groups.) 2. Associate each location group with one or more storefronts. 4. Commit your entries to update the location data in the Omnichannel Inventory service. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_tip.png) Tip Set up your locations and location groups before you upload inventory data to the Omnichannel Inventory service. #### See Also - [Locations and Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_locations_and_location_groups.htm&release=264.0.0&type=5 "Omnichannel Inventory aggregates inventory availability information across locations and location groups. Use the Omnichannel Inventory Console to add, edit, and delete locations, location groups, and location group assignments. Search, sort, and filter data in the list views, or customize the list views to show only the records or data that you want.") # Add Locations and Location Groups Omnichannel Inventory is an external system that must know what location and location groups exist so it can track inventory properly. Set up your location graph by creating locations and location groups in your Salesforce org and committing them. For more information on working with locations and groups, see [Locations and Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_locations_and_location_groups.htm&type=5&language=en_US) in Salesforce Help. - **[Create a Location Graph for Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_create_location_graph_b2b_d2c.htm&release=264.0.0&type=5)** A location graph consists of locations and location groups. You can create the graph using the Omnichannel Inventory console app, Connect in Apex, or Connect REST API. - **[Considerations for Importing Product Availability into Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_importing_availability_data_b2b_d2c.htm&release=264.0.0&type=5)** Keep these considerations in mind when initially importing product availability data for locations and location groups. - **[Working With the Inventory Data File and Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_using_import_file_b2b_d2c.htm&release=264.0.0&type=5)** The inventory data file contains product availability data for the locations and location groups. Refer to these guidelines to create and manage the file. # Add Media to Products and Categories To provide more information about your products and categories, add images, videos, and attachments. You can associate media to parent and variation products. You can also associate a banner image to your B2B store’s product category pages. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) To display an external source on the product detail page, the URL must be added to the CSP Trusted Sites list. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Products**. 3. Select a product from the Product Workspace, and scroll to the Media tab. 4. To add images or videos to the product, complete the media fields. You can upload media directly, select them from your CMS workspace, or add them from hosting sites or cloud storage by using a URL. Only users assigned as workspace contributors can access the CMS workspace media. Drag and drop media to arrange them in the order in which you want them to appear on the product detail page. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Aura stores don't support video content on the product detail page, even when connected to an Enhanced CMS workspace. ![Content Selector for product media](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_media.png) 5. Save your changes. 6. Associate a banner image with the category. 1. From your store, select **Merchandising** | **Categories**, and select a category. 2. Under Banner Image, click **Add Image** and add a banner image. When you design your store, you can set up your category page to display the banner image you've associated with the category by selecting Banner Image in the Image URL or Expression property for the Banner component. Stores based on the LWR platform created in orgs provisioned with Commerce in Summer ’23 or later have a public channel to an enhanced CMS workspace. To allow those stores to also access media stored in a non-enhanced workspace, add the store's public channel to the non-enhanced workspace. See [Add a Channel to a CMS Workspace](https://help.salesforce.com/s/articleView?id=xcloud.cms_channel_add.htm&type=5&language=en_US). #### See Also - [Guidelines for Adding Product Images to a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_prod_cat_image_types.htm&release=264.0.0&type=5 "Enhance the visual appeal and user experience in your store with product images. Showcase alternate views, list images, banners, and tiles to help customers better understand and engage with your products.") - [Guidelines for Adding Product Videos to a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_video_guidelines.htm&release=264.0.0&type=5 "Integrate videos into the product gallery to enhance your store and provide a richer shopping experience.") # Add More Product Line Items per Basket If your site was limited to 50 line items per basket, the maximum number is increased to 200. This new limit doesn’t affect users who have been granted a lower or higher limit. #### See Also - [Configure Basket Preferences](https://help.salesforce.com/s/articleView?id=cc.b2c_configure_basket_preferences.htm&language=en_US) # Add Order Notes The POS app allows associates to add notes to orders and to items in an order. Store associates have the ability to add notes during checkout, in the order details screen, and to a suspended cart. Notes are also visible when creating a quote. - Modern POS App build: 5.12.2 21098 or above - Platform Support: iPhone & iPad - Offline Support: 6.5.2 22712 and above 1. Go to **App Config** | **Modules** | **Cart**. 2. Enable the Enable Item-level Order Notes app config setting to enable adding notes to items of the order. 3. Enable the Enable Order Notes app config setting to enable adding notes to the entire order.![The cart settings show the options to enable order notes.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_setup.png) ## POS Behavior ### Add Notes During Checkout Once the settings are enabled, store associates will be able to add notes to an order and its items during checkout.![A POS cart with note options highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_checkout_add_1.png) ![A POS cart shows the dialog to confirm the addition of a note.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_checkout_add_2.png) ![A POS cart shows the dialog for note entry.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_checkout_add_3.png) ![A POS cart shows a note indicator on a car item..](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_checkout_add_4.png) ![A POS cart shows the note history dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_checkout_add_5.png) ### Add Notes For Existing Orders Notes can also be added to orders already placed. To do so, navigate to the "Orders" screen and select the order to add notes to:![A POS cart highlighting an item to show it has no notes.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_add.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note When a cart is **suspended or saved for later** during checkout, the notes added by the store associate are saved to the order. When the cart is resumed at a later point, these notes are resumed as well ### Add Notes For Orders in Suspended Carts Notes are also visible when creating quotes. Once the store associate navigates to the "Suspended carts" screen and creates a quote for an order, notes previously added to the cart will be visible,![A POS screen highlights the suspended carts option.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_add_suspended_1.png) ![A POS screen shows a suspended cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_add_suspended_2.png) ![A POS shows the create a quote dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_add_suspended_3.png) ![A POS screen highlights that they suspended cart has no notes.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_add_suspended_4.png) ### Update Notes Notes can be updated during checkout and when viewing an already placed order. To update a note, tap on the Notes label to view the notes. Then, tap on the note to be updated and enter the new text for the note. ![A POS screen shows the dialog for updating a note.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_update.png) ### Return / Exchange Notes Similar to sales transactions, notes may be added to returns and exchanges at the order level and product level. When a new cart is created for a return or exchange of an existing sale order, the product and order notes from that sale order are carried forward to the new cart. When exchanging an item, notes may be added separately to both the old and new items.![A POS screen highlights the notes sections.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_notes_return.png) ### Order Notes in Receipts The notes added to any order may be printed in receipts. These notes may be printed by adding the PS tag _:ps\_order\_notes_ in the **Receipt Metadata** inside **Receipt Settings**. Order notes will also be printed during reprints and may be edited inside the order details screen. # Add Payment Source Information to the Payment Details Page As of Spring ’25, you can view the origin of a payment on the payment intent record. If you’ve been using Payments before the Spring ’25 release, you can add the Source section to the record page to capture the information. ### Required Editions
View supported editions.
User Permissions Needed
To edit record pages in the Payments app: Payments administrator permissions
1. At the top of the page, click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_setup_icon_no_border.png) and select **Setup**. 2. Select **Object Manager**. 3. In the Quick Find box, enter and select Payment Intent. 4. Select **Page Layouts** | **Payment Intent Layout**. The page layout opens. ![Payment Intent page layout showing the new Source section](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_add_source_section.png) 5. On the palette at the top of the page, select **Fields**, and drag the Section element onto the Payment Intent Detail part of the page. 6. Click ![layout properties icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_layout_properties_icon.png) to view the Section Properties page. 7. Enter Source as the section name, and select the column layout. 8. In the palette, drag the Payment Initiation Source field to the Source section. 9. Save your changes. 10. Refresh the app to see the Source section on the Details tab of each payment intent record. #### See Also - [Page Layouts](https://help.salesforce.com/s/articleView?id=platform.customize_layout.htm&language=en_US) # Add Product Sets as Qualifying or Discounting Conditions for Promotions You can add product sets as qualifying or discounting conditions to all promotion rules, except for the Choice of Bonus Product rule. When you add Product Set ID as a qualifying or discounting condition, any product belonging to that set can trigger the promotion and receive a discount from the promotion, or both. The only exception is that a Choice of Bonus Product rule promotion can’t use a product set to define the bonus products. How: To add product set to a promotion, click **Edit** in the Qualifying Products & Discounted Products field of a promotion. The product set is located under the ID qualifier. This new condition is also supported through the import & export framework. # Add Product Special Instructions Display special instructions on the product details screen when adding items to the cart using POS. Special instructions offer more product details. For example, you can display storage instructions. Ensure that users have all the information needed about a product before completing a purchase. - Modern POS App build: 6.4.2 or above - Platform Support: iPhone & iPad - Offline Support: No - PDPV2 layout must be used to show the product details. - In the product feed, add “instructionText” column with the value on products that need special instruction. For example, ”this is a special instruction” is added as instruction text to Product Modern Home Bed in [productFeedWithAddonsNumbers.csv](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/productFeedWithAddonsNumbers.csv)). ## Set Up Product Field mappings - In the CMS, go to **Feeds** | **Field mappings** | **Products**. - Map the source field “instructionText” to any available custom string under targetFields, e.g., CustomString12”.![An example of appropriate mapping for the instruction text field.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_product_special_instructions_set_up_product_field_mappings.png) ## Set Up PDPV2 - In the CMS, go to **Layouts** \> **Layout settings** > **PDPV2** - Open the PDPV2 layout which is configured in mobile config or create one. - Open **Advanced**. - In Special Instruction field name, from the dropdown, select the field which is used in field mappings in previous steps, e.g., “CustomString12”.![A POS screen layout in the editor highlighting the special instructions field name field.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_product_special_instructions_set_up_pdpv2.png) - Save the PDPV2 layout. ## POS Product Details Screen Behavior When associate opens the PDP of a product for which addons and special instructions are set and add it to cart, app displays the special instructions with Confirm Button. ![A product in the POS app displays its special instructions.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_product_special_instructions_pos_behavior.png) On the Click of confirm button, the product will be added to the cart. # Add Products to Categories in a B2B Store To make a product available in a B2B Commerce store, add it to a category. The maximum number of products in a category is 1.8 million. You can add products from either the Category workspace or the Product workspace. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) #### See Also - [Commerce Workspace Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_workspace_consideratons.htm&release=264.0.0&type=5 "Commerce workspaces are dedicated to specific merchandising jobs to help with the setup and ongoing management of your B2B store. The Commerce workspace list view functions a little differently from the standard Salesforce list view. Each workspace functions specifically for the type of data it’s meant to manage, but you can accomplish some common tasks across workspaces.") ## Add Products to a Category from the Category Workspace 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Merchandising** | **Categories**. 3. Select a category from the list. 4. On the category record page, click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_edit_action_arrow.png) next to Products and select **Assign Products**. 5. Select the products that you want to add to the category, and click **Next**. At a time, you can add up to 200 products to a category. 6. On the Edit Products page, you can remove or replace products. 7. Click **Save**. Under Products, you can see the products assigned to the category. ## Add Products to a Category from the Product Workspace 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Merchandising** | **Products**. 3. Select the products that you want to add to the category. 4. From the Bulk Actions dropdown menu, click **Add to Category**. 5. Select a category, and click **Save**. # Add Profiles and Permissions for B2B Store Community Members Specify which profiles and permission sets are members of the store community. Only users with profiles or permission sets that are part of a store’s community can access the store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) The person who created the store, or a person with the same profile as the person who created the store, must perform this task. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Feature Settings, select **Digital Experiences** and then select **All Sites**. 3. Next to your store name, select **Workspaces**. 4. On the My Workspaces page, click the **Administration** tile. 5. In the left pane, click **Members**. 6. From the Search dropdown, select **All**. 7. In the Available Profiles list, drag the profiles for your internal users, such as System Administrator and Commerce Business User, along with any other applicable profiles, such as your Shopper profile, to the **Selected Profiles** list. The user who created the store is already listed under Selected Profiles. For example, if you created the store as the Commerce Business User, the Commerce Business User profile is listed under Selected Profiles. 8. In the Permission Sets list, drag the permission sets that you want to have access to the store, such as buyers, buyer managers, or account switchers, to the **Selected Permission Sets** list. 9. Click **Save**. #### See Also - [Add Members to Your Experience Cloud Site](https://help.salesforce.com/s/articleView?id=platform.networks_customize_members.htm&type=5&language=en_US) # Add Purchase Orders Point of Sale's Purchase Order (PO) features ‌enable merchants to manage inventory, track purchases, and arrange timely delivery of goods. They provide a record of transactions and help streamline the procurement process by outlining the terms and conditions of the purchase. Merchants may use POs to communicate their specific requirements to suppliers, including product details, delivery dates, and pricing agreements. - Modern POS App Build: 7.15.5 or above - Platform Support: iPad, iPhone - Offline Support: None ## Set Up For POs, CMS controls the field mapping for product uploading, PO recommendations, and export jobs. ### Enable Purchase Order To enable PO, ensure that the Generate Recommended PO items toggle is enabled. 1. Go to **CMS** | **Store Management**. 2. Click **Store Settings**. 3. Click **Inventory**. 4. Make sure Generate Recommended PO items (generatePORecommendation) is toggled ON.![The CMS setting to enable purchase orders is highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_enable.png) ### Upload Product Files with CostPrice and CasePackQuantity and Update Field Mappings Ensure you have the correct product files that contain two purchase order-related fields (CostPrice and CasePackQuantity). Then, update the field mappings by following the below steps: 1. Go to **CMS** | **Feeds**. 2. Select **Field Mappings**. 3. Click **Products**. 4. Click **Source Fields +**. 5. Select **Add Field Manually**, mapping new fields to CostPrice and CasePackQuantity.![Example of purchase order field mapping in the CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_field_mapping.png) 6. Click **SAVE**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The changes from the field mapping will only be reflected after running the product feed. Make sure you load the product feed after the changes are saved. ### Set Purchase Order Export Rule Setting the export rule on CMS will help you get well-grouped export files based on the rule you set. The rule could be anything from the Target Field, such as Size, Brand, Color, etc. For example, if you set the export rule to Size, the exported purchase order files will be grouped by size specific. 1. In the CMS, go to **Store Management**. 2. Click **Store Settings**. 3. Click **Inventory**. 4. Enter the field name (_your rule_) in Column name to be split (columnSplitName).![The export role name set in the CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_export_rule.png) 5. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This field name must match the exact field from the target fields. ### Set Purchase Order Export Job After configuring the export rule (columnSplitName), you will need to create a new export job to export the purchase order into files. Please use File Transport Protocol (FTP) / Secure File Transfer Protocol (SFTP) to get the exported files. 1. In the CMS, go to **Feeds**. 2. Select **Export Jobs**. 3. Click + to create an export job. 4. Select Inventory Event Export. 5. Fill in the Title. 6. In the Events dropdown list, select PO\_TRANSFER\_COMPLETED\_EVENT. 7. Select FTP in Protocol. 8. Fill Export Destination URL with _ftp://predictspring.exavault.com_. 9. Fill Username and Password. 10. Fill Folder, Export File Type, Filename, and File Name Suffix. 11. Set Max Tries as _5_. 12. Click **Save**. Use these settings as an example.![Example settings for a purchase order export job.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_export_job.png) ### Set Purchase Order Recommendation Export Job 1. In the CMS, go to **Feeds**. 2. Click **Field Mappings** | **Export Inventory Events.**. 3. Under All Events, select Purchase Orders (PO).![The CMS shows the option to select purchase order under events in field mapping.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_recommendation_export_job_event.png) 4. Set the mapping by adding Output Fields.![The CMS shows mapping of fields for purchase orders.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_recommendation_export_job_mapping.png) 5. Click **Save**. ### Set the Purchase Order Deep Link on CMS The Create Purchase Order and Purchase Order History screen may be accessed via a deep link available on the CMS. Go to **Purchase Orders** | **Create Purchase Order & Purchase Orders** | **Purchase Order History**. ![The option to set the purchase order deep link in the CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_deep_link.png) ## POS Behavior Click the Create Purchase Order deep link. We should see this screen with the Recommended Products radio button selected by default and there should be an option of changing the radio button to Manual. ![The POS app showing the recommended product radio button.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_1.png) Select the Recommended section and by default, the first dropdown value will be selected e.g. 1 week. Currently, the dropdown has preselected values i.e., 1, 2, 3, and 4 week(s). Depending on the week selected from the dropdown, we will get the recommended products to select for creating a purchase order as seen in the above screenshot. Click the first-time Manual radio button. It will be an empty product list as seen in the below screenshot. ![The POS app shows an empty product list.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_2.png) There is a scan button on the top right of the screen where the user can either add a product to the Recommended or Manual section either by scanning or searching for a product from the product list. If manually searching, the product catalog will display, allowing users to search for items by entering text. Alternatively, using an external scanner will populate the search field with the product's barcode value. ![The POS app shows the option to scan a product.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_3.png) When you click on a product from the product list, a new screen will prompt you to enter the quantity you want to add to the product. ![A POS app dialog shows the option to enter quantity.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_4.png) We show extra details i.e., Volume (weekly), Available, On Order, Suggested Order Quantity, etc. (_if available_) in the pop-up shown in the above screenshot. After clicking on the confirm button, the product should be shown in the respective section. Please refer to the below screenshot as an example. ![The POS app shows an example of a scanned product's details.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_5.png) There are two options available for each product on the list: - Edit gives an ability to edit order quantity for the selected product. - Delete gives an ability to delete the product from the list. ![The POS app shows the option to delete a product.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_6.png) Important: Switching between sections will lose all the changes made to the respective section product list. On clicking the Create button, there are two options available: 1. Save as Draft - You can save the changes as a Draft from either section and they can check this order in history if they still want to create a purchase order. 2. Confirm to Create - You can create a purchase order from either section. ![The POS app chose the options to save as a draft or create a purchase order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_7.png)![The POS app shows the confirmation of a purchase orders creation with the option to print the purchase order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_8.png) You can check all the purchase orders from the Purchase Order History screen with Draft and Created status. ![The POS app shows the purchase order history screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_9.png) An order with the Draft status has a Details button where the purchase order details screen is displayed. Here, you can still generate a purchase order or update the product list. ![The POS app shows the option to create a purchase order from a draft.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_10.png)![The POS app shows a purchase order created from a draft.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_11.png) An order with Created status has the Details button and clone button. Here, the purchase order details screen is displayed where you can view the product list and still have an option to print. ![The POS app shows the purchase order detail screen displaying the product list and option to print.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_purchase_order_pos_12.png) On clicking the Clone button in the history screen, you will be navigated to Create Purchase Order screen in the Manual section with the same order details as the product list. Here, you can still create a purchase order. # Add Recommended Products to B2B Store Pages Increase engagement by showing personalized product recommendations on your store pages. Use a Carousel component with the Product Recommendations data source to show dynamic suggestions based on shopper activity. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. From your store, go to **Website Design** | **Experience Builder**. 2. Select the page where you want to add product recommendations. 3. From the Components panel, drag the **Carousel** component to the page. 4. Select the Carousel component and configure its properties: 1. Set Data Source to **Product Recommendations**. 2. For Source, select the anchor that determines which products to recommend. For example, select **Product Viewed** to show recommendations based on the current product. 3. Select the type of recommendations to show. Options include Recently Viewed, Similar Products, Complementary Products, Customers Also Bought, and Featured Products. 4. Use **Hide Fewer Than** to specify the minimum number of products required before the carousel appears. The default is 1. 5. From the Components panel, drag the **Product Card** component into the Carousel. 6. Configure product card properties to control which product details appear. 7. (Optional) To add a header to the recommendations section, drag a **Text Block** component above the Carousel and enter a title, such as Recently Viewed. 8. Preview your changes to verify that the recommendations appear correctly. 9. Publish your store to make the changes live. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Product recommendations rely on shopper activity data. Sometimes, if there isn't enough data for the selected recommender, the carousel doesn't appear or shows fallback recommendations. Shoppers see personalized product recommendations based on their activity and the selected recommender type, helping increase discovery and conversions. #### See Also - [Product Recommendation Sources in B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_product_recommendation_sources.htm&release=264.0.0&type=5 "Learn about the available recommendation sources and types for product recommendations in B2B stores. The Source setting defines the context used to generate recommendations, and the available Recommender options vary based on that selection. Select the right source for each page to deliver more relevant recommendations and improve the shopper experience.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") # Add Shipping Weight Options to a B2B Store If you set up shipping rates based on weight, you can add fields to the product page to enter weight for individual products. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) To offer weight-based shipping prices that are supported by a native shipping calculator in a store created before the Winter ’25 release, enable the Cart Calculator API. For stores created in Winter ’25 or later, the Cart Calculator API is enabled by default. See [Enable and Disable the Cart Calculate API for a Webstore](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html). 1. In the navigation sidebar, select a store from the Store dropdown. 2. At the top of the page, click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) and select **Setup**. 3. From Object Manager, select **Product**. 4. Click **Page Layouts**, and then select **Commerce Product Layout**. 5. In the Fields section, drag the Shipping Weight and Shipping Weight Unit of Measure fields to the Product Detail section. ![Adding shipping weight fields to the Product Detail section of the Commerce Product Layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_shipping_weight_fields_product.png) 6. Save your changes. #### See Also - [Add a Product to a B2B Commerce Store from the Workspace](https://help.salesforce.com/s/articleView?id=commerce.comm_products_create.htm&release=264.0.0&type=5 "Add a product to up to five categories. The product can include variations such as color and size. You can also add digital products, which can be excluded from shipping calculations.") - [Manage Shipping Zones and Rates for a B2B or D2C Store](https://help.salesforce.com/s/articleView?id=commerce.comm_manage_shipping.htm&language=en_US) # Add the Exchanges with RMA Flow to an Object Page Give customer service representatives easy access to the Exchanges RMA flow by adding it to the Actions & Recommendations component on a Lightning page for an object. Because all orders are associated with an order summary, add the flow to the Actions and Recommendations component on the order summary page. ### Required Editions
View supported editions.
Previous step: [Configure Flow for Exchanges with RMA](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_flow_ensure_funds_refunds.htm&release=264.0.0&type=5 "Exchanges with RMA support both EnsureFunds and EnsureRefunds. These variables must be configured properly in your org.") See all steps in [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns."). 1. From Setup, in the Quick Find box, search for and select **Actions & Recommendations**. 2. Click **New Deployment**, and then click **Next**. 3. Name the deployment, select **Flows and quick actions**, deselect **Recommendations**, and click **Next**. 4. In the Available Objects list, move the objects that you want to add the flow to, such as Account, to the Selected Objects list, and click **Next**. 5. On the Default tab, in the All Actions list, drag your Exchanges RMA flow to the Top Pinned section. 6. Select your Exchanges RMA flow, and click **Unmark Removable**. 7. Click **Next**, click **Save**, and click **Let’s Go**. 8. Open the record page for an object that you added the flow to, such as Account or Order Summary Record Page. 9. Click **Edit**. 10. Select the Actions & Recommendations component in the preview layout. 11. For Actions & Recommendations Deployment, select the deployment that you created, and click **Save**. 12. Click **Activation...** 13. Make sure the page is the org default for the desktop form factor. 14. Click **Close** and the click **Save**. Next step: [Add Country and State Picklists](https://help.salesforce.com/s/articleView?id=commerce.om_add_country_state_picklists_oobo.htm&release=264.0.0&type=5 "To let customer service representatives (CSR) select state and country codes for an address from a dropdown menu, enable state and country picklists. If you don’t enable picklists, the CSR must enter the state and country code into the address, which can introduce errors.") # Add the Inventory Reservation Component to the Checkout Page (Deprecated) The Checkout Inventory Reservation component was deprecated in Summer ‘25. This component is no longer available in Experience Builder for new implementations. If you have an existing inventory reservation flow that uses this component before Summer ‘25, the component functions as designed. If you remove the component from the Checkout page, you won’t be able to re-add it. The new streamlined place order flow creates inventory reservations automatically during the checkout process. - For new stores created after Summer ‘25, the streamlined place order flow handles inventory reservations automatically. See [Streamlined Place Order](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-d2c-comm-streamlined-place-order.html). - For existing stores that haven’t upgraded past Summer ‘25, enable the new place order flow. See [Streamlined Place Order](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-d2c-comm-streamlined-place-order.html). - To show inventory information to customers, you can still develop customizations on top of the place order flow with Salesforce Omnichannel APIs. See [Salesforce Omnichannel Inventory Resources](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_omnichannel_inventory_resources.htm). # Add the Order on Behalf Of Flow to an Object Page Give users easy access to the Order on Behalf Of flow by adding it to the Actions & Recommendations component on a Lightning page for an object. Because all orders are associated with an account, add the flow to the Actions and Recommendations component on the account page. ### Required Editions
View supported editions.
Previous step: [Activate the Order on Behalf Of Flow Template](https://help.salesforce.com/s/articleView?id=commerce.om_activate_oobo_flow.htm&release=264.0.0&type=5 "The Order on Behalf Of flow lets a customer service representative use OOBO or Order Entry to create an order on behalf of a customer. To use the flow, copy and activate the flow template, and then customize the flow as needed.") See all steps in [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization."). 1. From Setup, in the Quick Find box, search for and select **Actions & Recommendations**. 2. Click **New Deployment**, and then click **Next**. 3. Name the deployment, select **Flows and quick actions**, deselect **Recommendations**, and click **Next**. 4. In the Available Objects list, move the objects that you want to add the flow to, such as Account, to the Selected Objects list, and click **Next**. 5. On the Default tab, in the All Actions list, drag your Order on Behalf Of flow to the Top Pinned section. 6. Select your Order on Behalf Of flow, and click **Unmark Removable**. 7. Click **Next**, and then click **Save**. 8. Open the record page for an object that you added the flow to, such as Account. 9. From the Setup menu, select **Edit Page**. 10. Select the **Actions & Recommendations** component in the preview layout. 11. For Actions & Recommendations Deployment, select the deployment that you created, and click **Save**. 12. In the window that appears, click **Activate**, and then click **Save**. 13. Click **Activation**. 14. Assign the page as the org default. 15. Select **Desktop** for form factor. 16. Click **Save**. Next step: [Add Country and State Picklists](https://help.salesforce.com/s/articleView?id=commerce.om_add_country_state_picklists_oobo.htm&release=264.0.0&type=5 "To let customer service representatives (CSR) select state and country codes for an address from a dropdown menu, enable state and country picklists. If you don’t enable picklists, the CSR must enter the state and country code into the address, which can introduce errors.") #### See Also - [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.") - [Video: Order on Behalf Of Setup](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2) # Add Trusted Sites for Scripts for a B2B Commerce Store If you require your store to access a script on an external host, in Experience Builder, add the external host as a trusted site. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, click and open the **Settings** menu (gear icon). 4. Click **Security & Privacy**, and then click **\+ Add Trusted Site**. If you don’t see the Add Trusted Site button, change the Security level setting from Strict: CSP to **Relaxed: CSP**. Then, click **Allow**. If you continue to have issues, turn off **Lightning Locker** 5. Enter the required information. 1. Enter the name and URL. 2. Select **Active**. 3. Click **Add Site**. 6. Click **Add Site** again, and enter the required information. 1. Enter the trusted site name and the trusted site URL. 2. Select **Active**. 3. Click **Add Site**. 7. Confirm that the site names and URLs are active and listed under Trusted Sites for Scripts. #### See Also - [Website Design for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_template.htm&release=264.0.0&type=5 "Use the Website Design workspace to add basic design elements to your store without leaving the Commerce app. For example, add your logo and set fonts, colors, and button styles. For more advanced design changes, such as configuring store components, pages, or navigation, you can move out of the Commerce app to Experience Builder.") # Add Unsubscribe Headers to Email for Mailing List Compliance Add List-Unsubscribe and List-Unsubscribe-Post headers to emails sent using the dw.net.Mail class to support compliance with email provider guidelines, including Google Sender Guidelines. Use the new setListUnsubscribe and setListUnsubscribePost methods to integrate with externally-managed mailing lists and enable one-click unsubscribe functionality. The `dw.net.Mail` class now includes two new methods: - `setListUnsubscribe(String)` - Sets the List-Unsubscribe header value to work with List-Unsubscribe-Post to allow integration with an externally-managed mailing list - `setListUnsubscribePost(String)` - Sets the List-Unsubscribe-Post header value to support one-click unsubscribe functionality Both methods return the Mail object to support method chaining. These headers help comply with email provider requirements, including [Google Sender Guidelines](https://support.google.com/a/answer/81126?hl=en). **Where:** This feature applies to B2C Commerce. **How:** Use the new methods in your scripts when creating email with the `dw.net.Mail` class. For example: ``` mail.setListUnsubscribe(""); mail.setListUnsubscribePost("List-Unsubscribe=One-Click"); ``` #### See Also - [Class Mail](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/upcoming/scriptapi/html/api/class_dw_net_Mail.html) # Add URL Slugs to B2B Commerce Store Pages You can add a URL slug directly on a Product or Category record, or bulk update Products and Categories with a CSV file import. To use URL slugs, first configure languages and localizations for your store. You can only add one URL slug for each language. When you enable URL slugs, default URLs for product and category pages are updated. For example, product pages use the base URL `/product/:urlName`. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Digital Experiences, and then select **All Sites**. 3. For an active LWR site, click **Workspaces**. URL slugs aren't available for stores created with the Aura template. 4. From the Experience Workspace, go to **Administration** | **Preferences** and select **Use SEO-friendly URLs on this site**. Publish your site to apply changes. You can't disable this setting after enabling it. 5. To bulk import slugs for Products, upload a CSV file including the column name Slug \[language code\]. Use a language code that’s active in your org, site, and store. For example Slug en\_US. For more information, see [CSV File Format for Importing Commerce Data](https://help.salesforce.com/s/articleView?id=commerce.comm_prod_import_csv.htm&release=264.0.0&type=5 "You can import product data into B2B Commerce by creating a CSV file. Specify column headings for Product, Category, and Price Book information. Each row in the file represents a unique product and its variations."). 6. To bulk import slugs for Categories, perform a category import with a CSV file including the column name Slug \[language code\]. For more information, see [CSV File Format for Importing Category Data for a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_seo_category_urls.htm&release=264.0.0&type=5 "When you construct a category import file, specify column headings that correspond to category path, URL slug, and category description information. Each row in the file represents a category and its structure. The column headings are case-insensitive, and the columns can be in any order."). 7. You can also add a URL slug directly on a Product or Category record. In the navigation sidebar, select **Products** or **Categories**. Select a product or category. On the SEO tab, click **Add URL Slug**. ![SEO tab on a Product.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_url_slug.png) #### See Also - [Import Data Using a CSV File to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_import_products_global.htm&language=en_US) - [Make Objects Available for SEO](https://help.salesforce.com/s/articleView?id=experience.networks_seo_object_access.htm&language=en_US) - [Secure Guest Users’ Sharing Settings and Record Access](https://help.salesforce.com/s/articleView?id=platform.networks_secure_guest_user_sharing.htm&language=en_US) - [Default Object CRUD Permissions for B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_CRUD_perms.htm&language=en_US) # Add Your External Image Host as a Trusted Site So that your B2B stores can access your product images, add the external host where those images are stored as a Trusted URL. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Trusted URLs. 3. Click **New Trusted URL**. 1. For URL, enter the host’s URL. 2. For Context, select **All**. 3. In the CSP Directives section, select **img-src (images)**. 4. If more than one server hosts your product images, add each server as a Trusted URL. #### See Also - [Image Import for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_import_images.htm&release=264.0.0&type=5 "Product images and attachments that customers see when visiting your store are typically linked to a Salesforce CMS workspace. Usually the images are stored on a host external to Salesforce. You can configure the external host as a trusted site for your org. If you don’t have a CMS workspace, create one before beginning the import.") - [Create a CMS Workspace to Import Images to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_cms_workspace.htm&release=264.0.0&type=5 "When you use a CSV file to import images, you must specify a CMS workspace where the imported images are linked. If you don’t have a CMS workspace, create one before you begin the import process.") # Adding an Expression to a Commerce Component Enter expressions into any LWR component on a page with data providers. In some components, you can select an expression from a provided list. You can also combine expressions or add values. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## B2B Store Pages with Data Providers The expressions that you can use in a component depend on which data providers are available on the page. Pages with Commerce-related data provider components are: - Cart page—Access cart details and totals - Checkout page—Access checkout details - Order Summary page—Access order data - Product page—Access product data - Search page—Access search data Other places where data providers are available include: - Record Detail page—Access record data for supported objects through expressions, such as {!Item.recordField}. See [All Supported Objects](https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_all_supported_objects.htm). - Any page—Access CMS content through the Banner, Card, Overlap, and Tile components. See [Use Expressions in LWR Sites](https://developer.salesforce.com/docs/atlas.en-us.exp_cloud_lwr.meta/exp_cloud_lwr/advanced_expressions.htm). ## Built-In Expressions If a component includes built-in expressions, the Inherited Content field specifies which data is available. The component also includes a field where you can enter text or select an available expression. For example, in this text block on a Cart page, the inherited content is Commerce Cart Data. ![Text block component with Commerce Cart Data inherited content. Text or Expression dropdown shows Show ID and Account ID expressions.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_components_expression_built_in.png) The available expressions shown pull in the store ID and the account ID associated with the cart. The components with properties that indicate the presence of a data provider are: Banner, Button, Card, Grid, HTML Editor, Image, Overlap, Rich Content Editor, Text Block, Tile, and Video. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example - Show an offer that’s based on whether the unit price is more than $100. `{!Product.Pricing.unitPrice > 100}`—Returns true or false depending on whether the unit price is larger than 100. - Create an offer based on whether the list price is less than the unit price. `{!Product.Pricing.listPrice < Product.Pricing.unitPrice}`—Returns true or false depending on whether the list price is smaller than the unit price. - Show special deals based on a product’s brand. `{!Product.Details.fields.Name == 'someName'}`—Returns true when the product name equals ‘someName’. - Highlight customer savings. `{!+Order.totalAmount - (+Order.adjustmentAggregates.totalProductPromotionDistAmount)}`—Returns the difference between the total amount and the promotion distribution amount. - Show a product count next to the heading in the Cart Summary component. `Summary ({!Cart.Details.totalProductCount})`—Returns “Summary (X),” where X is the number of products in the cart. # Address Fields The Address object represents a mailing, billing, or home address. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Address object.
Field Label Description
Address The complete address.
Address Type

The address type.

Possible values are:

  • Mailing
  • Shipping
  • Billing
  • Home
Description The description of the address.
Driving Directions The driving directions to the address.
Location Type

The location type for a shipping address.

Possible values are:

  • Warehouse (default)
  • Site
  • Van
  • Plant

You can customize the location type values to represent your business processes.

Parent The name of the parent location for a shipping address, if any.
Time Zone The time zone for the address.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Address Verification and Complete Integrations Point of Sale supports address verification and address completion through integrations with technology partners. Use partner integrations to ensure accurate address information. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note To integrate with any of the services or request the use of an alternative service, contact Salesforce Customer Support as implementation takes place in the Point of Sale backend. ## Address Verification - QAS - Fedex ## Address Complete - Google # Adjust Inventory Buckets Change the inventory details for a product in Point of Sale CMS. To adjust a product's inventory bucket, select the ellipsis (three vertical dots) to the right and select **Edit Inventory**. A window will appear, allowing you to adjust the product's **Floor Demo**, **Not for Sale**, or **Safety Stock** bucket.You can adjust only one inventory bucket at a time and it takes 15–30 minutes for the changes to update. # Adjustment Objects An adjustment object represents discounts applied to an order or order product. Adjustment summary objects provide a dynamic view of adjustments. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Unlimited, and Developer Editions
To represent multiple discounts to a single product, each discount has a corresponding order product adjustment line item record. To represent adjustments to multiple order products or an entire order, Order Management creates an order adjustment group that associates all related adjustments. For example, an order is ingested with a 10% discount across the entire order. A 10% discount order product adjustment is created for each product in the order, and an order adjustment group represents these individual adjustments. For more information, see the [OrderAdjustmentGroup](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_orderadjustmentgroup.htm) object. When a discount is added in Order Management via the discount flow, an order product adjustment line item is created for each adjustment. These adjustments aren’t grouped in an order adjustment group. Adjustment objects represent purely financial changes, not other changes that affect payments, such as returns and cancellations. The change orders representing those changes include financial information, so adjustment objects aren’t needed. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note An adjustment can also represent a fee added to an order or order product, but that isn’t common. # Advanced Cart Management With advanced cart management, B2B buyers create and manage multiple independent shopping carts simultaneously, keeping complex project requirements organized without mixing data. Buyers can specify any saved cart as the default and change the default later. From any saved cart, buyers can request quotes or check out directly without switching to the default cart. Buyers can also apply and remove coupons, configure multi-address shipping, add gift wrapping and messages, and sort and paginate their cart list. Any cart is shareable with other buyers in the same account, with View, Edit, or Checkout access assigned to each collaborator. After you enable and configure advanced cart management, authenticated buyers add items from the Product page to a saved cart. Buyers can create up to 100 saved carts. The Cart Menu and the Add to saved cart dropdown list show the default cart and the four most recently modified carts. Buyers can name, rename, or delete saved carts to keep their procurement organized. ## Considerations - The cart name and description can have up to 250 unicode characters. In the cart name and description, avoid using special characters, including `"'<>@!$#&%\\{[]}`. If you don’t specify a cart name, a name is generated automatically by using the pattern, `Untitled Cart - [Date] [Time]`. - Saved carts support simple products, static bundles, product sets, subscriptions, and variants. However, any configurable items such as dynamic bundles or simple products with configurable attributes are currently not supported. - Only authenticated buyers can save products in saved carts. This feature isn’t available for guest shoppers. - Buyers can only view carts that correspond to the current active locale. - A saved cart is locked to the currency of the first item added to the cart. To shop in a different currency, a buyer must create a cart. - The mini cart currently can’t show the saved carts. The dropdown showing the list of carts is only available if the mini cart feature is turned off. - **[Enable Advanced Carts for B2B Buyers](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_enablemulticart.htm&release=264.0.0&type=5)** Configure your store to allow buyers to organize their purchases into independent project-based carts. After the advanced cart feature is enabled in your store, use Experience Builder to add advanced cart management components to your store. - **[Cart Sharing in B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_sharecartsetup.htm&release=264.0.0&type=5)** With the advanced cart management feature, B2B Commerce buyers can share a cart with other people on their account and control what each person can do with the cart. Cart sharing helps teams collaborate on an order and route it for internal approval before anyone buys. - **[Cart Import and Export](https://help.salesforce.com/s/articleView?id=commerce.comm_cartimportexport.htm&release=264.0.0&type=5)** Allow buyers to import products into a cart or export cart contents in B2B Commerce by uploading or downloading a CSV file. Buyers can use a CSV file to quickly add multiple line items to a cart without manual entry, or export a cart’s contents to a CSV file for offline review, editing, or record-keeping. Import and export uses the Cart Details component. Cart exports are subject to a daily limit of 1,000 data exports per account. #### See Also - [Enable Advanced Carts for B2B Buyers](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_enablemulticart.htm&release=264.0.0&type=5 "Configure your store to allow buyers to organize their purchases into independent project-based carts. After the advanced cart feature is enabled in your store, use Experience Builder to add advanced cart management components to your store.") - [Cart Import and Export](https://help.salesforce.com/s/articleView?id=commerce.comm_cartimportexport.htm&release=264.0.0&type=5 "Allow buyers to import products into a cart or export cart contents in B2B Commerce by uploading or downloading a CSV file. Buyers can use a CSV file to quickly add multiple line items to a cart without manual entry, or export a cart’s contents to a CSV file for offline review, editing, or record-keeping. Import and export uses the Cart Details component. Cart exports are subject to a daily limit of 1,000 data exports per account.") - [Cart Sharing in B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_sharecartsetup.htm&release=264.0.0&type=5 "With the advanced cart management feature, B2B Commerce buyers can share a cart with other people on their account and control what each person can do with the cart. Cart sharing helps teams collaborate on an order and route it for internal approval before anyone buys.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") # Advanced Configurations for Point of Sale Take your setup further by configuring payment gateways, Salesforce and third-party integrations, and tax providers. You can also manage Point of Sale data feeds, map fields, and export order files for review or reconciliation. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In 2024, Salesforce acquired PredictSpring, a provider of modern retail point-of-sale (POS) software built natively in the cloud. PredictSpring was renamed Retail Cloud and is now called Point of Sale. You may still see references to PredictSpring or Retail Cloud in the Point of Sale app and in our documentation. - **[Configure Payment Gateways](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate.htm&release=264.0.0&type=5)** Integrate payment gateways into Point of Sale to securely process customer transactions. Payment gateways authorize and settle payments, ensuring smooth and reliable financial operations. You can configure callback URLs for seamless payment gateway integrations. Compare payment providers and terminal payment gateway processors to find the best solution for your retail business.t - **[Set Up Salesforce Integrations](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int.htm&release=264.0.0&type=5)** Integrate Salesforce products and services with Point of Sale so that you can connect your data and workflows. With Omnichannel Inventory (OCI) integration, you can enable buy online, pick up in store (BOPIS) functionality. Also, use the Point of Sale Connector to integrate Salesforce Commerce and Salesforce Service with Order Management System (OMS) and Content Management System (CMS) configurations. - **[Set Up Third-Party Integrations](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int.htm&release=264.0.0&type=5)** Point of Sale supports integrations with third-party systems. Connect to external systems, such as gift cards, tax, finance, OMS, and ERP, to create a unified retail experience. Integrating third-party systems streamlines retail operations and ensures data consistency across platforms. This allows retailers to use specialized services and technologies while maintaining a cohesive technology ecosystem. - **[Configure Point of Sale Data Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds.htm&release=264.0.0&type=5)** Point of Sale data feeds streamline data integration, ensuring your retail operations run on accurate and up-to-date information. Configuring data feeds involves managing feeds and setting field mappings, so you can customize the flow of information. Refer to the feed file specifications to ensure data integrity and compatibility with the Point of Sale platform. By configuring data feeds properly, you gain better visibility into your retail business and optimize decision-making. - **[Export and Review Order Data](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export.htm&release=264.0.0&type=5)** Point of Sale offers data export options, such as Transaction Log (TLog) Export, Store Inventory Delta Export, and Electronic Journal Data Export. Data exports help retailers analyze transaction data, track inventory changes, and manage electronic journal information. By leveraging these exports, retailers gain valuable insights into their operations, optimize processes, and make data-driven decisions. Use TLog to review and analyze order data. # Advanced Insights Overview Dashboard In the advanced Insights Overview dashboard, you can view trends and calculated insights tied to specific goals and recommended actions. The dashboard also provides real-time visualizations of key performance indicators by store. Use these insights and actions to make informed decisions about how to improve your B2B Commerce store performance. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) The advanced Insights Overview dashboard is available if you have Data 360 provisioned with CRM Analytics. See [Set Up Data 360 for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_datacloud_commerce_setup_b2b_d2c.htm&language=en_US) for more information. To view the site conversion rate data, enable site conversion rate in the Data 360 for Commerce setup screen. View trends and calculated insights associated with specific goals (1), like increasing AOV or site conversion rate. Each goal is associated with recommended actions (2), which are tasks you can complete to help reach your goal. Use filters (3) to update visualizations for gross sales, total orders, product performance, and sales by location. ![Shows the various parts of the overview dashboard, including goals, actions, charts and tables.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_intel_overview_dashboard.png) #### See Also - [Set Up Data 360 for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_datacloud_commerce_setup_b2b_d2c.htm&release=264.0.0&type=5 "Integrate B2B Commerce with Data 360 to gain key business insights and unlock valuable analytics, personalization and automation capabilities for your store.") # Advanced Pricing for Commerce Powered by Revenue Cloud Advanced Pricing for Commerce Powered by Revenue Cloud is required in order to use these B2B Commerce features: - Subscriptions: Sell subscription products and manage pricing configurations to charge buyers on a defined schedule. See [Subscription Products and Pricing for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_intro.htm&language=en_US). - Configurable products and bundles: Calculate prices for configurable products and bundles based on the specific configuration chosen by the buyer. See [Configurable Products and Bundles for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_product_configurator.htm&language=en_US). - Context definition extension: Customize pricing rules by integrating custom Account and Product attributes. See [Use Custom Fields in B2B Pricing Procedure](https://help.salesforce.com/s/articleView?id=commerce.comm_pricing_context_extension.htm&language=en_US). [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Advanced Pricing for Commerce uses Revenue Cloud’s Salesforce Pricing. This feature is included in orgs with either a Commerce Growth or a Commerce Advanced license, along with a Revenue Cloud Advanced license. To purchase these licenses, contact your Salesforce account representative. For foundational concepts and detailed setup of pricing components, such as Pricing Recipes and Pricing Procedures, see [Salesforce Pricing](https://help.salesforce.com/s/articleView?id=ind.pricing_salesforce_pricing.htm&language=en_US). Advanced Pricing overrides the standard pricing for all products in your store. For standard pricing strategies and procedures, see [Commerce Pricing](https://help.salesforce.com/s/articleView?id=commerce.comm_commerce_pricebooks.htm&language=en_US). When you configure Advanced Pricing, these elements power your B2B store’s pricing logic: - Pricing Recipes: Create and manage pricing strategies by grouping the decision tables that serve as the data source for your pricing infrastructure. See [Pricing Recipes Setup](https://help.salesforce.com/s/articleView?id=ind.pricing_pricing_recipes.htm&language=en_US). - Decision Tables: Simplify and organize complex pricing logic into a clear structure to manage rules without hard coding conditional statements. See [Decision Tables](https://help.salesforce.com/s/articleView?id=ind.pricing_create_or_use_predefined_lookup_tables.htm&language=en_US). - Pricing Procedures: Implement dynamic pricing rules and calculate a product’s final price by using data from decision tables, formulas, and custom objects. See [Build Your Pricing Procedures Using Salesforce Pricing](https://help.salesforce.com/s/articleView?id=ind.pricing_pricing_procedures.htm&language=en_US). - Context Definitions: Gather and map the required data from your Salesforce objects, so your pricing procedures have the information they need to run. See [Context Definitions](https://help.salesforce.com/s/articleView?id=ind.pricing_create_context_definitions.htm&language=en_US). If your org uses both Revenue Cloud and Commerce, see [Considerations for Working with Multiple Pricing Recipes](https://help.salesforce.com/s/articleView?id=commerce.comm_multiple_pricing_recipes_considerations.htm&release=264.0.0&type=5 "If your org uses both Revenue Cloud and B2B Commerce, you likely have a Revenue Cloud default pricing recipe and a B2B Commerce default recipe. Note these considerations when managing multiple pricing recipes:"). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note To turn on multicurrency in your org that has active pricing procedures linked to predefined Salesforce Pricing lookup tables, deactivate your pricing procedure, turn on multicurrency, and then activate your pricing procedure. - **[Configure Advanced Pricing for Commerce in Your B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_commerce_pricing_elements_in_your_b2b_or_d2c_store.htm&release=264.0.0&type=5)** Configure Advanced Pricing powered by Revenue Cloud in order to use several Commerce features, including subscriptions and product configurator. - **[Refresh B2B Store Pricing Decision Tables](https://help.salesforce.com/s/articleView?id=commerce.comm_refresh_your_b2b_or_d2c_store_pricing_decision_table.htm&release=264.0.0&type=5)** To ensure accurate price calculations, map your price records to the correct pricing logic. Use the table to identify which Decision Table handles each pricing component type. - **[Use Custom Fields in B2B Pricing Procedure](https://help.salesforce.com/s/articleView?id=commerce.comm_pricing_context_extension.htm&release=264.0.0&type=5)** Customize pricing rules by integrating custom fields into your pricing procedure. Extend the standard Commerce context definition to add your custom Account and Product attributes, such as Loyalty Status or Product Capacity. Map these attributes to the pricing context so they're available for use in your pricing procedure. - **[Pricing Procedure Plans for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricing_procedure_plans.htm&release=264.0.0&type=5)** Use procedure plans to customize how prices are calculated in your B2B store. A procedure plan is a framework that combines your pricing procedure with optional custom code (Apex hooks). The procedure plan defines the sequence that your custom logic and pricing procedure follow to calculate the final price. - **[Contract-Based Pricing for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_contract_based_pricing.htm&release=264.0.0&type=5)** Create custom pricing contracts to offer negotiated prices to buyers. Override standard prices with contract pricing for selected products, so buyers automatically see their agreed rates across the store pages. Use this feature to manage complex pricing scenarios where different customers receive different prices. - **[Considerations for Working with Multiple Pricing Recipes](https://help.salesforce.com/s/articleView?id=commerce.comm_multiple_pricing_recipes_considerations.htm&release=264.0.0&type=5)** If your org uses both Revenue Cloud and B2B Commerce, you likely have a Revenue Cloud default pricing recipe and a B2B Commerce default recipe. Note these considerations when managing multiple pricing recipes: #### See Also - [Salesforce Pricing](https://help.salesforce.com/s/articleView?id=ind.pricing_salesforce_pricing.htm&language=en_US) - [Considerations for Using Commerce Subscriptions](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_considerations.htm&language=en_US) # Advanced Promotion Examples When you’ve familiarized yourself with the basics of creating a promotion, here are a few ways to customize them. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Add More Discount Targets A promotion can target a single category or include multiple product discounts. For example, “Spend $50, get $10 off product X or $10 off product Y” or “Spend $50, get $10 off category Z.” To target multiple categories for a discount, set up multiple promotions, one for each category. For example, in this promotion, “Spend $150, get $10 off category Z and D”, set up separate promotions in the Z and D categories. ## Add More Qualifiers Multiple qualifiers can make a promotion more flexible or more restrictive, depending on your qualifier criteria. If a customer must meet only one qualifier, select **Any**. To require that a customer meets every qualifier to receive the promotion, select **All**. ## Apply Quantity or Cart Limits To restrict the number of times a product can receive a promotion, in the discount settings, enter the quantity limit. To restrict the number of times a promotion can apply to a cart, in the promotion details, enter a maximum application per cart. To create more sophisticated promotions, combine these limits. To require that a customer meets the quantity limit before receiving the discount, select **Apply discount only when a cart reaches the quantity limit**. ## Create a Basic BOGO Promotion Deal To offer a buy-one-get-one (BOGO) deal, use the same product or product category as your discount and qualifier. Because the customer must buy a product at full price to receive the discount on an additional product, in the promotion details, select **Exclude qualifying items from discounts**. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example You want to require that a customer buys an item from the Baseball Cap category or an item from the T-shirt category to receive one free pair of athletic socks. The offer can be redeemed only one time per order. To configure this scenario: - Add a qualifier for both categories. - In the discount details, enter a quantity limit of 1. - In the promotion details, set the qualifier criteria to **Any**. - In the promotion details, enter a Maximum Applications Per Cart value of 1. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example You want to create a modified BOGO deal that offers customers 50% off two bags of Alpine Medium Roast Coffee for every five bags of that same coffee that they purchase. The customer must buy two additional bags, for a total of seven bags, to receive the discount. To configure this scenario: - Add a qualifier for Alpine Medium Roast Coffee, and enter a minimum quantity of 5. - Add a discount for Alpine Medium Roast Coffee. - In the discount details, enter a quantity limit of 2, and select **Apply discount only when a cart reaches the quantity limit**. - In the promotion details, select **Exclude qualifying items from discount**. ## Create Advanced BOGO Promotion Deals Sometimes merchants or manufacturers require that a discounted item can’t cost more than the least-expensive qualifying item. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example You want to create a modified BOGO deal that offers customers 50% off a pair of pants when they purchase a shirt. However, the pants must cost less than the shirt. - Create your promotion, and set the discount restriction to **Limit by Least Expensive Qualifying Product**. - Add a promotion qualifier. - Qualifier: Category > Shirt - Qualifier Type: Product category - Minimum Quantity: 1 - Add a discount target. - Target: Category > Pants - Target Type: Product category - Adjustment Type: Percentage Discount - Adjustment Percent: 50 - Quantity Limit: 1 By default, the most expensive items are discounted first, followed by the less expensive items. You can reverse this strategy and discount the least-expensive items first. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example You want to create a modified BOGO deal that offers customers a free pair of pants when they buy a shirt. If they have two pairs of pants in the cart, the least-expensive pants are free. - Create your promotion, and set the discount order to **Least Expensive**. - Add a promotion qualifier. - Qualifier: Category > Shirt - Qualifier Type: Product category - Minimum Quantity: 1 - Add a discount target. - Target: Category > Pants - Target Type: Product category - Adjustment Type: Percentage Discount - Adjustment Percent: 100 - Quantity Limit: 1 You can create a multiple-discount promotion that requires all discount types to be met before the promotion is applied. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example You want to create a modified BOGO deal that gives the customer two discounts. If they buy a shirt, they can get a pair of pants at 50% off and $10 off a pair of shoes. All three items must be in the cart before the promotion applies. - Create your promotion, and set the target criteria to **All**. - Add a promotion qualifier. - Qualifier: Category > Shirt - Qualifier Type: Product category - Minimum Quantity: 1 - Add a discount target. - Target: Product > Pants - Target Type: Product - Adjustment Type: Percentage Discount - Adjustment Percent: 50 - Quantity Limit: 1 - Add another discount target. - Target: Product > Shoes - Target Type: Product - Adjustment Type: Fixed Amount Off Unit Price - Adjustment Percent: 10 - Quantity Limit: 1 ![Add qualifiers for BOGO promotion deals.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_promotions_bogos.png) #### See Also - [Commerce Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_create_manage.htm&release=264.0.0&type=5 "Enhance your B2B store by adding customized promotions. Create segments, discounts, qualifiers, and coupons for the right customers to receive the right deals. Highlight promotions for eligible customers on store pages and during checkout to boost engagement and sales.") # Advanced Store Associates Creation in Point of Sale CMS Enter a Salesforce Commerce (SFCC) Business Manager (BM) user ID and password to enable customer lookup and online flows in Point of Sale (POS). This section is mandatory only if the SFCC is your repository. For all others, this section can be ignored. The user ID is the SFCC BM user ID and the password is the BM's password. If this isn't set, then the associate can continue using the POS. However, the customer lookup or online flows (Endless Aisle, BORIS, and Customer search) won't work for the associate being created. ![Advanced Section for Salesforce Commerce Repository](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_advanced_store_associates.png) # Adyen - Buy Now Pay Later Use Point of Sale (POS) app and Adyen terminals to accept Affirm payments, offering customers a Buy Now, Pay Later option. Prerequisites: - Modern POS App Build: 5.12.2 or later - Platform Support: iPhone & iPad - Offline Support: yes - Payment Gateway: Integration with Adyen to accept a payment During the payment process, the Adyen terminal will present the Affirm QR code if the customer wants to pay later for their purchase. Users will scan the QR code from their personal device and it opens the affirm pay flow in their device's browser. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Afterpay can be added if turned on by Adyen. ## Configure Payment Methods at Merchant Account level 1. Log in to your Adyen console. 2. Select **Accounts > Payment Methods**. 3. Select **Add Payment Method** in the top right corner. 4. Look for “**Affirm**,” select the checkbox, and select submit. ## Configure Payment at Store and Terminal level Adyen's support team needs to assist you in enabling payment methods at the store and terminal levels. ## Update the Configuration on the Terminal 1. Enter **9** and **O**. 2. Enter the admin key for the terminal 3. Select **Config**. 4. Select **Update**. ## POS Application Flow This feature is used by a store associate during checkout if a customer wants to use their QR code wallet app to pay for the items in-store. ### Checkout The associate clicks on the card option on the POS cart screen to complete the checkout. It initiates the transaction on the Adyen payment terminal and the customer sees a scan button for them to select the payment methods.![A message in the POS app telling the user to present their card.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pay_later_checkout_card.png)![A message on the Ayden terminal to insert or swipe card.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_scan_card_ayden.png)![A message in the Ayden terminal to select the ayment wallet.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pay_later_select_wallet.png) After the user selects the Affirm option, the terminal with present the QR code to start the payment flow. ![A QR code in the ayden terminal that starts the payment flow.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_qr_code_pay_later.png) If the user scans the QR code using their device's camera, the device prompts to open the Affirm link in the browser.![A push message at the topof the screen prompting you to tap it and open affirm.com in Safari.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_open_affirm_qr_code.png) After payment is completed in the device’s browser, the Adyen terminal is updated with transaction approval and an order is placed.![The POS app on an IOS device with a successful transaction message.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_approved_transaction_ios.png) ### Returns The associate can initiate the return of Affirm orders from the POS app and Adyen or Affirm manages the refund to the customer. # Adyen - Enabling Beacons Beacon functionality in Adyen Terminal allows it to broadcast its presence to nearby Bluetooth devices. We use beacons in the Adyen terminals to locate them from the Point of Sale Point of Sale (POS) app and connect them to the one to carry out the particular transaction. ## Scope and Use Cases Currently, Point of Sale supports all types of Adyen devices. For the purposes of this document, we've identified three classes: - Legacy, Adyen SDK only - Terminals with support terminal API - Terminals with support for beacons and terminal API The following use cases are covered in the scope: - The primary use case is a store associate can bind with beacon technology just before checkout (No sleeve iPod/iPad connecting with P400) - Legacy use case is a store associate to complete payment with a cradled iPod to an e315 using SDK connectivity only. - For terminals that don’t support beacons or the beacons are turned off, this use case allows store relate to bind to the reader by scanning the terminal's QR code - The last use case is to change to the terminal using beacons while the iPod is still in the e315 sleeve, but the SDK has lost the connection to it. This use case is a bit error prone and requires proper training of store associates. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important As of 2022, Adyen doesn’t support the e315 device. ## Enable Beacons in Adyen Console - Log into Adyen Console, select **Point of Sale**, and select **Global Properties**:![Global properties in the Point of Sale section of the Ayden console.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_beacons_global.png) - Enable Beacons At Merchant Level (Global)![Turning on beacons at the merchant level in the Ayden Console.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_beacons_merchant_level.png) - Turn on Beacons At Terminal Level![Turning on the beacons for POS at the Terminal Level.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_beacons_terminal_ayden.png) - Save the changes in the configuration ## Update the Configuration on the Terminal - Enter 9 and “O” - Enter the admin key for the terminal (Point of Sale Adyen TEST account - 3012) - Select **Config** - Select **Update** ## Configure UUID in CMS for Adyen Beacons Configure the UUID as the beacon ID in the payment gateway configuration![Set the UUID as the BeaconID in the payment gateway.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_beacon_uuid.png) ## App UI The Point of Sale platform supports SDK and terminal API methods to connect to the Adyen terminals. Legacy terminals like the e315 are only supported in SDK mode. We've added enhancements to address this limitation to support legacy and new terminals. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important As of 2022, Adyen doesn’t support the e315 device. ## Without Beacons If beacons aren't configured, the platform uses CMS-level settings to turn on terminal API usage for certain registers. Register configuration is required for this step. We have also enhanced to support dynamic switching between the SDK and terminal API. ## With Beacons App identifies the nearby available beacon enabled terminals if the user chooses card payment and Places Order in the **Checkout** screen. ## iPad Screens ![The Ayden Beacons connecting woth the Aydent Terminal on an iPad](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_terminal_ipad_screen.png) ## Configuring Registers with Adyen terminal API The complete configuration of registers is covered in a [separate article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_point_of_sale_registers.htm&release=264.0.0&type=5 "Configuring Point of Sale (POS) registers lets you track devices that run the Retail Cloud store app."). # Adyen - Line Item Display Display purchase details on the Adyen terminal before payment. Showing the cart summary on the payment terminal gives shoppers an overview of their purchase, including quantity, discounts, and taxes. Prerequisites: - Modern POS App Build: 5.10.3 or later - Platform Support: iPhone & iPad - Integration Prerequisites: Adyen terminal must be connected via the Device Manager screen in POS with 1:1 topology while online This functionality is available for these terminal models: AMS1\*, M400, M450\*, P400 Plus, SFO1\* and V400m. \* _POS supports M450, AMS1, and SFO1 from version 10.6.1 onwards_ ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note We can't refresh the terminal screen if the merchant uses a QA Code to pair to the terminal just before checkout (Mobile Configuration Setting: Scan QR Code for Terminal IP Address). ## Configure Point of Sale CMS for Ayden Line Items 1. Go to **Integrations > Payment Gateways**. 2. Edit an existing **Adyen Payment Gateway** configuration. 3. Turn on the **Cart Summary on Payment Terminal** setting. 4. Save your changes. ## POS App Flow After you've configured the settings and the payment terminal is linked via the Device Manager screen, the terminal is ready to show the cart summary. The cart summary will start appearing on the terminal as soon as you populate the cart. The summary will reflect the exact state of the current cart, including line item quantity updates, discounts, taxes, and so on The terminal will refresh to show the empty screen after the cart is voided or the transaction is complete.![Line items on an M400 terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_m400_terminal.png)![Line items on a V400m terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_v400m_terminal.png) ## Known Issues and Restrictions 1. The terminal display refresh can lag behind the POS display by a second or two due to network connectivity and stability. 2. If the app crashes while the receipt is showing, you can't reset the screen on the terminal by yourself (pressing X on the terminal won't work). 1. Restarting the app automatically pairs it with the previously connected terminal. Upon establishing the connection automatically, the POS will request to reset the terminal screen. 2. If automatic reconnection doesn't occur, the fallback is to reset the terminal by pulling out the battery. 3. If the line item is enabled and subsequent payment requests aren't showing up on the terminal (the app shows "**Present your card**," but the terminal continues to show the line items), confirm with your Adyen representative that `device.thirdPartyInteractionDelays` isn't configured. This property needs to be removed if it is configured. It can only be configured by the Adyen team. # Adyen 2024 Pay by Link (PBL) Updates in Point of Sale for EU Merchants For EU merchants using Pay By Link (PBL), Adyen has added three fields: Browser IP Address, Cardholder Name, and Cardholder Email Address or Cardholder Phone Number. Adyen automatically handles the Browser IP Address, but the other two require configuration in both the CMS and your Adyen account portal. If you’re using Verifone, these mandatory fields are captured by Verifone’s PBL process, so no additional setup is needed. ## Who needs to update? Any merchant using Pay by Link in the EU. ## What’s changed? These fields need to be included in all PBL requests: - Browser IP Address - Cardholder Name - Cardholder Email Address or Cardholder Phone Number Name and email capture require configuration in Adyen and RetailCloud, respectively. Merchants ‌must submit the information if it’s not included with the order. Adyen automatically sends the IP address with the request. ## What do I need to do? To comply with these new requirements, make the following configurations: - In your Adyen portal, update the setting **Pay by link** | **Settings** under Name on card. - In CMS, go to **Integrations** | **Payment Gateways** and edit your [Adyen configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5 "You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale.") and enable Require Customer Email to be Submitted. ## What Changes in the Shopper Experience? If there's no customer email associated with the order, Adyen requests the customer's email as part of the user flow. Note that this adds an extra step to the checkout process for customers. ## What if I don't want the extra step for shoppers? We recommend keeping this setting enabled, but don't use guest checkout and make sure an email is attached to each customer record. # Adyen Mail Order Telephone Order (MOTO) Process mail and telephone orders with the Point of Sale (POS) app and Adyen terminals. Prerequisites: - Modern POS App Build: 6.5.3 or later\* - Platform Support: iPhone & iPad - Offline Support: yes - Payment Gateway: Integration with Adyen to accept a payment Employees enter card information manually on Adyen payment terminals. To pay, enter your credit card number, expiry date, and CVV in the Ayden terminal. The associate then enters the information to finish the transaction. ## Update the Ayden Configuration on the Terminal The Adyen support team needs to assist you in enabling MOTO at both store and terminal levels. After it's enabled, you can update the configuration on the terminal. 1. Enter "**9**" and “**O**.” 2. Enter the admin key for the terminal. 3. Select **Config**. 4. Select **Update**. ## Turn on Payment Gateway Settings in Point of Sale CMS 1. Go to **Integration > Payment Gateways** 2. Select the previously created Adyen payment gateway or create an Adyen payment gateway. 3. Turn on the **MOTO** checkbox. ![The MOTO checkbox selected in the CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_moto_checkbox.png) 4. Select **Save** in the top right corner. ## Known Issues and Restrictions This feature can only be enabled from a multi tender flow. See this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_multitender_config.htm&release=264.0.0&type=5 "Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app.") for how to turn on multi tender in the POS app. ## POS App Flow This feature allows a store associate to manually enter a customer's credit card details on the Adyen terminal during checkout if those details are provided over the phone or via email. ## Checkout If an associate adds a credit card payment on the multitender screen, they can turn on the switch for remote sales. This will start the transaction on the Adyen payment terminal, allowing the associate to enter the credit card number, expiration date, and CVV.![Payment startng in the Ayden terminal in the POS App on an iOS device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_checkout_pos_ios.png)![Entering the card number on a Verifone device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_verifone_card_number.png)![Entering the card's expiry date in the Ayden terminal on a Verifone device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_expiry_date.png)![Entering the CVV number in Yden Terminal on a Verifone device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_cvc_ayden.png) If the associate enters all details, the terminal authorizes the transaction and order is placed. ![Payment Approval message on the Verifone device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_verifone_ayden_approved.png)![An order approval notice in the POS app on an iOS device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cm_hardware_ayden_approved_pos.png) # Adyen Payment Gateway Information You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale. Before you start the configuration process, have this information ready: - **Admin Access** — If providing admin access, then provide the account name, username, and password. - **No Admin Access** — If not providing admin access, then provide the admin menu pin, transaction menu pin, and maintenance menu pin. - **iOS SDK (e315 Only)** — If using the iOS SDK, then provide a Web service username and password. As of 2022, Adyen doesn’t support ‌the e315 device. - **Terminal API** — If using the terminal API, then provide the encryption version, identifier, and passphrase. ![Adyen Portal's General Settings screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_payment_gateway.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Amex requires separate merchant IDs (MIDs) for ecommerce and Point of Sale (POS). Visa, Mastercard, and so on don't require separate MIDs. ## Creating a Configuration for Adyen 1. Go to **Integrations > Payment Gateways**. 2. Select **CREATE**. 3. Under **Payment Gateway**, select **Adyen** from the dropdown. 4. Log into your Adyen Console and select the right merchant account. 5. Fill out all required fields using the table. 6. Select **SAVE** to save your changes.
Field Field Type Required Description
General Settings
Payment Gateway Pulldown Yes Type of payment gateway (for example Adyen)
Environment Pulldown Yes

Environment of the account (for example Test)

To test contactless payments, use a card version of 2.4 or newer.

Fulfillment Type Pulldown Yes Fulfillment type— select Default if you want to create this configuration for a POS app to perform transactions
Store ID Pulldown Yes

Select a particular store from the store dropdown to apply these settings to a particular store (for example, 1).

  • If you've yet to set up an Adyen and Point of Sale account, make sure your StoreIDs are the same for both accounts.

  • If your Point of Sale account is live but you haven’t set up Adyen, make sure your Adyen StoreID is the same as your Point of Sale StoreID.

  • If your Adyen account is live but you haven’t set up Point of Sale, make sure your Point of Sale StoreID is the same as Adyen's StoreID.

Payment Method Pulldown Yes

To distinguish between debit and credit card payments, you will need to turn on that with your Adyen representative (for example, Credit Card)

For debit cards, refer to the Field Funding Source in your Adyen terminal account. Additionally, turn on Funding Sources and Return Parameters in Adyen.

Additional Payment Method Pull down No This enables finance options to be processed on the POS app. Learn More
Device ID Text Yes Device ID that needs to be associated with this configuration. Irrelevant for Adyen and set to Default
Connectivity and Authentication
URL Base Text Yes

URL base for refunds and other communications to Adyen Cloud from Point of Sale. Reach out to your Adyen representative

Test: https://pal-test.adyen.com/pal/servlet/Payment/[version]

Live: https://[prefix]-pal-live.adyenpayments.com/pal/servlet/Payment/[version]

For example https://pal-test.adye-n.com/pal/servlet/

Payment/V52

Secondary URL Base Text Yes

Adyen will sunset Classic Payment APIs on March 31, 2024. Use the secondary URL base.

Test: https://checkout-test.adyen.com/checkout/v71

Live: https://{PREFIX}-checkout-live.adyenpayments.com/checkout/v71

Merchant Gateway ID Text Yes Name of the merchant account (for example POS)

Merchant Key

(API Key in Adyen Console)

Text Yes API Key used by Point of Sale for all their API communication and POS for Pay By Link and Terminal Management. It can be found by going to Developers > Account Credentials. Check if you have a Web service user available. If not, reach out to Adyen Support to request a Web service user. Select the Web service user. In the Authentication section, you’ll see the API Key section.
Services Checkbox Yes Services associated with the payment gateway. POS uses only Mail Order Telephone Order (MOTO).
Verify Button No After you've entered all the necessary information to connect your payment gateway service to Point of Sale, select the button to verify a successful connection. An error message will display if any of the information is incorrect. This verification process is also done.
Terminal Configuration
Terminal Certificate Name Suffix Auto-Complete Yes Terminal certificate name suffix associated with the payment gateway (for example, terminal.adyen.com)
Terminal Gateway ID Text No Merchant gateway ID associated with the terminals (for example, merchantPOS). POS uses this for Terminal Connection Validation. It is also used for defining the merchant codes if requesting for Terminal Management and Pay By Link.
Terminal Key Identifier Text No The key identifier in the Encryption Key section; used for API communication with terminals.
Terminal Key Encryption Version Text No The key version in the Encryption Key section; used for API communication with terminals.

Terminal User Name

(Username in Adyen Console)

Text No

The Web service username used to register the Adyen SDK for Legacy Terminal.

Important: Support is no longer available for this field.

Terminal Key Passphrase Text No The key passphrase in the Encryption Key section; used for API communication with terminals.
Terminal Beacon ID Text No

The terminal beacon ID. Setting this value will allow a terminal connection via beacons before each transaction. This will also disconnect the terminal after the order completion.

Important: Support is no longer available for this field.

Terminal Request Timeout Interval in Seconds Text No The terminal request timeout. Using ‌low values can cause problems. 150 seconds is the recommended default value. Negative values aren't allowed.
Payment Tokenization Events Pulldown No

Select when to tokenize payment methods for later use. Select "Endless Aisle" to tokenize online portions of mixed carts (orders containing both in-store and Endless Aisle items).

Note
Note

If an Endless Aisle order cancels before online fulfillment, the merchant's OMS is responsible for sending a cancellation for the authorized amount and token to Adyen.

Payment Status Verification
Payment Status Check API Timeout in Seconds Switch No The payment status check API timeout. The minimum interval is 5 seconds, and it can be adjusted up to 150 seconds based on the store's network quality. Setting the interval too short doesn’t give the terminal sufficient time to process and respond.
Transaction Verification Days Switch No Retention period for verifying unverified transaction in days
Advanced
Skip Fraud Check Switch No Turn on this feature if you want to skip the risk engine for Adyen transactions.
Has Cart Summary On Payment Terminal Switch No Turn on this feature if you want to have the cart summary on the payment terminal.
Manual Payment Settings
Manual Credit Card Entry on Terminal Switch No Turn on this feature if you want to have manual credit card entry on the payment terminal.
Manual Payment Capture Switch No Turn on this feature if you want to turn on manual payment capture. Refer to this article to learn more about configuring capture payments.
Mixed Cart Payment: Partial Capture Switch No

Turn on to capture in-store portions of mixed carts immediately while keeping online portions authorized. The app captures the online portion when the order ships. Works with Payment Tokenization Events set to "Endless Aisle".

Important
Important

Don't turn on Mixed Cart Payment: Partial Capture if you use Edit Order. Combining these features creates a critical vulnerability in the refund flow that can lead to revenue loss or payment abuse.

Terminal Management Settings
Adyen Company Account Name Text No The Adyen company account name.
Adyen Store Code Text No

Adyen store code, which can be found by going to "In-person payments" -> Stores. For example, the Adyen store code is "001".

Required for Tap to Pay if you’ve set up store-level payment settings in Adyen. For example, if certain payment methods are only available at specific stores, each of those stores must have an Adyen Payment Gateway configured in CMS with the correct Adyen Store Code.

Adyen Merchant Management URL Prefix Text No

The merchant's URL prefix.

  • Test: https://management-test.adyen.com/v3

  • Live: https://management-live.adyen.com/v3

The Management API permissions must be granted on your Adyen console for these endpoints:

  • /terminals: Management API - Terminal actions read

  • /stores: Management API - Stores read, Management API - Stores read and write

  • /terminalSettings: Management API - Terminal settings read, Management API - Terminal settings read and write

If any of the previous permissions aren't displayed in the console, reach out to Adyen support to have them turned on and displayed.

Adyen Terminal Management URL Prefix (Deprecated) Text No

Adyen’s POS Terminal Management API is being deprecated with a planned sunset date of April 1, 2025. As the Management API is used instead, the merchant’s URL prefix should be provided in the new "Adyen Merchant Management URL Prefix" field in this Payment Gateway Configuration.

  • Test: https://postfmapi-test.adyen.com/postfmapi/terminal/v1

  • Live: https://postfmapi-live.adyen.com/postfmapi/terminal/v1

Tap to Pay Settings
Adyen Tap to Pay URL Text No

The URL endpoint that is used to create a payment session for the app.

  • Test: https://checkout-test.adyen.com/possdk/[version]

  • Live: https://[prefix]-checkout-live. adyenpayments.com/checkout/ possdk/[version]

Pay By Link Settings
Pay by Link Base URL Text No

The URL endpoint that is used to create a payment session for the app.

Test: https://checkout-test.adyen.com/[version]

Live: https://[prefix]-checkout-live.adyenpayments.com/checkout/[version]

For example, https://checkout-test.adyen.com/v67

Pay by Link URL Expiration in Hours Number No The Pay-By Link expiration time. The minimum expiration time is 24 hours and the maximum expiration time is 1680 hours.
Send Store ID to Adyen Switch No Enabled means that store details are included in the payload if a payment link is created using the pay by link or Remote pay by link flows.
Require Customer's Email to be Submitted Switch No Enabled indicates that a customer email is required to support all Pay by Link orders. Note, this must be enabled for any merchants using PBL in the EU. Learn More
Callback URL
Generate Callback URL Other No

For Salesforce to receive Adyen callbacks related to payment failures, Salesforce provided a callback URL.

Important: The callback URL can only be configured at either the Company or Merchant level. It can't be configured in both places. Learn More

Gift Card Settings
Enable Gift Card Switch No Enabled indicates that gift cards will be supported via the payment terminal
Enable Expiry Date Input Field Switch No Enabled indicates that an input field for gift card expiry date shows in the terminal during gift card operations
Gift Card Provider Text Yes ​Select the gift card provider that'll be used in the terminal
Gift Card SKU Text Yes Product ID/SKU for a gift card
Cash Out Configuration Window Yes Configure cash redemption thresholds for gift cards. For more information, refer to this article.
## Turn On Cross-Store Refund Attribution for Adyen Use this setting if your refund flow allows returns at a different store than the original purchase location, especially across different Merchant Codes. This helps makes sure the correct store information is passed to Adyen during refund transactions, helping prevent mismatches that can lead to refund issues. 1. In CMS, go to **Store Management > Store Settings** 2. Expand **Adyen**. 3. Turn on **Attribute Cross-Store Returns to the Store where Returns are Processed (crossStoreRefundWithAdyen)** (1).![The Attribute Cross-Store Returns to the Store where Returns are Processed (crossStoreRefundWithAdyen) setting turned on.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_mcs_hardware_ayden_settings_xstore_refund.png) ## Configure Ayden and Set Up Payment Gateway Set up Adyen to process payments securely and reliably. Define the URL base, merchant gateway ID, and merchant key within Adyen to work with Point of Sale. ### Ayden Fields **URL Base**: This is the URL base for refunds and other communications to the Adyen Cloud from Point of Sale. Reach out to your Adyen representative. - Test: https://pal-test.adyen.com/pal/servlet/Payment/\[version\] - Live: https://\[prefix\]-pal-live.adyenpayments.com/pal/servlet/Payment/\[version\] **Merchant Gateway ID**: Name of the merchant account (for example RetailCloudPOS in the image). This can be found by selecting your account in the upper left corner of the screen. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Make note of whether you're in the merchant-level account or company-level account (outlined in red). [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5 "You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale.") ![The Merchant Gateway ID and URL Base in the Ayden Portal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_merchant_gateway.png) **Merchant Key**: This is the API key used by Point of Sale. Find your merchant key by going to **Developers > API Credentials**. Check if you have a Web service user available. If not, reach out to Adyen Support to request a Web service user. Select the Web service user after it’s available. In the Authentication section, you will see the API Key section. ![The Merchant Key on the API Credentials page in Ayden Portal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_merch_key_ayden.png) If an API key exists, check with the account owner to see if they have the API Key. If they can't provide it, confirm with Point of Sale if a new key can be generated. **Generating a new API Key**: Select Generate New API Key.![Generate a new API key in Ayden Portal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_gerneate_api_key.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Copy the API Key in a safe place immediately before it is obfuscated. After you've saved the API Key, select confirm and save the API Key. **Terminal Gateway ID**: The merchant gateway ID associated with the terminals. POS uses this for Terminal Connection Validation. It is also used for defining the merchant codes if requesting for Terminal Management and Pay By Link. ### API Terminal Integration 1. Go to **Adyen Console > In-person payments > Terminal settings > Integrations**. 2. Turn on the terminal API. For any changes to the terminal API, make sure you're using **Decrypted** mode as it will give you full access for any edits. 3. Scroll down to the **Encryption Key** section. 4. If these fields don't exist, add new ones and select Save at the bottom: 1. **Terminal Key Encryption Version**: Key version in the Encryption Key section; used for API communication with terminals. 2. **Terminal Key Identifier**: Key identifier in the Encryption Key section; used for API communication with terminals. 3. **Terminal key Passphrase**: Key passphrase in the Encryption Key section; used for API communication with terminals. ### Callback URL For Point of Sale to receive Adyen callbacks related to payment failures, Salesforce provided a callback URL. The URL shall be at the Point of Sale Merchant - Region level. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5 "You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale.") For enabling Pay by Link (PBL) for a merchant that is under a parent company, refer to [_Callback URL for Payment Gateway Integrations_](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_callback.htm&language=en_US)_._ ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Basic Authentication, HMAC key, and Additional Settings \[enabled\] aren't needed for Salesforce Adyen integration. 1. Generate a Point of Sale callback URL by going to your Point of Sale CMS staging account. 1. Go to **Store Management > Integrations > Payment Gateways**. 2. Edit an existing configuration or create one. 3. Under **Callback URL**, generate a new URL and copy it. 2. Go back to your Adyen console, go to **Developers > Webhooks > + Webhoook (blue button top right) > Standard Notification - Add**. 3. (Optional) Under **Description**, enter a description for the webhook. 4. Under **Server Configuration**, paste the URL you previously generated. Make sure that the Method is "**JSON**", the Encryption protocol is "**TLSv1.2**", and **Enabled** is turned on. 5. Go to **Test Notification > Select All > Test**. Check with Salesforce if a test notification is received in their backend for the merchant in the respective environment. 6. Go to **Additional Settings > Select All > Save Configuration**. ### Recommended Account Setup The callback URL within Adyen should be configured at the Point of Sale Merchant - Region level. Each region requires a unique payment gateway configuration, which includes a distinct callback URL. For example, a callback URL intended for the Germany (DE) region shall be exclusively associated with the corresponding DE Adyen account. If incorrectly configured, this can cause additional callbacks from Adyen, leading to inaccurate entries (false positives) in the Failed Order report. This happens if transactions intended for one merchant are mistakenly recorded under an unrelated account that doesn'tt recognize them. To make sure your account structure is correctly set up, consult with your Adyen representative. ## Deprecated Ayden Terminal Properties These terminal properties for connecting to the Terminal via Beacons and Adyen SDK Integration with Point of Sale are no longer supported. ### Terminal via Beacons \[Support Deprecated\] The following properties are required for connecting to the Terminal via Beacons: - Go to **Adyen Console > In-person payments > Terminal Settings.** - Select **View Decrypted** at the bottom (This will allow you to see the properties in plain text). - Select **Connectivity**. - Scroll down to the **Beacon** section. SDK Integration is used for legacy terminals such as the e315. Important: As of 2022, Adyen has announced the end of support for the e315 device. Terminal Beacon ID: Select Enable Beacons if not enabled. Use UUID from the Beacon section ### Adyen SDK Integration \[Support Deprecated\] SDK Integration is used for legacy terminals such as the e315. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important As of 2022, Adyen has announced the end of support for the e315 device. Terminal Username: Name of the Web service user you used previously (for example If the name is ws@company, use WS). Terminal Password: Select into the previous Web service user. In the Authentication section, you will see Basic Auth. If a password exists, check with the account owner to see if they have the password. If they can't provide it, confirm with Salesforce if a new password can be regenerated. Generating a new password: - Type the password and retype it to confirm it. - Copy the Password in a safe place immediately before it is obfuscated. - Select **Generate POS Password**. - After you've saved the Password, select **confirm** and save the Password ## Frequently Asked Questions (FAQs) Learn about the most often-asked questions about Ayden Gateway and how it functions with Point of Sale ### How long does it take for money to be returned to a customer's card if processing a return with Adyen? We don't support a postvoid CTA from the POS app. With Adyen, if the entire order is marked for return, our initial action is to void the order. If the payment hasn't been captured, Adyen cancels the order. If the payment has been taken, it starts the normal refund process. This usually takes 3–5 business days, but this time varies by bank and institution. ### What's the typical time window for payment capture with Adyen before it cancels vs. refunds? For in-store cash and carry, capture occurs before the Thank You screen on the POS app. For manual capture, typically during shipment. Sometimes partial capture can happen immediately. All these settings are configurable by the merchant. ### Is it possible to perform a void auth with Adyen? We attempt a cancellation (void) with Adyen first. If it fails because the funds have been captured, we proceed with a refund. The timing of capture is entirely configurable by the merchant. Cancellation removes the authorization on the card and makes the funds available again. ### Does Adyen require canceling the entire order, or can specific lines be canceled, and can we update the authorization amount? Yes, Adyen requires full order cancellation; specific line cancellation is not supported. Any adjustments to the authorization amount & follow the normal refund process. ### How can we mark a sale as returned if the refund was initiated in Adyen? Currently, marking a sale as returned directly from the POS isn't possible if the refund is processed through Adyen. It is recommended to coordinate with your accounting team to manage such cases. They can make the changes they need directly in Salesforce, using the Order Management Record (MOR), instead of through the POS system. Make sure that your Finance team, if they're handling refunds via Adyen, can modify orders in your Order Management System (OMS) accordingly. ### How do I set up the POS for a merchant composed of two legal entities, each with its own bank account? For a merchant with two legal entities and separate bank accounts, it's recommended to set up all stores from both legal entities in a single Point of Sale environment. At the store level, you can select a payment gateway (Adyen) and tie it to the respective bank account for each legal entity. Transactions from each store will be routed to the respective bank account associated with that store's legal entity. Keep in mind that store-level configuration for order posting is not supported, and each legal entity shall have its own merchant account, as per Adyen's documentation. # Adyen Payment Methods Integrate supported Adyen payment methods integrate with Point of Sale (POS), allowing your customers to use a variety of payment options. Currently only US-available payment methods have been listed here as the Salesforce Adyen test account is US-based. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Some payment methods require further certification by Salesforce for these reasons: - Requires test account to certify: Certification for these methods will require a test account to complete the certification process. This is unique to gift card payment methods. This test account is required to link the Adyen payment method to the gift card provider's account. - Requires additional testing to certify: Certification for these methods will require additional testing from Salesforce engineering. This applies to some digital wallet or 'buy not pay later' services as sandbox test accounts will have to be created to test. If these methods are required, reach out to your Salesforce representative. - Requires SDK integration. Supporting this payment method requires additional work from PS engineering. If these methods are required, reach out to your Salesforce representative. - Ecommerce-specific payment method. This payment method is only supported for ecommerce platforms and doesn't have support for in store payments via the terminal. ## Credit and Debit Cards | Payment Method | Is supported? | | --- | --- | | American Express | Yes | | Accel | Yes | | Bancontact (BCMC) | Yes | | Cartes Bancaires | Yes | | China UnionPay | Yes | | Dankort | Yes | | Diners | Yes | | Discover | Yes | | Elo | Yes | | Hipercard | Yes | | JCB | Yes | | Maestro | Yes | | Mastercard | Yes | | Nyce | Yes | | Pulse | Yes | | Star | Yes | | UATP | Yes | | Visa | Yes | | Visa Electron | Yes | | V-Pay | Yes | To test contactless payments, use a card version of 2.4 or newer. ## Gift Cards | Payment Method | Is supported? | | --- | --- | | GiveX | Yes | | Stored Value Solutions (SVS) | Yes | | Fiserv (formerly ValueLink) | Yes | ## Digital Wallets | Payment Method | Is supported? | | --- | --- | | Apple Pay | Yes | | PayPal | Requires additional testing to certify. | | Google Pay | Yes | | Union Pay | Requires additional testing to certify. | | Samsung Pay | Requires SDK integration. | | Amazon Pay | Ecommerce-specific payment method. | | TWINT\* | Yes - Verified by a merchant in the EU region. | To test contactless payments, use a card version of 2.4 or newer. ## Buy Now, Pay Later Services | Payment Method | Is supported? | | --- | --- | | Affirm | Yes [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_adyen_buy_now_pay_later.htm&release=264.0.0&type=5 "Use Point of Sale (POS) app and Adyen terminals to accept Affirm payments, offering customers a Buy Now, Pay Later option.") | | Afterpay | Yes, requires setup from Adyen and additional testing to certify | | Klarna | Currently not supported, this requires additional testing to certify | # Adyen Payment Terminal Onboarding and Pairing to POS Set up Adyen terminals to connect to the Modern POS and process payments. Connect your Adyen terminal to Wi-Fi, board the device, and then pair it with the POS app. ## The POS platform supports Adyen device models P400, V400, SFO1, and more. For a full list of supported Adyen terminals, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers."). The steps covered in this article include pictures of the P400 Plus terminal. However, note that the interface is identical in the P400, V400, and M400 terminals. ## Prerequisites - If you've yet to set up an Adyen and Point of Sale account, make sure your StoreIDs are the same for both accounts. - If your Point of Sale account is live but you haven’t set up Adyen, make sure your Adyen StoreID is the same as your Point of Sale StoreID. - If your Adyen account is live but you haven’t set up Point of Sale, make sure your Retail Cloud StoreID is the same as Adyen's StoreID. - To test contactless payments, use a card version of 2.4 or newer. - **[Configure Ayden Terminal for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_ayden_pos.htm&release=264.0.0&type=5)** Connect an Adyen terminal to a network so you can board it and complete the pairing process with the Point of Sale (POS) app. - **[Troubleshooting POS App Connection with Ayden Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_troubleshoot_ayden_connect.htm&release=264.0.0&type=5)** Resolve POS connectivity issues with Adyen terminals by using these troubleshooting steps. Make sure ‌smooth transactions occur by addressing error messages, connection problems, and configuration issues. - **[Ayden Terminal Known Issues and Restrictions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_terminal_known_issues.htm&release=264.0.0&type=5)** Understand the limitations and known issues if using Adyen payments. # Adyen Terminal Discovery via Terminal Management API Turn on the terminal management APIs for your account and configure terminals with store associate-friendly names to take advantage of this feature. Prerequisites: - Modern POS App build: 6.2.3 or later - Platform Support: iPhone & iPad - Offline Support: no The [Terminal Management API](https://docs.adyen.com/point-of-sale/managing-terminals/terminal-management-api) provides endpoints for retrieving information about your payment terminals and assigning them. ## Configuring Web service Account for Terminal Management Contact your Adyen support team to assist you in turning on terminal management APIs for your account. To configure the web service account for terminal management: 1. Log in to your Adyen portal and go to **Accounts > API Credentials**. ![The Ayden UI with API credentials highlighted in the Configure section.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_api_credentials.png) 2. Select the correct Web service user that has access to the company level or have the Admin create one for you. The **Accounts** tab under **Roles and Associated Accounts** section shall include the company's account. ![The Accounts tab under Roles and Associated Accounts section](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_associated_accts.png) 3. Make sure the **POS Terminal Management API** role is set up for the Web service user they currently use for PS Payment Gateway Integration. The **Roles** tab under **Roles and Associated Accounts** section shall include the company's account. ![The POS Terminal Management API page in the Ayden UI.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_term_mgmt_api.png) Make sure you have the API key for this Web service user. We have a way to configure this in Payment Gateway on CMS as Merchant key as Point of Sale uses it for refund API. If you're using the returns feature in the POS app, have this configured. ## Configuring Terminals with Store Associate-Friendly Names 1. Set the Display Label for every terminal by going to **Terminal > Customization > Signature and device name > Display label**. 2. A general recommendation is to keep the terminal names short and unique so it is easier for associate to quickly select the right terminal depending on the location inside the store. ![A friendly name configured in the Display label section of the Ayden Settings page.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_friendly_names.png) ## Configure Point of Sale CMS for Ayden Terminal Discovery Configure terminal discovery properties within the Adyen Payment Gateway so store workers can select payment terminals. ### Disabling QR Code Scanning We've added a QR scan code flag, so associates can scan a terminal QR code before placing an order through a terminal. This flag is obsolete with the discovery. We've kept that flag for backward compatibility so the existing POS apps continue to work as before.![The Scan QR Code for Terminal IP Address setting in Ayden is turned off.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_no_qr_code_scan.png) To test the new version of the app, we suggest copying the app settings and turning off this flag in the new copy. You can switch to this app configuration with a token and test the discovery. After the testing is complete with this app configuration, you can distribute the app to all devices and turn on the flag for all app configs. ### Configuring Payment Topology to 1:N 1. To set the topology at the store level, go to **Store Management > Store Settings > Store Register > Retrieve Current Payment Topology For Merchant**. 2. Set to "**1:N**." 3. Starting with version 8.4.1, printer topology can be configured at the register level in the CMS. To configure the payment terminal topology at register level, go to **Store Management > Register > Edit > Payment Topology and select "1:N"**. If topology is set to 1:N, the POS app doesn't show receipts on devices that support Adyen payment gateways (m400, P400, v400). This is even though the Adyen payment gateway is set to 1:N in the CMS. ### Configuring Terminal Management Settings in Adyen Payment Gateway 1. Go to **Integrations > Payment Gateways**. 2. Edit the **Adyen Payment Gateway** configuration. 3. Scroll to **Terminal Management Settings** to see the terminal discovery properties. ![The Terminal Management Settings in Ayden.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_terminal_mgmt.png) 4. Obtain the Adyen account details from your Adyen Portal: 1. **Adyen Company Account Name** - Name of the company account. ![The company's account name as shown in the Ayden portal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_acct_name.png) 2. **Adyen Store Code** - Store code corresponding to this store on Adyen console. If filled, the store code filters the discovered terminals as well. ![The store code shown in the Ayden console.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_store_code.png) 3. **Adyen Terminal URL Prefix**: 4. Production: [https://postfmapi-live.adyen.com/postfmapi/terminal/v1](https://postfmapi-live.adyen.com/postfmapi/terminal/v1) 5. Test: [https://postfmapi-test.adyen.com/postfmapi/terminal/v1](https://postfmapi-test.adyen.com/postfmapi/terminal/v1) ![API URLs shown in the Ayden portal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_url_prefix.png) ## POS App Flow for Ayden Terminal Discovery Associates can select a terminal for payment processing if logging into the Point of Sale Point of Sale (POS) app, which automatically discovers available terminals. ### Discovering Terminals on Cart If the associate logs in, the POS app automatically triggers the discovery of all available terminals in the store. If the associate is ready to check out, they select a terminal. The associate is presented with a list of terminals with their display names as set in the Adyen console. If no name was set, the app shows the terminal ID. If the associate doesn't see the terminal, they can select **Refresh List** to trigger the discovery of any newly connected terminals.![A list of Ayden payment terminals on the POS app screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_pos_refresh.png) Tapping on any reader from the list and clicking **Confirm** initiates a connection. Upon successful connection, the terminal prompts for payment. After a successful transaction, the terminal chosen is forgotten. The associate is asked to select the terminal again. ### Discovering Terminals in Device Manager The Device Manager screen also shows the list of all discovered terminals. If the associate chooses to connect the reader from the Device Manager screen, the app remembers the selection until it is manually disconnected or completes the current transaction. The associate has to make a selection again for the next transaction.![A list of available Ayden terminals in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_pos_device_mgr.png) ### Switching Network Modes If the app loses network connectivity and switches to offline mode, the register defaults to a 1:1 topology for terminals. Users shall re-pair their preferred terminal through the Device Manager screen. While in offline mode, the list of terminals discovered via Terminal Management API remains available. After network connectivity is restored and the system switches back to online mode, the register resumes normal 1:N topology behavior.![The offline mode screen in the POS App after you've switched network modes.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_pos_offline_mode.png) ## Troubleshooting Ayden Terminal Discovery Errors When terminals don't appear in Device Manager, it's typically due to issues with Terminal Management API settings or permissions. If the Device Manager shows no terminals, there are several possible causes. ### Possible Cause 1: Terminal Management API settings are incorrect Verify that the merchant account, store code, and API prefix are set correctly. ### Possible Cause 2: Terminal Management API Permissions aren't given at the company account level Make sure the company level is checked for the WS user accounts. ![The company account in Ayden portal where you make sure company level is turned on for the WS user accounts.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_no_company_api_perms.png) ### Possible Cause 3: Terminal Management API Permissions are given at subaccount level Make sure all the subaccounts levels are unchecked for the WS user accounts. In the screenshot, the subaccount is checked and it shouldn’t be checked. ![The sub-account is turned on in Ayden when it shouldn't be.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_subacct_checked.png) ### Possible Cause 4: Web service API Key is mismatched The API key in CMS must match the exact WS API key in your Adyen console. In the screenshots, the last four letters of the key are the same. On Adyen:![The web service user configured in the Ayden portal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_webservice_key_ayden.png) On CMS:![The web service user configured in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_webservice_key_cms.png) # Afterpay Salesforce Commerce Integration Integrate Afterpay with Salesforce Commerce to offer customers a flexible payment option. By integrating Afterpay, retailers can provide a buy now, pay later option. This payment flexibility can lead to increased sales and customer satisfaction. Review the architecture and integration steps to enable Afterpay within Point of Sale. ## Architecture Point of Sale integrates with these Afterpay APIs: - [Get Configuration](https://developers.afterpay.com/afterpay-online/reference-link/get-configuration): This helps in determining whether the cart is eligible for Afterpay based on the order total. - [Create Checkout](https://developers.afterpay.com/afterpay-online/reference-link/create-checkout): Gets the Afterpay token by sharing the cart details with Afterpay. - [Capture Full Payment](https://developers.afterpay.com/afterpay-online/reference-link/capture-full-payment): This is required for immediate payment flow [Immediate Payment Flow.](https://developers.afterpay.com/afterpay-online/reference#immediate-payment-flow) - [Auth](https://developers.afterpay.com/afterpay-online/reference-link/auth): This is required for [Deferred Payment Flow.](https://developers.afterpay.com/afterpay-online/reference#deferred-payment-flow) ## Sequence Diagram ![Sequence diagram shows the interaction between Point of Sale and Afterpay](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_afterpay.png) - Get the configuration from Afterpay which provides the min and max order total eligible for Afterpay. If the cart total falls in the range present user an option to pay with Afterpay. - If the customer decides to pay with Afterpay make a create checkout call to Afterpay based on the customer cart. Get the Afterpay token. - Send the Afterpay Token to App so that it can redirect the customer to the Afterpay application. - Once the app gets a callback from Afterpay it makes a confirm Order call to Point of Sale and Point of Sale will create an Afterpay Payment Instrument in Salesforce Commerce using the POST Payment [/baskets/{basket\_id}/payment\_instruments](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/shop/Resources/Baskets.html#id-1036387805__id468168297) OCAPI. - Submit the Order using the OCAPI : [/orders](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/shop/Resources/Orders.html#id1963720859__id650939338) This will create the order from the basket. This hook will have customizations to not make place orders and mark orders ready for export. It will be in a created state. - Once the Order is created successfully Point of Sale will make either the Capture or Auth call to Afterpay. - Based on the Afterpay Capture/Auth API call, send the response back to the Salesforce Commerce using PATCH [/orders/{order\_no}/payment\_instruments/{payment\_instrument\_id}](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/shop/Resources/Orders.html#id1963720859__id-742188022) OCAPI. If the transaction is approved - place the order, populate the custom attributes required for Afterpay, and mark the order ready for export. In case the Afterpay transaction was not approved but declined, the order will be marked as failed using the same OCAPI hook PATCH [/orders/{order\_no}/payment\_instruments/{payment\_instrument\_id}](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/shop/Resources/Orders.html#id1963720859__id-742188022). ## Customer Questionnaire - Does the above flow match your website behavior? - Afterpay Credentials: - Merchant ID and Secret Key. - Which Afterpay flow is used? Immediate vs Deferred? - Salesforce Commerce details: - Afterpay Payment Instrument ID. - Afterpay custom attributes needed on the Order. # Agentforce for B2B Commerce Use the power of generative AI to drive a better shopping experience and a more personalized communication with customers and to help merchants achieve greater shopper conversion in your B2B stores. Agentforce for Guided Shopping - B2B helps your customers discover new products, view past orders, reorder, and check on order status in your B2B stores. Agentforce Merchandising for B2B Stores streamlines merchandising tasks and improves business outcomes through insights. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Agentforce for Guided Shopping for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping.htm&release=264.0.0&type=5)** Guided Shopping Agent blends the best of in-store and online shopping in your B2B stores. Powered by generative AI and advanced language models, the agent helps customers discover new products, view past orders, reorder, and check on order status. - **[Agentforce Merchandising for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant.htm&release=264.0.0&type=5)** Use the merchant agent to reduce store creation time and grow revenue through data-driven shopper insights. Communicate with Einstein ‌using natural language with fewer clicks and more precision. #### See Also - [Agentforce: Design and Implement Agents](https://help.salesforce.com/s/articleView?id=ai.copilot_intro.htm&type=5&language=en_US) - [What are Agents?](https://help.salesforce.com/s/articleView?id=ai.copilot_overview.htm&type=5&language=en_US) # Agentforce for Guided Shopping for B2B Commerce Guided Shopping Agent blends the best of in-store and online shopping in your B2B stores. Powered by generative AI and advanced language models, the agent helps customers discover new products, view past orders, reorder, and check on order status. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Watch the video to see an overview of Agentforce Guided Shopping for B2B Commerce and a demonstration of it's capabilities. If you can’t watch the video in full screen, open the video on a new tab: [Agentforce Skills for Guided Shopping for B2B Commerce](https://play.vidyard.com/hsGWHpmQ37HS3eVJHYEtcw). - **[Considerations for Agentforce Guided Shopping for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_considerations.htm&release=264.0.0&type=5)** Before setting up a guided shopping agent, consider supported functionality, usage, limitations and allowances, limits, and other issues. - **[Enable Einstein Generative AI and Agents for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_enable.htm&release=264.0.0&type=5)** Provide your customers the best shopping experience when they're visiting your B2B stores by enabling generative AI features. - **[Implement a B2B Guided Shopping Agent](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_implement.htm&release=264.0.0&type=5)** A guided shopping agent can recommend products, reorder a previous order, and look up existing orders in your B2B stores. To improve the customer experience, implement your agent with standard and custom topics. #### See Also - [Trailhead: Agentforce for Guided Shopping for B2B & D2C Commerce](https://trailhead.salesforce.com/content/learn/modules/agentforce-for-guided-shopping-for-b2b-and-d2c) # Agentforce Merchandising for B2B Stores Use the merchant agent to reduce store creation time and grow revenue through data-driven shopper insights. Communicate with Einstein ‌using natural language with fewer clicks and more precision. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Watch the video to see how the merchant agent helps you analyze your store performance data and develop strategies that maximize product performance. If you can’t watch the video in full screen, open the video on a new tab: [Agentforce Merchandising for B2B Stores](https://play.vidyard.com/QamGBkP6mwzHsKz1Ptq5fY). ## Enablement Overview To launch the merchant agent, first review [Considerations for Agentforce Merchandising for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when using Agentforce Merchandising for B2B Stores.") for information about important limitations and support. Next, [Enable Agentforce Merchandising for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_enable.htm&release=264.0.0&type=5 "Use the power of a Merchandising Agent to help you be more productive, eliminate the need to navigate to screens, fill in values, and take action. Activate Einstein generative AI features and other required features and tasks to power up your productivity.") to tap into the required generative AI capabilities and features. Then, [Add Agentforce Merchandising for B2B Stores Topics](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_add_topics.htm&release=264.0.0&type=5 "Add topics to define what you want Merchandising Agent‌ to do. The promotions topic helps you craft promotions that meet your business needs. The business insights topic retrieves helpful insights into your store.") topics to enable the actions the agents use to help you with your store. Lastly, test, provide access, and activate the agent in [Launch Agentforce Merchandising for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_launch.htm&release=264.0.0&type=5 "Before launching an agent, test it to ensure good performance. After Merchandising Agent is live, depending on the topics you selected, the agent can help you create promotions or get insights about how to improve KPIs."). Optionally, [integrate Slack with your B2B merchant agent](https://slack.com/intl/en-in/help/articles/30754346665747-Connect-Salesforce-and-Slack), to interact with the agent directly from Slack. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Slack doesn't support these actions: - Assign Subscription - Create Product - Create Product Bundle - Get Bundle Status - Get Product Status - List Subscription Options - Update Product Settings ## Use Cases Admins and merchandisers can use the merchant agent in their everyday tasks in a variety of ways. Here are some examples. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example Sally, a merchandiser for CRG Brands, wants to create a promotion for the company’s store. She decides to use Agentforce to help her quickly draft a promotion as part of a Halloween campaign. She asks the agent to: “Create a promotion for the Testa Rossa coffee machine, where the discount is 25% on all orders valid until October 31, 2024.” The merchant agent uses that utterance and the actions from the Commerce Promotions topic to create a template for the promotion. Together, Sally and the agent fine-tune the promotion using natural language. Sally reviews the promotion, and pleased with the results, she activates it. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example Sally wants to understand some of the KPIs for the store in a more meaningful way. She turns again to her trusty agent and says: “Show me the insights for the average order value for this store.” The Merchandising Agent uses that utterance and the actions from the Insights Business Objectives topic to retrieve the requested data. Sally receives the KPI and Insight Summary and, based on that information, decides the best course of action to move her organizational goals forward. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example Sally wants to know how the store is performing when it comes to purchases, so she asks the agent about site conversion. Sally asks the agent: "What is the site conversion rate for the store?" The merchant agent responds with the change in the average order value for the store over the last 30 days, and highlights the categories that contributed least to the average order value. With this information, Sally is able to make decisions about marketing tactics, possible promotions, and inventory. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example Marcus, an Account Manager, notices that one of his key accounts hasn't placed an order in a while and wants to understand if there's a larger revenue trend issue. He asks the merchant agent: "Show me revenue trends for Acme Corp." The merchant agent uses that utterance and the Get Account Revenue Trend action to retrieve year-over-year performance data. Marcus receives an interactive card showing the revenue change percentage, current revenue versus prior period, order and average order value, and days since last order. Based on that information, Marcus decides to reach out to the account proactively and click the Draft Win-Back button to create a targeted offer. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example Lisa, a B2B Merchandising Manager, is reviewing her quarterly account health and wants to understand why revenue has declined for one of her top customers. She asks the merchant agent: "Show me dropped categories for Acme Corp." The merchant agent uses that utterance and the Get Account Category Churn action to analyze purchasing patterns. The agent lists the categories the account stopped buying from, the prior period revenue at risk, and Einstein-generated insights about the churn pattern. Based on that information, Lisa decides to create a targeted win-back campaign for the abandoned categories and click the Draft Win-Back Promotion button to launch the offer. - **[Considerations for Agentforce Merchandising for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_considerations.htm&release=264.0.0&type=5)** Keep these considerations in mind when using Agentforce Merchandising for B2B Stores. - **[Enable Agentforce Merchandising for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_enable.htm&release=264.0.0&type=5)** Use the power of a Merchandising Agent to help you be more productive, eliminate the need to navigate to screens, fill in values, and take action. Activate Einstein generative AI features and other required features and tasks to power up your productivity. - **[Add Agentforce Merchandising for B2B Stores Topics](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_add_topics.htm&release=264.0.0&type=5)** Add topics to define what you want Merchandising Agent‌ to do. The promotions topic helps you craft promotions that meet your business needs. The business insights topic retrieves helpful insights into your store. - **[Launch Agentforce Merchandising for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_launch.htm&release=264.0.0&type=5)** Before launching an agent, test it to ensure good performance. After Merchandising Agent is live, depending on the topics you selected, the agent can help you create promotions or get insights about how to improve KPIs. #### See Also - [Trailhead: Agentforce Skills for Merchandising: Quick Look](https://trailhead.salesforce.com/content/learn/modules/agentforce-merchant-quick-look) # Agentforce Proactive Fulfillment Alerts Stay ahead of supply chain volatility by transforming insights from the Analytics Dashboard into actionable recommendations. Agentforce continuously monitors fulfillment orders and triggers proactive alerts when it detects fulfillment risks by evaluating real-time disruptions like weather alerts and operational inefficiencies, such as processing delays, workflow or lay out issues. Use these recommendations to trigger autolaunched flows so that Agentforce can temporarily exclude specific locations and reroute existing allocated orders or update the processing time of slower locations to mitigate delays before they affect the customer experience. ### Required Editions To help you manage fulfillment operations based on weather conditions, Agentforce integrates with the National Weather Service (NWS). When you use this feature, Agentforce shares your data with the NWS to retrieve weather alerts. Agentforce then uses this information to recommend or trigger actions in Order Management.
View supported editions.
- To use Agentforce Order Management, your data streams must connect to Data 360, Data 360 permissions sets, and Order Management. See [Turn on Data 360,](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_provision.htm&type=5&language=en_US) [Data 360 Standard Permission Sets](https://help.salesforce.com/s/articleView?language=en_US&id=data.c360_a_userpermissions.htm&type=5), [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&type=5&language=en_US). - Review the necessary data stream setup. See [Order Management Analytics](https://help.salesforce.com/s/articleView?id=commerce.om_analytics_overview.htm&type=5&language=en_US). - Create data streams between Order Management and Data 360 using data kits. See [Share Data Using Order Management File-Based Data Kits](https://help.salesforce.com/s/articleView?id=commerce.om_share_data_using_om_data_kits.htm&type=5&language=en_US). - From Setup, in the Quick Find box, enter Omnichannel Inventory, and then enable Omnichannel Inventory.. See [Omnichannel Inventory Implementation](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_implementation_guide.htm&type=5&language=en_US) - Create data streams between Omnichannel Inventory (OCI) and Data 36 using data kits. See [Share Data Using Omnichannel Inventory File-Based Data Kits](https://help.salesforce.com/s/articleView?id=commerce.inv_share_data_using_oci_data_kits.htm&type=5&language=en_US). - In addition to Agentforce, your org needs the Agentforce Employee add-on liciense. To add it, contact your Salesforce Account Executive. ## Set Up Agentforce Order Routing Follow the steps below to set up Agentforce Order Routing. 1. Enable Einstein Generative AI and Agentforce. 1. From Setup, in the Quick Find box, enter and select **Einstein Setup**. If you can’t find Einstein Setup, make sure that your org meets the prerequisites for generative AI features. For more information, contact your Salesforce Account Executive. 2. Turn on **Einstein**. 3. From Setup, in the Quick Find box, enter and select **Agentforce Agents**. 4. Turn on **Agentforce**. 2. Configure the Order Routing agent. 1. From Setup, in the Quick Find box, enter and select **Agentforce Agents**. 2. Click **New Agent**. 3. Select the **Agentforce for Order Management** template, and click **Next**. 4. The required Subagents are preselected. Click **Next**. 5. Name the agent, and for Company, enter Your company specializes in efficient order routing. 6. Click **Next**. 7. Select the language and tone for your agent's conversational responses. 8. Click **Create**, and activate the agent. 3. Assign user access to the agent. 1. From Setup, in the Quick Find box, enter and select **Agentforce Agents**. 2. Select **Order Routing Agent**. 3. From Agent Access, click **Add**. 4. Select the Permission sets and profiles that include Agent Access. Only users with this permission set can interact with this agent. 5. Click **Add**. ## Insights and Recommendations Top Insights and Recommendations identified by Agentforce. ### Example Insights and Recommendations In this example, each insight represents a unique fulfillment risk that Agentforce identifies and ranks by severity. Each card features a recommended action that dynamically changes to match the problem with the most effective mitigation action. ![Insights and Recommendation](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_example_insights_and%20recommendations.png) - If processing times triple in Chicago, Agentforce recommends creating a routing rule to exclude that location. - If Agentforce identifies a consistent delay in Dallas as a calibration issue, it recommends updating the location’s estimated processing time. - For proactive threats, such as a National Weather Service flood warning for Seattle, Agentforce suggests creating a weather-protection rule. ## Review and Respond to Proactive Alerts Review proactive alerts and decide how to respond based on the recommendations. Agentforce identifies fulfillment inefficiencies and provides recommendations, such as updating fulfillment processing time or creating routing rules. 1. To view alerts, go to **App Launcher** | **| Order Management** | **| OM Analytics** | **| Top Insights and Recommendations** (1) . If you don’t see the Agentforce icon (2), make sure that you’ve enabled Agentforce and activated Agentforce for Order Management. See Set Up Agentforce Order Routing. 2. Review the alerts, which include action buttons based on the specific insight, and choose your action. Depending on the data, Agentforce recommends that you click **Create a Rule** or **Update** Processing Time (3). ![Top Insights and Recommendation](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_review_alerts.png) 1. To create a rule, click **Create Rule**. 2. Select an existing rule group or create one. 3. Converse with the agent to create the rule. ![Create Rule](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_create_rule.png) 1. To update the processing time, click **Update**. 2. Review the details and respond Yes. 3. Click **Confirm** to update the order processing time. ![Update Processing Time](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_update_processing_time.png) # Agentforce Revenue Management for B2B Commerce Create products with personalized offerings that cater to your B2B customers. Present complex product offerings, and validate product selections instantly. Handle complex pricing strategies, and provide advanced configuration, pricing, quoting, and subscription management tools. ## Revenue Management and B2B Commerce Licenses Revenue Management features for B2B Commerce are available in Salesforce orgs with either a Commerce Growth license or a Commerce Advanced license, along with a Revenue Cloud Advanced license. To purchase these licenses, contact your Salesforce account executive. To use the Revenue Management features for B2B Commerce, [Enable Revenue Settings](https://help.salesforce.com/s/articleView?id=ind.qocal_turn_on_quote_and_order_capture.htm&language=en_US). ## Organize Your Catalog with Product Variants in Agentforce Revenue Management Group related products that share a common identity but differ by specific features under a single parent record. Manage shared product details in one place while each variant maintains its own SKU for inventory, pricing, and quoting. Buyers can select from available variations directly on product detail pages, with real-time inventory and pricing updates. See [Product Variations](https://help.salesforce.com/s/articleView?id=commerce.comm_var_att_intro.htm&language=en_US) and [Create Product Variants in Agentforce Revenue Management](https://help.salesforce.com/s/articleView?id=ind.product_catalog_create_product_variants_in_revenue_cloud.htm&language=en_US). ## Create, Manage, and Sell Digital Subscriptions Set up digital products in your store and sell them as one-time, evergreen (non-expiring) or term-based (expiring) subscription products. Buyers can cancel, renew, amend, or change the subscription payment methods. Collect payments based on a defined schedule, and manage subscription pricing policies. Facilitate subscription schedules and create monthly bills by using Agentforce Revenue Management. Buyers can also renew multiple subscriptions in bulk through a single API request. See [Subscription Products and Pricing for Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_intro.htm&language=en_US). ## Enable Complex Pricing Strategies Advanced Pricing for Commerce Powered by Revenue Cloud is designed for businesses that require complex pricing modifications and intricate pricing procedures. Customize your pricing logic and calculations with pricing recipes, decision tables, context definitions, and pricing procedures. Control when and how pricing rules, discounts, surcharges, and adjustments are applied based on business conditions. Apply pricing logic consistently across quotes, orders, and subscriptions without custom code. See [Advanced Pricing for Commerce Powered by Revenue Cloud](https://help.salesforce.com/s/articleView?id=commerce.comm_advanced_pricing_for_commerce_stores.htm&language=en_US), [Pricing Procedure Plans for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricing_procedure_plans.htm&language=en_US), and [Build and Manage Your Procedure Execution](https://help.salesforce.com/s/articleView?id=ind.pricing_procedure_plan_framework.htm&language=en_US). . ## Incentivize Bulk Purchases with Tiered Pricing Implement volume-based discount strategies that automatically adjust pricing based on quantity thresholds. Define multiple pricing tiers with corresponding unit prices or discount percentages. Show tier breakpoints to buyers, encouraging larger orders. Provide enterprise customers with pre-negotiated pricing without manual intervention. See [Set Up Tiered Pricing for a B2B Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pas.htm&language=en_US) and [Volume and Tier Based Discounts](https://help.salesforce.com/s/articleView?id=ind.pricing_add_volume_discount_element.htm&language=en_US&type=5). ## Sell Configurable Product Bundles on Your B2B Store Create made-to-order products and work with complex product configurations by using the constraint-based configuration engine. Empower buyers to configure, customize, preview, and purchase product bundles with instant pricing updates. Buyers can purchase complex products without requiring sales assistance. See [Configurable Product Bundles for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_product_configurator.htm&language=en_US). ## Streamline Negotiations with Request for Quote Let buyers initiate price negotiations for high-value or complex purchases directly from their cart. Integrate your store with Agentforce Revenue Management to review requests, adjust pricing or quantities, and track quote statuses throughout the negotiation lifecycle. See [Request for Quote](https://help.salesforce.com/s/articleView?id=commerce.comm_request_for_quote.htm&language=en_US). ## Control Product Access Dynamically with Qualification Rules Manage product visibility in catalogs with qualification rules. These rules dynamically evaluate the product visibility for buyer groups based on their account data. Automate product and category eligibility instead of manually maintaining entitlement policies. See [Qualification Rules in Your B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_qualificationrules.htm&language=en_US). #### See Also - [Learn About Revenue Cloud](https://help.salesforce.com/s/articleView?id=ind.revenue_lifecycle_management.htm&language=en_US&type=5) - [Revenue Cloud Glossary](https://help.salesforce.com/s/articleView?id=ind.revenue_impl_glossary.htm&type=5&language=en_US) # AI Agent Use Cases for Order Management Use an AI agent to set up Order Management and complete common Order Management tasks conversationally, such as finding and canceling order items. Instead of navigating the Order Management console, service agents, operations managers, and admins can describe what they want in natural language. The AI agent reads and updates order, inventory, delivery, and routing data, but confirms each change before it acts. It also explains constraints and reports blockers with next steps. ## Connect an AI Client to the Headless 360 MCP Server (Beta) You can use any AI client that connects to the Headless 360 MCP Server (Beta), such as Claude Code, Cursor, Agentforce Vibes, or Slack for orgs that have it. The functionality comes from the Order Management APIs. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note The Headless 360 MCP Server is a beta service. Use of this beta service is at the Customer's sole discretion. If the Customer has signed a written Unified Pilot Agreement, the service is subject to that agreement. Otherwise, the service is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/agreements/). Applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/) also apply. 1. **Set up your org** for the Salesforce Hosted MCP Servers, including an External Client App with the `mcp_api` and `refresh_token` scopes. See [Set Up Your Org](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/setup-overview.html). 2. **Activate the server.** See [Headless 360 MCP Server (Beta)](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/headless-360-mcp.html). 3. **Connect the client to your org.** See [Connecting an MCP Client](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/client-connection-overview.html). Never paste credentials into a prompt. Authenticate the client to your org instead. Each use case names the permission set for the connected user. See [Order Management Users and Permissions](https://help.salesforce.com/s/articleView?id=commerce.om_impl_users.htm&release=264.0.0&type=5 "To access Order Management features, users need the System Administrator profile or either the Standard Platform User profile or the Identity User profile along with the Salesforce Order Management feature permission set license. Users also require access to the Order Management console app and to any customizations that you implement. Order Management includes some persona-based permission sets that you can use as is or clone and customize."). ## Billing Considerations For the current billing guidance, see [Understand AIforce Impact](https://help.salesforce.com/s/articleView?id=005360285&type=1&language=en_US). ## Use Cases Each use case describes a common goal, walks through a scenario, and shows how to accomplish it with an AI client. - **[Set Up Order Management with AI Tools](https://help.salesforce.com/s/articleView?id=commerce.om_steelthread_initial_setup.htm&release=264.0.0&type=5)** Streamline Order Management setup through a guided conversation with an AI client. The agent turns on Order Management, configures sharing and the Order Summary page, and can connect a B2C Commerce storefront. - **[Find and Cancel Order Items with AI Tools](https://help.salesforce.com/s/articleView?id=commerce.om_steelthread_cancel_items.htm&release=264.0.0&type=5)** Look up an order by order number and cancel every eligible item in a single conversation. A service agent describes the goal in natural language. The AI client checks eligibility, submits the cancellation, and confirms the result without opening the Order Management console. - **[Estimate Delivery Dates with AI Tools](https://help.salesforce.com/s/articleView?id=commerce.om_steelthread_delivery_estimation.htm&release=264.0.0&type=5)** Prepare your delivery estimation configuration and quote delivery promises to customers in one conversation. With headless Order Management, the AI client reads and updates your estimation setup and returns a delivery date. - **[Look Up and Adjust Inventory with AI Tools](https://help.salesforce.com/s/articleView?id=commerce.om_steelthread_inventory_adjustment.htm&release=264.0.0&type=5)** Check real-time Omnichannel Inventory availability for a stock keeping unit (SKU) and correct quantities in one conversation. With headless Order Management, the AI client reads the group rollup and per-location breakdown, applies your change, and rereads availability to confirm the result. - **[Explain Order Routing Decisions with AI Tools](https://help.salesforce.com/s/articleView?id=commerce.om_steelthread_routing_explainer.htm&release=264.0.0&type=5)** Ask why an order was routed to a specific location, and why it split, without reading logs or filing a ticket. With headless Order Management, the AI client reads the recorded routing explanation and returns the winning rule, the competing scores, and a per-shipment reason. #### See Also - [Headless 360 MCP Server (Beta)](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/headless-360-mcp.html) - [Salesforce Hosted MCP Servers](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide) - [Get Started with Agentforce Vibes](https://developer.salesforce.com/docs/platform/agentforcevibes/guide/afv-get-started.html) # AI-Powered Search for Commerce Improve store search experiences with Einstein semantic search in D2C store. Einstein semantic search reduces the occurrence of “no results found” pages, lowers bounce rates by providing a smoother shopping experience, and improves conversion rates. Einstein semantic search uses natural language processing to interpret queries and matches the information in the Product Name, Product Description, and Category Name fields with the terms entered in the query. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Einstein semantic search populates the search results page by matching and returning terms that are semantically related to a query. When you query for product bundles, search results only match queries for the bundle’s parent product. Einstein semantic search uses exact queries for product SKUs. With Einstein semantic search, your store is better equipped to handle a range of customer queries, although improvements vary based on your store’s catalogs and customer behavior. For example, gains are especially apparent if your customers more frequently search for broad terms like “furniture” or “couch” rather than exact product SKUs. The table describes how query results differ based on whether Einstein semantic search is enabled.
Query Entry Example when Einstein Semantic SEarch is Disabled when Einstein Semantic SEarch is Enabled
Synonyms Couch and sofa Search results don’t include synonyms of the term queried. Search results include synonyms of the term queried.
Alternative spellings Adapter and adaptor If the spelling of a term that the user enters doesn’t exactly match the spelling in the product catalog, search results could be incomplete. For example, the system might not recognize that “adapter” and “adaptor” refer to the same product. If the spelling of the term that the user enters is slightly different from the spelling in the product catalog, search results could include the variations. For example, if the user searches for “adapter” and the catalog lists “adaptor,” the search results include the catalog term. However, if the spelling difference is significant, relevant items are overlooked.
Abbreviations AC and Air Conditioner If the abbreviation that the user enters isn’t in the product catalog, relevant items are overlooked, and the search results could be incomplete. If the abbreviation that the user enters isn’t in the product catalog, the search results could include relevant items. However, the quality of the search results depends on how common if the abbreviations are.
Slang Men’s shades If the slang term that the user enters isn’t in the product catalog, relevant items are overlooked, and the search results could be incomplete. If the slang term that the user enters isn’t in the product catalog, the search results could include relevant items, but the completeness depends on how common the slang term is.
Misspellings Shert and shirt Search results are accurate if the user enters words with minor spelling errors that are within the auto-correction parameters. See Commerce Search and Auto-Correction Management. Search results are accurate if the user enters words with minor spelling errors. However, the quality of the search results depends on how common the misspellings are.
Product themes Wedding gift If the user enters a product theme, search results could be incomplete. For example, the system can find items containing the exact words “wedding” and “gift,” but it can miss suitable gifts that aren't explicitly described this way. If the user enters a product theme, search results are likely complete. For example, the system can generally understand the concept of “wedding gift” and return relevant items even if they aren’t explicitly labeled. However, the quality of the search results depends on how common the product theme is.
Product features Long USB cable If the user searches for product features using specific terms like “long,” “USB,” and “cable,” the system can miss items that are described with synonyms such as “cord” or specific lengths like “3m,” leading to incomplete search results. If the user searches for product features using specific terms like “long,” “USB,” and “cable,” the system generally understands the desired features of the product, such as length and type. It can find cables described as “long” using specific measurements like “10ft” or “3m” or synonyms like “cord.” However, the quality of the search results depends on how common the product features are.
Product types Women’s jackets If the user searches for a product type, the search results include items that explicitly match the term entered in the query, but it can miss related items. For example, if the user enters “women’s jackets,” the search results show exact matches, but it misses related items like “coats” and “blazers” and related outerwear like “ladies’ jackets.” If the user searches for a product type, the search results include items that are relevant to their query. For example, if the user enters “women’s jackets,” the results include exact matches as well as related outerwear, like “coats” and “blazers.”
Multiple languages

Wireless headphones for running (English)

Auriculares inalámbricos para correr (Spanish)

If the user enters a non-English term in an English-language store, no search results are returned. If the user enters a non-English term in an English-language store, or uses non-Latin characters, the system matches the term with its English equivalent and the search result is complete. This is also true if a user enters non-Latin characters, such as those used in Chinese.
Brand names Adidas shoes and Plorra dress Search results are returned if the brand name entered is in the product catalog. Search results are likely complete for well-known brands and incomplete for less common or newer brands.
Ambiguity Apple charger If the user enters an ambiguous query, no search results are returned. If the user enters an ambiguous query, the search results show the most reasonable matches.
Related products 20" TV and 21" TV Search results don’t reflect the similarity or relationship between products. For example, if the user enters a query for a 20" TV, a 20" TV appears first as an exact match. However, other TV sizes can be returned in a random order, or a 20" monitor could be listed. Search results reflect the similarity between products and the difference in size. For example, if a user searches for a 20" TV, a 20" TV shows first as the closest match. TVs with similar sizes, like 19" or 21", appear higher in the results, while a much larger size, like 55", appears lower. Monitors, even if they are 20" are less likely to appear because the system distinguishes between product types, such as TV and monitor.
Exact keywords iPhone 14 Pro Max Search results return the exact keyword. Search results return the exact keyword.
Descriptions Table with blue-greenish color Search results return items that match the exact words that the user enter in the description. For example, if the user searches for “Table with blue greenish color,” the results include blue and green tables but not teal. Search results return the most reasonable items. For example, if the user searches for “Table with blue greenish color,” the results include teal tables as well as blue and green tables.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note When you use Einstein semantic search, sort by Best Match to return the expected results. See [Add a Sort Rule](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_rule_add.htm&language=en_US). #### See Also - [Enable Commerce Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_deploy.htm&release=264.0.0&type=5 "Commerce Einstein features personalize shopper experiences, increase merchandiser productivity, and improve conversion. Enable Commerce Einstein so that merchandisers can turn on storefront activity tracking, turn on semantic search, and configure Einstein recommendations. Commerce Einstein deployment can take up to 24 hours to complete.") - [Enable Semantic Search for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_enable_semantic_search.htm&release=264.0.0&type=5 "Semantic search improves your search results by matching and returning items that are semantically related to a query. Semantic search requires a Content Security Policy (CSP) trusted site for the Commerce Einstein domain.") - [Considerations for Product Searchability](https://help.salesforce.com/s/articleView?id=commerce.comm_search_considerations.htm&release=264.0.0&type=5 "As you configure search for your B2B Commerce storefront, keep these considerations in mind.") - [Languages Supported for Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_search_localization.htm&release=264.0.0&type=5 "Search for B2B stores supports all languages provided by Salesforce. For D2C stores, search results are returned in the language of the store. For B2B stores, search results are returned in the language assigned to the buyer’s user account. If a buyer is configured to use a language that isn’t enabled for the store, search results, including facet and filter values, are returned in the store's default language.") # All-in-One Feature Cartridge Added to SFRA The new all-in-one feature cartridge (plugin\_cartridge\_merge) makes it easy to install and use several optional SFRA features without the help of a developer. It also makes it easy to selectively disable optional features. **Why:** The all-in-one cartridge supports the following features (plugins): - plugin-applepay - plugin\_datadownload - plugin\_instorepickup - plugin\_giftregistry - plugin\_productcompare - plugin\_sitemap - plugin\_wishlist **How:** In Business Manager, you can [easily import a demo site](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/ImportExport/UsingSiteImportForReferenceApplicationDemos.html) that includes the all-in-one cartridge. To get the all-in-one cartridge, select the **Storefront Reference Architecture base + All Optional Features** configuration. # Allow Duplicate Terms in Search Phrases B2C Commerce search now accepts long-tail search phrases with duplicate search terms. When an exact match for a given phrase is found, the suggestion processor returns highly relevant search results. Previously, duplicate words in long-tail search phrases were autocorrected to slightly different versions. Autocorrecting terms in the search phrase can result in irrelevant search results. # Allow Multiple Credit Types for Refunds You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization lets you process returns as unreferenced refunds. Unreferenced refunds are disconnected from the original payment method, so the funds can be returned to any credit type. You can enable unreferenced refunds in the return and RMA flows. Before customizing the flows, add [credit types](https://help.salesforce.com/s/articleView?id=commerce.om_create_credit_types.htm&release=264.0.0&type=5 "Add credit types to control and expand how refunds are returned when a customer returns an item. A customer service representative can divide the refund amount across multiple credit types.") to your store to provide a wider selection of credit types to assign refunds to. All orgs by default have the Credit type created and enabled. Only enabled credit types are available in your flows. This task provides information about customizing both the Return RMA flow and the Return Item flow. To enable unreferenced refunds for Return RMA, modify both the Return RMA flow and the Create Credit Memo and Ensure Refund flow. To enable unreferenced refunds for Return Item, modify the Return Item flow. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter flows, and select **Flows**. 3. Select the Return RMA flow, Create Credit Memo and Ensure Refund flow, or the Return Item flow template. The template has the Template column of the table checked. 4. In a different tab, find and open your existing version of the flow you’re modifying. 5. To modify the Return RMA flow, use the template as a reference. Create or modify each of these variables and elements in your cloned flow. Insert these variables: - paymentCredit - refund - refundInstructionsHint Insert these elements: - Payment Credit Sequence - Collection Sort - Refund Sequence - Collection Sort - Refund Instruction Hint Input Representation - Transform Make these element modifications: - Return Order Input: Add an assignment for the refund instruction hint. - Preview Changes: See steps 8 through 12. 6. To modify the Return Item flow, use the template as a reference. Create or modify each of these variables and elements in your cloned flow. Insert these variables: - paymentCredit - refund - refundInstructionsHint Insert these elements: - Ensure Payment Credit Sequence - Collection Sort - Ensure Payment Credit Input - Transform - Ensure Refund Sequence - Collection Sort - Ensure Refund Sequence Input - Transform - Ensure Refund Input - Assignment Make these element modifications: - Return Order Input: Add an assignment for the refund instruction hint. - Preview Changes: See steps 8 through 12. 7. To modify the Create Credit and Ensure Refund flow, use the template as a reference. Create or modify each of these variables and elements in your cloned flow. Insert these variables: - paymentCreditSequence - refundSequenceItemOutputRepresentation - refundSequenceList - refundSequenceEntry Insert these text templates: - GetRecordsReturnReturnOrderItemsFaultDescription - GetRecordsReturnReturnOrderItemsFaultMessage - CreateInvoiceInvocableFaultMessage - ReturnReturnOrderItemsInvocableFaultMessage - CreateCreditMemoInvocableFaultMessage - EnsureRefundsInvocableFaultMessage - EnsurePaymentCreditInvocableFaultMessage Insert these elements: - Ensure Payment Credit Amount - Ensure Payment Credit Required? - Decision - Payment Credit Sequence - Assignment - Payment Credit Sequence - Collection sort - Ensure Refund Input - Transform - Ensure Payment Credit - Action - Ensure Payment Credit Fault Description - Assignment - Payment Credit - Loop - Payment Credit - Update records - Credit Memo - Get records - Ensure Refunds Required? - Decision - End - End - Refunds Hint - Assignment - Refunds Hint - Collection Sort - Refunds Hint - Loop - Refund Sequence Entry - Assignment - Refund Sequence List - Assignment Make these element modifications: - Ensure Refunds Input: Insert the refundsSequenceList. - Fault Description: Change to Ensure Refunds Fault Description and replicate component. 8. For both the Return Item and Return RMA flows, find and select **PreviewChanges**. 9. Select **OMS Change Review**. 10. Set Use Setup Refund Instructions to true. 11. Set the Use Credit Types field to true. 12. Set the Payment Credit Type entries field.
Use all credit types Keep the field empty.
Specify each credit type Enter the API name of each credit type in the field as a comma-delineated list.
Create a custom list of credit types

Create a text list variable in the flow.

After the Set Stage to Stage 5 Assignment, create an Assignment. Create a resource and select Variable as the type. Name the variable, set the Data Type to Text, and allow multiple values. Click Done.

Use the new list as a variable to create an assignment for each credit type, with or without conditions.

In the PreviewChanges element, enter that list in the Payment Credit Type entries field.

13. Save your flow. #### See Also - [Add Credit Types for Refunds](https://help.salesforce.com/s/articleView?id=commerce.om_create_credit_types.htm&release=264.0.0&type=5 "Add credit types to control and expand how refunds are returned when a customer returns an item. A customer service representative can divide the refund amount across multiple credit types.") - [Unreferenced Refunds](https://help.salesforce.com/s/articleView?id=commerce.om_unreferenced_refunds.htm&release=264.0.0&type=5 "By default, when a product is returned, the refund is credited to the original payment source. To credit the refund to a different source, process the return as an unreferenced refund. You can credit an unreferenced refund amount to any credit type configured in your org.") # Allow Payment Gateway and Gift Card Providers Integrate gift card providers with your payment gateways to turn on gift card functionality. The gift card provider supplies credentials that your gateway provider configures as a payment method. The gift card provider supplies you with a set of credentials, which typically include an endpoint, username, and password. Share these credentials with your gateway provider, who then configures the gift card provider as a payment method within your account. ## Adyen Configuration For setting up your Adyen terminal, configure the device.storedValueEnabledGiftcards setting. This will enable gift cards on the terminal. This can cause payment reporting errors on Adyen if not configured. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important It's important that all configurations are done correctly or unexpected errors can arise. Refer to the Troubleshooting section for debugging guides on known error codes. ## Verifone Configuration We recommend merchants contact their Verifone support team to request disabling Store and Forward (SAF) on terminals. Otherwise, imbalances can occur during reconciliation with gift card transactions if eligible funds are less than the order total. ## Supported Operations Across Gift Card Providers Not all POS-supported gift card operations are supported by the gift card provider. Refer to the table to note the parity of supported operations across providers. | POS | GiveX via Verifone PSDK | GiveX via Adyen | SVS via Adyen | Fiserv (ValueLink) via Adyen | | --- | --- | --- | --- | --- | | Activate | Activation | Activation | Issue | Activation | | Add Balance | Increment | Increment | Reload/Recharge | Add Balance | | Payment | Redemption | Forced Redemption | Tender/Redeem | Payment | | Cash Out | Redemption | Redemption | Cash Out | Cash Out | | Refunds | Increment | Refund | Refund (only to "MR" card) | Refunds | | Check Balance | Balance Query | Balance Query | Balance Inquiry | Check Balance | | Deactivate (Not user-facing) | Redemption | Deactivate | Not Applicable | Not Applicable | | Void (Not user-facing) | Void | Cancel | Cancel | Not Applicable | | Undo Load (Not user-facing) | Redemption | Undo Load | Cancel | Not Applicable | # Alterations Receipt The POS app lets you print store-copy order receipts with product alterations info on top. These receipts are intended for use and record keeping in the store. Printing a store copy helps users keep track of product changes. This ensures accurate record-keeping and facilitates easy reference for store personnel. ## Prerequisites - **Modern POS App build**: 7.10.5 or above - **Platform Support**: iPhone & iPad - **Offline Support**: Yes - **Technical Prerequisites** - Product alterations must be configured ## POS App Behavior When an order has alterations, a button "Print Back of House Receipt" will be shown. Once selected, the alterations receipt or receipts will be printed out. A receipt will be printed out for every alteration found - these are identified by "tokenNumber". The format of the receipt will be the same as a regular receipt, but with the alterations information at the top: 1. The number of alteration being printed will be at the top right of the receipt. 2. If there are three receipts, "1/3" will be printed for the first one, "2/3" for the second, and "3/3" for the third. 3. The last four characters of the customer ID will be printed with the biggest size and centered. 4. The last name of the customer will be printed in big size. 5. The "readyDate" of the alteration will be printed in big size. ![An example of an alteration retreat for the first of two alterations.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_alterations_example.png) In case of error, a message will be shown to the user indicating which alteration numbers failed to print. ## Known Issues & Restrictions The new button is not available in custom order confirmation layouts. # Alternate Store IDs Use the Alternate Stores ID field in Point of Sale to assign multiple stores to an associate that works at multiple stores. By default, an associate is linked to a store by a Store ID. If you have an associate that works at multiple stores, you can use the Alternate Stores ID field to assign multiple stores to that associate. Defining Alternate Store IDs means that associates can log in to registers at those stores. For Store Managers who manage many stores, adding this value lets them do Manager Override functions in all the stores listed. ![Alternate Store IDs](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_alternate_stores.png) # Alternative Payment Method Fields The Alternative Payment Method object represents a payment method that doesn’t have a defined Commerce Orders object, such as Card Payment Method or Digital Wallet. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Alternative Payment Method object.
Field Label Description
Account The account for the alternative payment method.
Audit Email The email address of the alternative payment method owner.
Comments Comments about the alternative payment method.
Company Name The company name for the alternative payment method.
Gateway Token The tokenized form of the alternative payment method, returned by the gateway.
Gateway Token Details The unique tokenized ID generated by the payment gateway when the alternative payment method first interacts with the gateway. The ID identifies the alternative payment method during future transactions.
IP Address The IP address for the alternative payment method owner.
MAC Address The MAC address of the user who initiated the payment.
Nickname The nickname for the alternative payment method.
Owner Name The user who owns the alternative payment method record.
Payment Gateway The ID of the payment gateway entity used to handle transactions from the alternative payment method.
Payment Method Address The user address column type. First name and last name are listed as separate fields.
Phone The phone number of the alternative payment method owner.
Processing Mode

Indicates whether the alternative payment method was created in Salesforce or externally.

Possible values are:

  • External—Indicates that the alternative payment method record was created by a method other than Commerce Payments Connect API.
  • Salesforce - Indicates that the alternative payment method record was created by Commerce Payments Connect API.
Registered Email The email address of the alternative payment method owner.
Status

The status of the alternative payment method.

Possible values are:

  • Active - The payment platform can use the alternative payment method to make payments. Active alternative payment methods can’t be deleted.
  • Canceled - The payment platform can’t use the payment method to make payments. A value of Canceled can’t be changed to Active or Inactive.
  • InActive - The payment platform can’t use the payment method to make payments. A value of InActive can be changed to Active or Canceled.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Analyze POS App Crashes Send Point of Sale (POS) app crash details to the systel to determine the root cause. Prerequisites: - Modern POS App build: 7.14.5 and later - Platform Support: iOS/iPadOS >= 14.0 - Offline Support: yes ## Turn on Crash Report Configuration Settings in Point of Sale CMS 1. Go to **CMS > APPS > STORE > Modules > Analytics**. 2. Turn on **MetricKit Reporting**. 3. Select **Save** in the top right corner. ## Access Crash Insights in Point of Sale CMS The CMS displays crashes experienced in the POS app for further understanding. To view crashes in Point of Sale CMS: 1. Go to **CMS > Advanced > Associate Feedback**. 2. Select "**CLEAR**" and set your "**FROM**" date. 3. Under **"Error Type**" select **CRASH**.![Select a date from which to view crash reports in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_view_crash_from_date.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note "**Crash**" error type is only available for internal users. For more details, scroll to the end on the row and select "**View**". ![General Information about a POS app crash as seen in CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_crash_insights.png) # Analyze Product Return Reasons Use Einstein to gather, analyze, and sort return data. ### Required Editions
View supported editions.
Before you can start analyzing returns, your admin must set up Return Insights. Return Insights requires your admin to [turn on Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_provision.htm&type=5&language=en_US), [set up an admin user](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_walkthrough.htm&type=5&language=en_US), [connect the source Salesforce org to Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_set_up_crm_connection.htm&type=5&language=en_US), and [follow the setup steps](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5 "Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them."). Einstein makes its call after the user selects a list of return products for analysis. Credits are spent depending on the results returned by Einstein. 1. In the App Launcher, find and select **Order Management**. 2. Click the arrow next to the Order Summaries tab and open the Return Insights tab. 3. Select up to 20 products, and click **Analyze**. Einstein analyzes customer return reasons and matches them to your configured return codes. 4. After matching returns to a return reason code, Einstein sorts and returns the data. The results show what percent each reason makes up of the total returns. 5. (Optional) To download your analysis, click **Download as CSV**. After determining the most common or impactful return reasons, consider updating your product listings or store to decrease future return rates. #### See Also - [Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_about.htm&type=5&language=en_US) - [Einstein Generative AI and Trust](https://help.salesforce.com/s/articleView?id=ai.generative_ai_trust_overview.htm&type=5&language=en_US) - [Enable Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_enable.htm&type=5&language=en_US) - [Expand Extension for Return Insights](https://developer.salesforce.com/docs/atlas.en-us.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_product_expand_extension_return_insights.htm) - [Return Insights Setup](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights_setup.htm&release=264.0.0&type=5 "You can complete most of the initial Einstein configuration using the Data 360 Setup Guide.") - [Return Insights Overview](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5 "Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them.") # Analyze Your B2C Store Performance Using the Metrics Dashboard Use the Metrics Dashboard to monitor your B2C Commerce storefront performance, security, and resource utilization. The dashboard improves developer productivity, reduces mean-time to resolution, and streamlines troubleshooting. The metrics that you can monitor include metrics for application performance, sales, embedded content delivery network (eCDN), B2C Commerce API (SCAPI) and SCAPI hooks, and Managed Runtime. **Where**: This change applies to B2C Commerce. **How:** To access the Metrics Dashboard, in App Launcher, select **Log Center**, and then click **Metrics**. ![The Metrics Dashboard showing a graph of total platform requests.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_8/b2c_metrics_dashboard.png) #### See Also - [Metrics Dashboard](https://help.salesforce.com/s/articleView?id=cc.b2c_metrics_dashboard.htm&language=en_US) # APG 320 Cash Register Setup Guide Integrate your APG 320 cash register with your receipt printer for ‌operations within the Point of Sale (POS) app. Prerequisites: : - Modern POS App build: 7.1.0 or later - Platform Support: iPhone & iPad - Offline Support: yes ## CMS Configuration You will need to configure your cash drawer as "APG" within our CMS. To do so, follow these steps: Go to **Store Management -> Register -> {Your Store} -> {Your Register} -> Edit (Pencil)**. 1. Under **Cash Drawer -> Model: APG** 2. Under **Cash Drawer -> Connection Type: none** 3. Under **Cash Drawer -> Cash Drawer Mode: Connected Cash Drawer** ## Ports and Cable Printer cables aren't interchangeable, meaning you need to have the cable that came with the drawer. Also, make sure the cable is plugged into the correct device. Cables have a printer end and a drawer end. - The cash drawer is controlled through the printer and it has to be connected to the printer. - Connect the cash drawer with the printer as the app communicates with the drawer through the printer. The cable used on the printer side needs to be RJ11. RJ11 cable ends must be connected to the printer.![An RJ11 cable](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_rj11_cable.jpg) Ethernet cable ends must be connected to the Cash Register.![The ethernet end of a printer cable.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ethernet_cable_end.jpg) ## Set up Star Micronics mc-Print3 1. Remove the back cover of the printer.![A Star Micronics mc-Print3 printer with a cable connected to the Cash Drawer slot.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_star_micronics_printer_back.jpg) 2. Connected Cash Register and Printer.![A cash register connected to a Star Micronics mc-Print3 printer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_connected_star_printer_and_register.jpg) ## Set up Epson TM Series 1. Remove the back cover of the printer.![An Epson TM Series printer with an ethernet cable attached](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_epson_tm_printer.jpg) 2. Connected Cash Register and Printer.![An Epson TM Series printer connected to a cash register.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_epson_tm_register_connection.jpg) # APG IP Cash Drawer Integrate Point of Sale with APG Cash NetPro cash drawers using an IP connection. ## CMS - Configuration & Setup This hardware needs two settings to be configured: - Cash Drawer Model - APG - Cash Drawer Connection Type - IP These settings can be enabled at two levels: Store Config level and Register level. If the Register level is configured, it takes precedence over the Store Config (global) level settings. ## Store Config Level **Store Management > Store Settings > Store Register**![The settings to configure in the Store Register section of the CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_store_config_apg.png) ## Register Level **Store Management > Registers > Register > Cash Drawer** Make sure **Cash Drawer Mode**, **Connection Type**, and **Model** are set as below:![The connection type set as IP and Model set as APG in the CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_register_level_config_apg.png) This will allow the **Cash Drawer** section to appear in the Device Manager screen on the POS app.![APG Cash Drawer settings showin in the POS App](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_cash_drawer_pos_screen.png) ## Pairing Pair the APG Cash Drawer using the barcode that is attached to the front of the drawer. This will allow the devices to communicate. To pair the drawer, select it from the list and you'll be prompted to use the camera to scan. After it’s successfully scanned, it’ll be listed in the Device Manager on your POS app under "Cash Drawer". ## APG Cash Drawer Hardware Setup Set up your new cash drawer and connect it to a Power over Ethernet (PoE) switch to function with Point of Sale. There are a few additional steps the first time the cash drawer is set up. However, these only needs to be done one time if it is purchased. To begin with, you will need to make sure that you have Power over Ethernet Switches available. To power the device, you will need to connect the cash drawer to the PoE switch using the cable. Make sure that the cable is plugged into the yellow ports on the PoE switch. If the device is properly connected to power, it beeps if you open the cash drawer.![The yellow ports on the cash drawer where you attach PoE switches](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_yellow_ports.jpg) ### Changing To DHCP - Windows Windows computers support a .exe file that APG provides. Use this utility to connect and configure that cash drawer. Send the customer the link to the APG utility (used for scanning the network for the drawer) 1. [https://cashdrawer.sharefile.com/d-s20580c1e5de416c8](https://cashdrawer.sharefile.com/d-s20580c1e5de416c8) 2. After it’s downloaded and copied to a Windows PC that’s connected to the same network as the drawer, open the application and select “Scan”. 3. The Windows 10 firewall will probably appear asking the user for access to the network, which is allowed for this program. Instruct the customer to check the boxes next to “Domain networks” and “Private networks”, then select Allow access. 4. If the utility finds the drawer, check the drawer’s IP address. 1. If this is the problem, tell the customer to connect the drawer directly to a computer (without a router or switch between them). Set the computer to a fixed IP address of 192.168.2.10. 2. If the IP is 192.168.2.5, inform the customer that the drawer is shipped with a fixed IP address of 192.168.2.5, which is likely in a different subnet than the customer’s network (the subnet is usually the first 3 values of the IP: that is 192.168.2) ![The Windows network connection](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ip_adress_windows.png) 3. Use the APG Utility to either change the IP to a fixed value in their subnet or to change the drawer to use DHCP (select “Details” to bring up the window). ![The APG utility for changing the IP address of the register in Windows.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_windows_apg_utility.png) 4. If the IP address is within the customer’s subnet, have them select “Monitor”, then have them select “Get Status.” The drawer status shows at the bottom of the window. ![The cash register's drawer status shown at the bottom of the Monitor window.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_windows_get_status.png) 5. If the drawer status is closed, have the customer select ‌the “Open Drawer”. 6. If the drawer’s IP address is in the range 169.254.xxx.xxx, the drawer is configured to use DHCP, but it cannot obtain an IP address from the DHCP server. For example, they can have more than one drawer on the network. The DHCP server won't allow more than one drawer with the same DNS Name to get an IP, and so on) 7. If the DHCP server expects all hardware to have a unique DNS Name, tell the user to change the DNS Name using the APG utility. The field to change the name is on the same screen as the DHCP checkbox. You can download that from [here](https://cashdrawer.sharefile.com/share/view/s2fafd0bd4eb4665b/fo16b289-ae81-4396-97fd-9d6459981c6f). ### Changing To DHCP—Mac 1. You'll need to manually change the IP address to: _192.168.2.10_. 2. To do so, go to your Mac System preference and select the Network Pane. 3. If you're using a wireless network, connect your Mac directly over Ethernet to the same network interface as the cash drawer. ![The IP address configuration section in the Network Settings on a Mac.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_config_ip_mac.png)Change the IP address manually to the following: ![The IP address to set in Mac's Network Settings for a cash drawer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_change_ip_mac.png) 4. On Mac computers there are no working utilities or applications, so you will need to set up your cash drawer using a Python script. That script is available for download at the bottom of the article. The download is provided as a .txt text file. You will need to change the file ending from .txt to .py which makes it into runnable code. 5. To run your Python script, you can use Apple's Terminal application. To find the Terminal application, hit: Command (or Cmd) ⌘ and Space key to pull up the quick look and type in Terminal. 6. You can run the script by opening a command terminal interface and navigating to the directory where the Python script is located. You can go to a directory by typing the cd (change directory) command followed by the location of the directory. ``` $User_Input: cd ~/Documents $User_Input: python NetPRO_Console.py Retrieving list of available NetPRO drawers . . . 1. Project AtwoodV2 (34:E1:D1:B0:0A:A9) at 172.23.1.141 with firmware = "Ver AT1.5.3.49" Please select NetPRO drawer: (i.e. 0, 1, 2, etc) $User_Input: 0 0: Set drawer to DHCP 1: Open drawer 2: Get drawer status Please select option to perform: (i.e. 0, 1, 2, etc) $User_Input: 0 Drawer set to DHCP. Please allow 30 seconds for drawer reboot ``` ### Python Script Download the script "[NetPro\_Console.py](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/NetPro_Console.py)" ## Troubleshooting the APG Cash Drawer Resolve connection failures and barcode mismatch errors with your APG cash drawer. ### "Connection Failed" is Showing in Device Manager If the POS app is unable to get a response from your APG cash drawer, "Connected Failed" will be displayed in Device Manager. To solve this, follow the steps: 1. Make sure your cash drawer has power. 2. Make sure your cash drawer is on the same network as the device running the POS app. 3. Make sure your cash drawer is set up correctly per the instructions. ### "Barcode does not match with cash drawer" Error Message If the POS app is displaying the preceding error message, follow the steps: 1. In Point of Sale CMS, go to **App Configs > All**. 2. Select and edit the app config. 3. Go to **Modules > Peripherals**. 4. The **HasHardwarePrinter** flag must turned on in POS versions 8.10.1 or later. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If the above setting is enabled and this error is still appearing, check if the scanned barcode matches the ID on the cash drawer on the Device Manager screen on your POS app. ### Device Discovery Issue If the POS app is unable to detect your device, make sure “Announce” is enabled on your cash drawer. This can be enabled using the APG NetPRO test utility found [here](https://cashdrawer.sharefile.com/public/share/web-s4fae6c40b8bb4b74b7b4b12780baeb39). # API Access The headless Commerce API is the main programmatic interface with Omnichannel Inventory. To use it, configure authentication via Account Manager or set it up as an external client app. You can access most of the same functionality using Connect in Apex or Connect REST API. In Salesforce Flow, you can call the Omnichannel Inventory invocable actions. Connect API and invocable actions don’t require configuration. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note If you’re integrating Omnichannel Inventory with Salesforce B2C Commerce, use Account Manager. Otherwise, set up the headless Commerce API as an external client app. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note A flow that uses Omnichannel Inventory actions must have a runtime API version of 52.0 or later. If possible, always use the latest API version in your flows. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note When importing inventory availability records, the headless Commerce API supports a much larger volume of data than Connect API does. Use the Commerce API for inventory availability imports whenever possible. Because these inventory API calls communicate across applications, best practice for handling errors is to implement retries. For more information on headless Commerce API authentication, see [Commerce API Authentication](https://developer.salesforce.com/docs/commerce/commerce-api/guide/commerce-api-authentication.html) in the B2C Commerce API Guide. # API Class dw.util.Bytes Extended to Improve Interaction with ECMAScript 6 The `dw.util.Bytes` class is now more compatible with the JavaScript typed array features introduced with compatibility mode 21.2. How: The Bytes object is now a view to a native JavaScript ArrayBuffer object like other typed arrays in JavaScript. You can create a Bytes object from a typed array. You can access the data in the array using the new method `asUint8Array()`. Also, the 10 KB limit for Bytes objects was eliminated. ArrayBuffer (`api.jsArrayBufferSize`) and string sizes (`api.jsStringLength`) quotas now enforce size limitations. #### See Also - [Compatibility Mode Changes](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/site_development/b2c_compatibility_mode_considerations.html) - [Class Bytes](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/DWAPI/scriptapi/html/api/class_dw_util_Bytes.html) # API Encryption Parameter Has Been Changed The encryption parameter that handles encrypted and masked payment instrument data, including credit card, bank account, and driver license numbers, in the `dw.order.Order.getOrderExportXML` API has been completely revised. How: These methods have been changed or removed. - `dw.order.Order.getOrderExportXML(encryptionAlgorithm, encryptionKey, encryptUsingEKID)` was removed entirely. This method was deprecated because the `encryptUsingEKID` parameter was never used. To return encrypted payment instrument data with the given algorithm or key, use `dw.order.Order.getOrderExportXML(encryptionAlgorithm, encryptionKey)` instead. To return payment instrument data unmasked, use `dw.order.Order.getOrderExportXML()`. - `dw.order.Order.getOrderExportXML(encryptionAlgorithm, encryptionKey)` no longer accepts an invalid encryption argument, which includes null, blank, or otherwise empty algorithms or keys. - `dw.order.Order.getOrderExportXML(encryptionAlgorithm, encryptionKey)` supports the current RSA/ECB/OAEPWithSHA-256AndMGF1Padding encryption algorithm. Previously, the `encryptionAlgorithm` argument was ignored and the (now deprecated) algorithm RSA/ECB/PKCS1Padding was always used when a non-blank key was provided. - `dw.order.Order.getOrderExportXML(encryptionAlgorithm, encryptionKey)` no longer accepts a null key, which was used as a “magic” value for returning the payment instrument data as masked instead of encrypted. Only use `dw.order.Order.getOrderExportXML()` to return masked payment instrument data. # App Config Segmentation in the POS app One fundamental capability of POS is how easily and deeply it can be customized. A core component of that configurability, is the App Configuration or, App Config, for short. An App Config is a comprehensive repository of instructions that determines the POS app's behavior and appearance. App Configs are created and managed in CMS, and then downloaded to the POS device on app launch, on login, and, depending on the use case, on other triggering events. In this article, you’ll learn all about what app configs are and how to best put them to work for your needs. ![The components of the app configuration segmentation in the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_segment_components.png) A few notes, to help you form a conceptual model of the app config: - Each App Config needs a name. You might have multiple app configs, each optimized for a different use case (e.g. inventory, clienteling, etc.), for the various roles of store associates, or for the device the app will run on. - App configs have two main parts: First, (shown in yellow) the list of tabs that appear on app launch. Second, (shown in blue) the settings and layout definitions that together determine which features are activated, the user interface, navigation, and app aesthetics. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip For more information on tabs, refer to this article. ## Types of App Configs Below are the different types of app configs that are available to create and customize on the POS app. - Modern POS enables merchants to create an Omni-Channel shopping experience; encompasses mPOS, Cash Register, Clienteling, Endless Aisle, and BOPIS - Clienteling equips store associates with comprehensive customer insights - Endless Aisle provides in-store access to the brand's entire digital product catalog - BOPIS / Store Fulfillment facilitates in-store pickup strategies - mPOS allows store staff to quickly handle customer payments and contact information - Inventory Management supports store operations, including receiving, cycle counting, transfers, and inventory adjustments ## Default Layouts The following default layouts are created when a new app config is created. Layout names are prefixed with the app config name. - Store Home Template - Sign Up Template - Category Bleed Images Two Column Template - Two Blank Layouts - PDP for Store Associate - Menu Layout - Search Layout - Touch Menu Layout ## Segmentation Each register can download and use only one app config at a time. However, a merchant can create multiple app configs and define rules for each to determine the scenarios for which they’ll be used. This enables tailoring an app config to the specific use case, or segment, it will serve. To take an example, a merchant might want one app config for managers, with access to performance reports or other privileged functionality, and another app config for associates with limited access. Another example might be configuring an app config based on the type of checkout process, mobile POS for on-the-go transactions or fixed registers with peripheral scanner and terminal use. There are two methods for segmenting app configs. The traditional approach involves linking roles and associates directly to a designated app config. Please note that this method will be deprecated in the future. The enhanced approach is recommended, especially for new and onboarding merchants. It allows you to segment app configs based on three criteria: Device Type (iPad vs. iPhone), Personnel (based on role or individual associate), and Location (based on store group or store). # App Configs in Point of Sale CMS Customize and manage multiple app configs to tailor the appearance and behavior of POS for different use cases or segments, ensuring each register uses the most appropriate settings for its specific scenario. This flexibility enhances user experience and operational efficiency. ## Examples of App Configs To take an example, a merchant might want one app config for managers, with access to performance reports or other privileged functionality, and another app config for associates with limited access. Another example might be configuring an app config based on the type of checkout process, mobile POS for on-the-go transactions or fixed registers with peripheral scanner and terminal use. ## App Config Segmentation Criteria An app config’s segment is determined by three criteria: 1. Device Type (iPad vs. iPhone) 2. Personnel (based on role or individual associate) 3. Location (based on store group or store) Each app config a merchant creates must be targeted to a unique segment defined by any combination of those three criteria. Then, registers in that segment will receive the corresponding app config. ## Prerequisites - Modern POS App Build: 10.1.1 or greater - Platform Support: iPhone & iPad - Offline Support: Yes - **[Configure CMS to use App Config Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_app_cms.htm&release=264.0.0&type=5)** Customize Point of Sale app configurations for different user groups to enhance personalization and control. Toggling settings in CMS allows you to disable defaults and enable layout groups, ensuring a tailored experience. iOS users can select from a variety of native, license-free fonts by typing the name directly. Set and edit segmentation preferences to refine the user experience at associate and manager levels. - **[POS App Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_app_flow.htm&release=264.0.0&type=5)** After a reset, users can retrieve a specific Point of Sale App Config using a token or opt for the default configuration. Token retrieval takes precedence only if the register and associate are not targeted by any app config segmentation rules, ensuring a tailored user experience. Once logged in, the app config name is visible on the cart screen, providing transparency and control. - **[Rules of Precedence](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_app_rules.htm&release=264.0.0&type=5)** When defining segmentation rules for app configs in Point of Sale, prioritize specificity and granularity to resolve conflicts. Clear precedence ensures that registers or associates are targeted accurately, enhancing app functionality and user experience. - **[Known Issues & Restrictions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_app_issues.htm&release=264.0.0&type=5)** Get details of known issues and restrictions with Point of Sale App Config Segmentation. #### See Also - [_Salesforce Help:_ Segment App Configs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_seg.htm&release=264.0.0&type=5 "POS offers deep customization through App Config Segmentation. This feature lets retailers tailor the POS experience based on device, personnel roles or associates, and store locations. This enhanced method simplifies configuration and provides granular control over the POS interface for different users and contexts.") # App Configuration and Layout Segmentation Personalize Point of Sale apps with app configs and layout segmentations for a tailored user experience. App configuration segmentation runs at startup based on app version, while layout segmentation adjusts post-login according to user demographics, ensuring a more relevant and engaging interface. 1. **[Set Up an App Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_config.htm&release=264.0.0&type=5)** Segmenting Point of Sale app configurations by app version ensures that newer versions can use advanced features unsupported by older versions. This approach allows for seamless updates and enhanced functionality, improving user experience and operational efficiency. 2. **[Set Up Layout Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_segment.htm&release=264.0.0&type=5)** Personalize layouts within your Point of Sale app by setting up segments through CMS. Customize user experiences by creating and assigning layout groups to app configurations, enhancing usability and engagement. # Appeasement POS App Flow Post-sale appeasements allow store associates to modify existing orders and apply discounts, ensuring customer satisfaction. Associates can search for orders and, if appeasement is enabled, apply item or order-level discounts within the defined policy. Price overrides are managed with authorization and reason codes, with the POS app reflecting the changes in the cart total and order history, and retain the original discount for cumulative adjustments. ## Post-Sale Appeasement To process an appeasement for an order, search for it on the Order History screen in the app. If appeasement is enabled and the order falls within the appeasement window policy, there’s an option to **Modify Order**. If the **Allow Editing of Order (editOrderOptions)** setting is configured to **EDIT\_ORDER\_AND\_APPEASEMENT**, price overrides are restricted to in-store items only. For item-level discounts, tap the pencil icon next to the product. For order-level discounts, tap the **Discounts** tile on the right-hand side. If the logged-in associate isn't authorized to allow appeasements, an approval policy modal prompts them to enter the credentials of an authorized role to proceed with price overrides. If validated, the user can set the price override and select a reason code. For item-level appeasements, the price override can't exceed the remaining total of the item (item total minus any previous refunds or appeasements). For order-level appeasements, the price override can't exceed the remaining order total (order total minus any previous refunds or appeasements). The cart total summary reflects the applied discounts. Tap **Checkout**, and the store associate can select the type of tender to refund the difference in the order total to the customer. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If Point of Sale is the record controller, you can apply an appeasement as many times as you want, except if you do it outside the appeasement window. For other record controllers, ‌eligibility can be reset by that respective system. ## Multiple Appeasements For app builds 10.8.1 or greater, the POS app supports multiple appeasements, which are cumulative. The app retains the original discount and adds any subsequent adjustments to it. ## Adding Products If the **Allow Editing of Order (editOrderOptions)** setting is set to **APPEASEMENTS**, new items can't be added to the order. ## Processing Returns When processing returns, if Point of Sale is the record controller, the appeasement value reduces the available amount for future refunds. For example, if a product originally priced at $15.99 receives a $5.00 appeasement, the amount refunded to the customer is $11.54, accounting for the appeasement and applicable taxes. ## Order History The Order History page displays the given appeasements under Discounts and the product's updated order total paid under Unit Price and Subtotal. # Apply Customer Groups to Promotions Merchants can create targeted promotions tailored for specific customer groups, for example veterans, teachers, which are defined in their customer records. By using the customerGroup attribute, shared across the SPI and Salesforce fields, merchants can efficiently apply these targeted promotions to groups of customers. This functionality is supported via Point of Sale's SPIs and Salesforce Sales Cloud (SFSC). For NetSuite customers, contact a Retail Cloud representative for custom mapping instructions. Prerequisites - Modern POS App Build: 9.2.1 or higher - Platform Support: iPad - Offline Support: No Customer groups are established in the customer CRM system during profile lookup. Through our custom Customer Signup layout, associates can collect this information when signing up a new customer. 1. Configure a custom layout to capture Customer Groups. 1. In the merchant's external system, configure Point of Sale's Clienteling SPI. Then, configure the endpoints in CMS by going to **Integrations** | **Custom Connectors** . 2. In CMS, configure a Customer Signup layout by going to **Layouts** | **Layout Pages** | **.** 3. Add a new field for Customer Groups. ![Add a customer group field to a new customer profile](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_apply_customer_grps_to_promotions.png) 4. (Optional) To prepopulate the Customer Group field after a customer search, in the Default field, add the PS Tag :ps\_c\_customer\_group. 5. Configure the rest of the fields. For field information, see [New Customer Sign-Up Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_sign_up.htm&language=en_US). 2. Create a promotion for targeted customer groups. 1. In CMS, create a new promotion by going to Promotions. 2. Select the type of promotion (e.g., Amount off, Percentage off). 3. Under Basic Promotion Information, enter the required fields that identify and describe the promotion. ![Promotion information page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_promotions_info_page.png) 4. Under Promotion Configuration, configure the promotion discounts. 5. Go to Customer and create a Customer Group. You can define any number of groups. The types of groups can be entered manually or imported from an CSV file by clicking the ellipses. 6. Complete any remaining fields. For field information, see [Creating Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&language=en_US). 7. Save the changes. After a customer group-specific promotion is successfully applied to an order, and the customer completes the checkout process, the customer's group attribute is automatically recorded in the transaction log (TLog) and exports. To access the TLogs, go to the CMS and go to **Orders** | **Successful Orders**. # Apply Discounts and Price Corrections in POS Apply discounts and correct prices at checkout in the POS app. You can apply discounts, for example, to damaged items. ## Apply Item-Level Discounts and Price Corrections 1. To adjust prices at the item level, tap the pencil next to the item’s price in the cart. 2. To apply a discount, select **Discounts**. 3. Select the discount type (percentage or amount off) and enter the value, then tap **Confirm**. The cart reflects the new price of the item. If an approval policy is configured and the discount exceeds the [limits set in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_configure_discounts_corrections.htm&release=264.0.0&type=5 "Configure the Point of Sale settings and manager approval policies for discounts and price corrections before applying them in the POS app. You can also limit the changes that associates can make."), then the app requests approval at checkout (just before tendering). 4. To correct a price, select **Price Corrections**. 5. Enter the updated price, then tap **Confirm**. The corrected price shows in the cart line item. ## Apply Transaction-Level Discounts 1. To apply discounts at the order level, under Cart Options, tap **Discounts**. 2. Select the discount type (percentage or amount off) and enter the value. 3. Select the appropriate reason code. 4. To apply the discount, tap **Confirm**. The cart reflects the new total. If an approval policy is configured and the discount exceeds [limits set in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_configure_discounts_corrections.htm&release=264.0.0&type=5 "Configure the Point of Sale settings and manager approval policies for discounts and price corrections before applying them in the POS app. You can also limit the changes that associates can make."), then the app requests approval at checkout (just before tendering). All details of the discount transaction (store ID, register ID, date/time, associate ID, total discount, and reason codes) are recorded in the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") as a transaction type of “Transaction Discount”. # Applying Manual Discounts & Price Corrections in POS App Efficiently manage pricing adjustments and errors at checkout using manual discounts and price corrections in the POS app. Discounts can be applied, for instance, to damaged items. You can also set checks and manager approval rules to limit the changes that associates can make. Configure these settings in CMS before using them in the POS app. ## Prerequisites - Modern POS App Build: 8.9.1 or higher - Platform Support: iPhone & iPad - Offline Support: Yes - Configure [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.") for discounts made on the app. ## Known Issues & Restrictions - When an item's fulfillment type is changed from in-store to online (for example ship to home) or vice versa, any existing price overrides or discounts will be removed from the cart at the item level. This doesn't apply to cart overrides/discounts. After the reset, reapply the price override/discount. - Though price corrections are recorded in the TLogs as "PRICE\_CORRECTION", manager overrides aren't. - Any existing promotions or discounts will be applied to the corrected price of a product. The price override doesn't exclude these promotions or discounts, but rather they'll be applied on top of the new price. - **[Configure Discounts and Price Corrections for POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_configure_discounts_corrections.htm&release=264.0.0&type=5)** Configure the Point of Sale settings and manager approval policies for discounts and price corrections before applying them in the POS app. You can also limit the changes that associates can make. - **[Apply Discounts and Price Corrections in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_checkout_apply_discounts_corrections.htm&release=264.0.0&type=5)** Apply discounts and correct prices at checkout in the POS app. You can apply discounts, for example, to damaged items. # Approval Policies Page Configuration and Setup View and create approval policies for Point of Sale CMS store associates. The Approval Policies page can be accessed in Point of Sale CMS by going to Store Management > Associates > Approval Policies Configuration. No additional setting is required to use this feature. To view and create approval policies: 1. Select **Create** on the top-right of the approval policies page. The following modal will appear:![Create Associate Approval Policy Modal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_create_associate_modal.png) 2. Select a **Policy Feature** (for example Create Till). For information about available Policy Features, see [Policy Features](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_approval_policy_features.htm&release=264.0.0&type=5 "Configure approval policies for returns, exchanges, ASN receiving discrepancies, and other point-of-sale transactions in Point of Sale CMS.") 3. Select **Approving Roles** that can approve this policy (for example Store Associate, Senior Associate). You can select one or multiple roles. 4. Select **Save**. Approving Roles The selection of the roles will be determined by the custom roles that have been set in the CMS by going to **Store Management > Associates > Associate Roles**. Details on configuring custom roles can be found by referring to CMS Store Associates Custom Roles. # AppServer Review the new B2C Commerce AppServer features and enhancements in the 20.1 release. - **[Get Alerts When Two-Factor Authentication Not Enabled for Code Uploads](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_w6883136_2fa_alerts_la.htm&release=264.0.0&type=5)** Business Manager now issues alerts if a production instance doesn’t disallow code uploads or a staging instance doesn’t require a client certificate to upload code. For security reasons, we request that customers disallow code uploads to production instances and require a client certificate for code uploads to staging instances. We recommend making these configuration changes as soon as possible and no later than April 1, 2020, when we mandate this configuration. - **[Get Ready for the Google Chrome 80 Cookie Change](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_01_w6928215_enforce_https_la.htm&release=264.0.0&type=5)** Google Chrome 80, scheduled to be released in February 2020, introduces a new default cookie attribute setting of SameSite=Lax. Previously, the SameSite cookie attribute defaulted to SameSite=None. Also new with Chrome 80, when SameSite is set to None, cookies must be tagged with the Secure attribute indicating that they require an encrypted HTTPS connection. Other browser vendors are expected to make similar changes soon. To get ready for the changes, enable the global security preference Enforce HTTPS. Also, test to see if client-side JavaScript code requires adjustments and to make sure that third-party integrations work as expected. - **[Custom Object Import/Export Page Displays Correctly](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_011_w6999974_import_export_la.htm&release=264.0.0&type=5)** The Custom Object Import/Export page displays as expected. Previously, if there were custom object import/export records that had been triggered from the same Business Manager module, a Technical Error page displayed. This fix addresses a Release 20.1 regression issue. - **[Query Parameters Correctly Returned for Request.getHttpQueryString()](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_011_w6987779_query_parms_la.htm&release=264.0.0&type=5)** B2C Commerce Script API `dw.system.Request.getHttpQueryString()` now correctly returns query parameters that are part of a short URL. Previously, the query parameters were not returned. This fix addresses a Release 20.1 regression issue. - **[Exception Not Thrown When Building a To-One Relationship](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_3_w7013739_exception_la.htm&release=264.0.0&type=5)** Under some rare, specific conditions, exceptions of type `ORMMandatoryException: Can't unset mandatory to-1 relationship` were thrown if the target object didn't change. This issue has been fixed, eliminating some errors that occur when customers place orders. # AppServer Review the new B2C Commerce AppServer feature in the 20.2 release. - **[Undo a Replication Process](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_w7037952_undo_reps_la.htm&release=264.0.0&type=5)** To undo a data or code replication process, click **Undo** next to the replication process listed on the replication process screen. Also, now you can rerun a failed Undo Replication process as long as no other replication process has been run yet. # AppServer Review the new B2C Commerce AppServer feature in the 20.5 release. - **[Verify User Permissions for New Stricter WebDAV Unzip Check](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_w7377924_webdav_unzip_la.htm&release=264.0.0&type=5)** A new stricter permission check for WebDAV unzips requires that you check your configuration to make sure unzip works as expected. # AppServer Review the new B2C Commerce AppServer feature in the 20.6 release. - **[Verify User Permissions for New Stricter WebDAV Zip Check](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_w7623312_webdav_perms_la.htm&release=264.0.0&type=5)** B2C Commerce supports an extension to the WebDAV protocol that allows a client to pack files and folders into a zip archive at the server. With this release, the permission check for creating WebDAV zip archives is stricter. - **[Set Access Restrictions for Uploading Code by August 1, 2020](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_w7718774_access_restrictions_la.htm&release=264.0.0&type=5)** For security reasons, you must disallow code uploads to production instances and require a client certificate for code uploads to staging instances. We mandated this configuration by April 1, 2020, but did not start proactive enforcement because of COVID-19. As of August 1, 2020, we will start proactive enforcement. # AppServer Review the new B2C Commerce AppServer features in the 20.7 release. - **[Monitor Browser Access Patterns and Unexpected Changes](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_w7501840_app_server_response_header_la.htm&release=264.0.0&type=5)** You can use the method `dw.system.Response.addHttpHeader` to specify a response header of Content-Security-Policy-Report-Only for storefront requests. - **[Use Simplified, Consistent File Retention Rules](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_w7673164_retention_rules_la.htm&release=264.0.0&type=5)** New file retention rules are available for files in the /Logs, /Securitylogs, /Impex, and /Temp folders. Previously, different folders, instances, and environments used different file retention periods or no retention period at all. The new retention logic will be enabled after the 20.7 release. Download and save files you want to retain for longer than the new retention period. # AppServer Review the new B2C Commerce AppServer features in the 20.9 release. - **[Easily View and Download Files](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_w7756732_file_browser_la.htm&release=264.0.0&type=5)** Use the new folder browser feature in Business Manager instead of a WebDAV client to view and download files such as log files. The folder browser lets you quickly and easily view and download files that you have WebDAV permissions for. - **[JavaScript in HTML Attributes Allowed Only with Strong Authentication](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_w7874006_javascript_in_html_la.htm&release=264.0.0&type=5)** Beginning with this release, for security reasons, only Business Manager users with strong authentication, such as through multi-factor authentication with Account Manager, can embed JavaScript in HTML attributes. To make it easier to adjust to this change, a Business Manager user with strong authentication can temporarily allow users without strong authentication to include JavaScript in HTML attributes. - **[Check Configuration for Secure Code Uploads](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_w7874023_code_uploads_la.htm&release=264.0.0&type=5)** Two-factor authentication (2FA) for code uploads to the staging instance is required. Direct code uploads to the production instance aren’t allowed. Starting August 10, 2020, we automatically make configuration changes to meet these requirements on instances not in compliance. # April 2024 SCAPI Features - With B2C Commerce 24.5, you can use external taxation mode with the Shopper Baskets API when hooks are enabled. For details, see[External Taxation Documentation.](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets?meta=Summary) - You can now use the Script API response object to set custom response headers. For details, see[Custom Headers](https://developer.salesforce.com/docs/commerce/commerce-api/guide/extensibility_via_hooks.html?q=c_#custom-headers) - Update on encoding handling for special characters. For details, see [URL Encoding of Special Characters.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/url-encode.html) - SLAS now supports [merging user profile attributes](https://developer.salesforce.com/docs/commerce/commerce-api/guide/merge-shopper-profiles.html) for the Apple IDP. For more detailed information, see[B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). # April 2024 PWA Kit and Managed Runtime Managed Runtime - Centralized Logs in Log Center (Beta) - This feature is in closed Beta testing and is not yet generally available. Check back soon for updates to availability. Troubleshoot errors in your site built with PWA Kit by using Log Center: - Search and filter many logs. Check historical logs. - Access a single user interface to view logs from [Managed Runtime (MRT)](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/debugging.html#tail-logs-on-managed-runtime) and your B2C Commerce instance. Connect what's happening in your MRT environment with what's going on in your B2C Commerce instance. - Easily see MRT logs without using a CLI. See [Debug Using Log Center](http://review-app-sdb2c-com-pr-1078.herokuapp.com/docs/commerce/pwa-kit-managed-runtime/guide/debugging.html#debug-using-log-center-beta). # April 2025 SCAPI Release For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). - SCAPI support for the custom Client IP Header and Hybrid Authentication is now enabled on all instances. - Stricter realm validation for SCAPI requests: - For additional security, SCAPI request realm IDs are now verified for correct short code assignment. If the realm ID does not match the short code, an HTTP error status code 404 is returned. You can use Business Manager to find the assigned short code for a realm. - As of 04/09/2025, stricter realm validation is enabled on all instance types, including Staging and Production. Make sure you validate your used short codes in Business Manager: Administration > Site Development > Salesforce Commerce API Settings. - Media type validation of SCAPI requests is enabled on all instance types. - You can now view HTTP log entries with status codes 5xx in the Log Center, and filter them with the service type scapi. # April Build Summary (10.9.1) Build summary for Modern POS version 10.9.1, including what new features and changes it contains. | Feature | Benefit | | --- | --- | | **Core Platform** |   | | [Manual Store Closure Option in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_9_1.htm&release=264.0.0&type=5) | Manually close stores in the CMS if the POS app fails, supporting proper store management and data accuracy | | [UI Updates for WebViews](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_9_1.htm&release=264.0.0&type=5) | Improved user experience with the X CTA moved to the top left for easier navigation and webview closure | | **Integrations** |   | | [Enhanced Customer Rewards Lookup for Synchrony Integrations](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_9_1.htm&release=264.0.0&type=5) | Customers can look up Synchrony rewards without their card, enhancing the checkout experience | | **Inventory Management** |   | | [New 'Unreserve' and 'Create Cart' Functionalities in ROPIS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_9_1.htm&release=264.0.0&type=5) | Streamline ROPIS order management with real cart creation and improved UI for quick order identification | | [Search and Scan Features Added to Inventory Overview Report](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_9_1.htm&release=264.0.0&type=5) | Quickly locate and manage inventory items with added search and scan features, improving accuracy and efficiency | | **Other** |   | | [Various](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_9_1.htm&release=264.0.0&type=5) |   | Core Platform ## Manual Store Closure Option in CMS What it does: A new option in the CMS allows users to manually close a store if it can't be closed through the POS app, even after reconciling all open tills. This feature makes sure stores can close and manage properly, even in hard times, while keeping operations running smoothly and data accurate. How to configure in CMS: 1. In CMS, go to **Store Management > Stores**. 2. Edit an existing store. 3. Select **Close Store** on the bottom right. ![The Store section of Point of Sale CMS, where you can choose to close a store.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_close_store.png) Learn more: [Store Creation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_store_creation.htm&release=264.0.0&type=5 "Create stores and edit store details in Point of Sale CMS") ## UI Updates for WebViews What it does: The X for WebViews has been moved to the top left of the screen, providing a more intuitive ‌interface. This change makes it easier for users to move around and close WebViews. ![WebViews in the POS App with the Close X button on the left side.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_punchout_page_ui.png) How to configure in CMS: No configuration needed as this is the default behavior. Learn more: [Supporting PunchOut Webpages on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_punchout_webpages.htm&release=264.0.0&type=5 "Integrate web-based workflows, like adding custom products, directly into store transactions using the Point of Sale (POS) app. Launch preconfigured web pages from the POS app to securely pass data and trigger actions via URL parameters. The POS app receives a message upon completion, which streamlines tasks such as customer login and cart navigation, enhancing the in-store shopping experience.") Integrations ## Enhanced Customer Rewards Lookup for Synchrony Integrations What it does: Customers can look up their Synchrony rewards, even if their card isn't present. This feature enhances the customer experience by providing quick access to reward information, making the checkout process smoother and more convenient. ![The Follow instructions on the Terminal window in the POS app for looking up financing information.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_enhanced_synchrony_int.png) How to configure in CMS: Configure a deep link to open the account lookup flow via terminal if the customer's card isn't present. 1. In CMS, edit your [Cart Options layout](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_custom_cart_options.htm&release=264.0.0&type=5 "Add features that appear on the right side panel of the POS app, such as overrides, void cart, tax-exempt, and so on."). 2. Using the deep link picker, go to **Cart Options**. 3. Select and add "**Financing Account Lookup**". Learn more: [Set Up Processing of Synchrony Credit Card Purchases using Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony.htm&release=264.0.0&type=5 "The POS app, in combination with an Adyen terminal, supports the recognition of Synchrony cards and enables financing transactions. During checkout, when a customer chooses to pay with their Synchrony PLCC and the card is presented, the store associate can process the payment. If the order total meets a set threshold, the store associate can offer financing, which requires the customer to sign an electronic disclosure and financing contract. The threshold, electronic disclosure, and financing contract terms are customizable in the CMS.") Inventory Management ## New 'Unreserve' and 'Create Cart' Functionalities in ROPIS What it does: Easily manage Reserve Online, Pickup In-Store (ROPIS) orders with the updated '**Unreserve**' and '**Create Cart**' functionalities. The '**Create Cart**' function now generates a real cart. If the customer decides they no longer want the product, tapping **Unreserve** subtracts the item's quantity from the Allocated inventory bucket and moves it to the **Available** bucket. ![The POS app shows a picked up order complete with customer signature.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_fulfill_ropis_pos_8.png) How to configure in CMS: No configuration needed as this is the default behavior. Learn more: [Use Reserve Online, Pick Up In Store (ROPIS)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_ropis.htm&release=264.0.0&type=5 "Point of Sale's Reserve Online, Pick Up In Store (ROPIS) feature lets customers reserve items online for in-store trials before buying. After reserving online, the store gets an order, allocates the items, and prepares them for fulfillment, similar to Buy Online Pick Up In Store (BOPIS). Once the order is ready, the customer receives a notification to try the items in-store before purchase.") ## Search and Scan Features Added to Inventory Overview Report What it does: The **Inventory Overview** report now includes search and scan features, allowing users to quickly locate and manage inventory items. This improvement makes inventory management more accurate and efficient. It also makes sure that stock levels are always up-to-date and easy to find. ![The Inventory Overview Report Filter in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_inventory_filter.png) How to configure in CMS: No configuration needed as this is the default behavior. Learn more: [View Product Inventory in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_view_product_inventory.htm&release=264.0.0&type=5 "View inventory at the item or variant group level, and based on inventory buckets.") ## Other Feature Enhancements | Title | Description | Help Center | | --- | --- | --- | | Valuelink Adyen Certification | Supports refunds to active and inactive Valuelink gift cards, plus activation and loading, for greater customer convenience | [March Build Summary (10.8.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5 "Build summary for Modern POS version 10.8.1, including what new features and changes it contains.") | # April Build Summary (8.10.1) Build summary for Modern POS version 8.10.1, including what new features and changes it contains. ## **Overview of all Features** | Theme | Feature | | --- | --- | | Core Platform | [Default Fulfillment Option Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | | Core Platform | [Set 'Order Search Layout' as the default order search layout and add it as a CMS layout template](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | | Promotions | [Enhanced Rules for Active and Inactive Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | | Promotions | [Single Use Coupon Code Upload](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | | Payments | [Expired Remote Pay By Link Inventory Handling](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | | POS - Sale / Checkout | [\[Omni v2\] Pick Up Info Configuration via Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | | Monitoring and Alerting | [Enhanced Monitoring and Alerting for Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | | Monitoring and Alerting | [Failed Order Alerts](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | | SPI | [Live Inventory SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | | SalesForce ( SFCC, SFSC, SF OM) | [SFOMS Connector Enhancements: PaymentGatewayID, CardPaymentMethod](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5) | ## CORE POS ## Default Fulfillment Option Configuration **What it does -** This configuration blocks different fulfillment types for different line items from being added to the same order. **How to Configure -** [https://labs.predictspring.com/cms/server-settings-v2/pos/store-fulfillment](https://labs.predictspring.com/cms/server-settings-v2/pos/store-fulfillment) 1\. Ensure you have mixed cart enabled and go to Advanced in CMS ![The Omni Settings section of Point of Sale CMS, with the Advanced option next to Enable mixed cart mode highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_default_fulfill_option.png) 2\. **ADD** the rules you would like and select the combination fulfillment types that are not allowed with each other in the cart for each rule. Hit **SET** to save. ![The Configure Fulfillment COmbination Rules section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_combo_fulfill_rules.png) 3\. Multiple rules may be set up ![Add multiple fulfillment types in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_multiple_fulfillment_rules.png)rt\_releases\_bfs\_order\_search\_template **Learn More:** [Filfillment Type Combination Rules](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_fulfillment_type_combination_rules.htm&release=264.0.0&type=5 "Configure fulfillment combination rules in Point of Sale CMS to prevent incompatible order types.") ## New 'Order Search Layout' **What it does -** Enhanced functionality and ease for Order Search flows in app with a default template in CMS **How to Configure -** [https://labs.predictspring.com/cms/layouts](https://labs.predictspring.com/cms/layouts) + in store config 1\. Add the template, configure any additional customizations you like and **PUBLISH** ![The Order Search section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_order_search_layout.png) 2\. Map your new layout to the Order Search Layout in the store config ![The Order Search Layout, mapped to the new search layout, in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_new_layout_order_search.png) 3\. See template automatically trigger for order search in app ![The Order Lookup screen in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_order_search_app.png) **Learn More:** [App Config Segmentation Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_app.htm&release=264.0.0&type=5 "Customize and manage multiple app configs to tailor the appearance and behavior of POS for different use cases or segments, ensuring each register uses the most appropriate settings for its specific scenario. This flexibility enhances user experience and operational efficiency.") ## Promotions ## Enhanced Rules for Active and Inactive Promotions **What it does -**There are updated rules for the status of promotions and how they are categorized in CMS - **Live:**A promotion will be listed under this tab if the Active flag is toggled on and the current date falls in between the start and end dates for the promotion. - **Upcoming:** A promotion will be listed under this tab if the Active flag is toggled on and the start date of the promotion is in the future. - **Inactive:** A promotion will be listed under this tab if the Active flag is toggled off regardless if it's applicable. - **Expired:** A promotion will be listed under this tab if the current date is past the end date of the promotions regardless if the Active flag is toggled on or off. **Learn More:** [Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_promotions.htm&release=264.0.0&type=5 "Create promotions and automatically validate those promotions in the Point of Sale (POS) app.") ## Single Use Coupon Code Upload **What it does -** Allows you to create single-use promo codes via feed file. You may upload the file manually or schedule an upload. **How to Configure -** Create any promotion in CMS and select **Single Use** ![The Single Use Coupon setting being configured in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_single_use_coupon.png) **Tips -** If you are updating an existing promotion that is using single use codes the filed is not required and the original file that was uploaded at creation time will still be used. The file should be used to replenish codes, meaning if promotion code A is used but promotion code B hasn't been used, uploading a file with codes A and B will replenish code A, code B is not affected as it's still not used. The Single Use promotion file format should consist of one column, refer to the bottom of this article for an example file. **Learn More -** [Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_promotions.htm&release=264.0.0&type=5 "Create promotions and automatically validate those promotions in the Point of Sale (POS) app.") ## Payments ## Expired Remote Pay By Link Inventory Handling **What it does -** When a payment link expires, the quantity of the product will revert to its original quantity **Learn More -** [Pay by Link (PBL) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_pbl_overview.htm&release=264.0.0&type=5 "Point of Sale's POS app offers Pay by Link functionality with two distinct payment flows. The In-Store Payment flow lets customers pay right away by scanning a QR code with their phone. The Remote Payment flow lets customers get an email link to pay later. Both payment flows are supported by Adyen and Verifone payment gateway terminals.") ## POS Sale/Checkout ## \[Omni v2\] Pick up Information via Layout **What it does -** You may require additional information for Pickup Later, Pickup from Nearby Store, and Try at Store omni v2 fulfillment types. Customer information is collected by a layout that captures First Name, Last Name, Phone Number and Email. You may now customize this information and make fields optional. **How to Configure -** 1\. Create your Layout in CMS ![Pickup info being set in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_pickup_info.png) 2\. Within the cell content in the right toolbar menu you may select which fields are optional. Any fields not configured will be mandatory. ![The Form Element being set to optional in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_optional_fields.png) 3\. Ensure your Layout is active and assigned to your store config ![The Pickup Info Layout in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_active_layout.png) **Learn More:** [Pickup Information Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_pickup.htm&release=264.0.0&type=5 "Configure the Pickup Information layout in the CMS to collect essential details from customers picking up orders, ensuring a smooth and secure in-store experience. Customizable fields enhance data accuracy and streamline the pickup process.") ## Monitoring and Alerting ## Enhanced Monitoring and Alerting for Feeds **What it does -** Added monitoring and alerting for the following feed types - Promotion - Product Delta - Product Pricing - Product Sizing - Product Inventory - Product Pricing Delta - Product Sizing Delta - Product Inventory Delta - Store Device **Learn More -** [Monitoring Policies - Policy Management & User Subscription Setting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_policy_management_settings.htm&release=264.0.0&type=5 "Create monitoring policies in Point of Sale CMS to designate email addresses for receiving alerts about subscription or application-based events.") ## Failed Order Alerts for Failed Orders Only **What it does -** Previous state of the failed order report would send even when there are no failed orders. New state will only send notifications when there is a failed order. **How to Configure** - (CMS-Orders-Failed Orders Report) [https://labs.predictspring.com/cms/failed-orders-v4](https://labs.predictspring.com/cms/failed-orders-v4) **Learn More -** [Failed Orders Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_failed_orders_report.htm&release=264.0.0&type=5 "View reports of orders that didn’t process in Point of Sale CMS so that users can verify the payments for those orders.") ## SPI ## Live Inventory **What it does -** New SPI for live inventory checks. When editing the cart in the POS app (e.g., adding items, deleting items, changing quantity, etc.) Point of Sale will send the cart contents out via the SPI and it will check the external system for the availability of the specified products by checking their inventory count. If the product is not available, then an error is shown and the item isn't added to the cart. **How to Configure -** [SPI Live Inventory Check](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_live_inventory_check.htm&language=en_US) ## Salesforce OMS ## SFOMS Connector Enhancements: PaymentGatewayID, CardPaymentMethod **What it does -** Point of Sale has a native connector to Salesforce OMS. It has been enhanced to include the PaymentGatewayID in the CardPaymentMethod object. Create:
HTTP Method POST
URL /services/data/v49.0/sobjects/CardPaymentMethod
Request

{"PaymentGatewayId":"0b0050000004C9IAAU", "PaymentGroupId":"9zx050000004PCeAAM","PaymentMethodId":"03O050000-

0005CbEAI",

"ProcessingMode":"External","Status":"Processed","Amount":6.10,"AccountId":"00-105000005tmJFAAY","Type":"Sale"}

Response {"id":"03O0500000005CbEAI","success":true,"errors":[]}
**Learn More about the SFOM Connector -** [Salesforce (SF) Order Management System (OMS) Integration Guide](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_oms.htm&release=264.0.0&type=5 "Integrate the Salesforce Order Management System (OMS) connector with the Point of Sale platform.") ## Other Feature Enhancements | Title | Description | Helpcenter link if applicable | | --- | --- | --- | | “Showroom” as Clearance Item Source | Ability to add "Showroom" as a location type to your ERP | [Store Creation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_store_creation.htm&release=264.0.0&type=5 "Create stores and edit store details in Point of Sale CMS") | | Quiz Export Data: Order ID | Exporting quiz data was enhanced to include the CartID instead of the OrderID. | [Export Quiz Data](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_quiz_data.htm&release=264.0.0&type=5 "Schedule an export job in Point of Sale to extract quiz data that provides customer-relevant information. You can export data, such as customer IDs, question IDs, and updated quiz answer times. Use the exported data to analyze customer responses and improve engagement.") | | Reward Code in Customer 360 | Discount code tied to a customer reward can now be seen in the Customer 360 profile along with its expiration date | | # April Build Summary (9.10.1) Build summary for Modern POS version 9.10.1, including what new features and changes it contains | Theme | Feature | Benefit | | --- | --- | --- | | Core Platform | [Store Groups for Pricing](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_10_1.htm&release=264.0.0&type=5) | Make your pricing plan better and easier to use by setting prices at the store level, store group level (like region or outlet), or both. | | Till and Cash Management | [Tracking Canceled Cash Transactions](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_10_1.htm&release=264.0.0&type=5) | Our latest transaction type tracks if a cash drawer is opened during a sale that is subsequently voided. This feature verifies all cash drawer activities are meticulously recorded, bolstering security and aiding in loss prevention. | | Till and Cash Management | [Cash Audit](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_10_1.htm&release=264.0.0&type=5) | Enhance loss prevention operations with our new deep link. Conduct comprehensive audits at any time for the amount of cash in a till, with results directly recorded in the Electronic Journal. | | Promotions | [Single Use Promo Code Lookup](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_10_1.htm&release=264.0.0&type=5) | Easily troubleshoot issues with Single Use Promo codes, such as verifying whether a coupon has been redeemed in a single lookup. | | Other Feature Enhancements | [Various](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_10_1.htm&release=264.0.0&type=5) | Various | Core Platform ## Store Groups for Pricing What it does: Store Groups permit merchants to define groups of stores that share prices for products. It requires a dedicated pricing feed to be sent to store groups. Store-level pricing (set through Store Inventory) supersedes these prices and any prices not set at the store or store group level defaults to the sale or list price. How to configure: The instructions provided are high-level. For complete configuration details, refer to the corresponding Help article. 1. Define your Store Group IDs (via manual input in CMS or store feed). 2. Verify you have a column dedicated to Store Group in your Store Feed. 3. Map your **Store Group Source Field** to "**store\_group\_id**" **Target Field** in **Field Mappings** as your foundation for Store Groups. 4. Upload your feed manually or via scheduled import (delta and full are available). 5. Select the product pricing strategy you want to apply - **Store Level**, **Store Group Level**, or both. Learn More: [Configure Store Group Pricing](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_configuring_store_group_pricing.htm&release=264.0.0&type=5 "Define groups of stores in Point of Sale CMS that share product prices.") ## Till and Cash Management ## Tracking Canceled Cash Transactions What it does: Our latest transaction type tracks if a cash drawer is opened during a sale that is subsequently voided. This feature verifies all cash drawer activities are meticulously recorded, bolstering security and aiding in loss prevention. Learn More: [Auditing Tills and Managing Cancelled Cash Transactions](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_till_mgmt.htm&release=264.0.0&type=5 "Check cash amounts in register tills for changes within a day and do audits, avoiding the need for end-of-day till reconciliation.") ## Cash Audit What it does: Enhance loss prevention operations with our new deep link. Conduct comprehensive audits at any time for the amount of cash in a till, with results directly recorded in the Electronic Journal. ![The Cash Audit Variance window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_cash_variance.png) How to configure: Approval policies, reason codes, and a deep link are required to turn on this feature. Approval Policy 1. In CMS, go to **Store Management > Associates > Approval Policies Configuration**. 2. Select **Create**. 3. Turn on **Approval Required**. 4. Under **Policy Feature**, select "**Cash Audit**". 5. Under **Approving Roles**, select roles that can approve the policy. ![The Associate Approval Policy setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_associate_approval.png) Reason Code 1. In CMS, go to **Store Management > Reason Codes**. 2. Select **Cash Register Variance Reasons**. 3. Create reason codes by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.").![The Reason Codes settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_reason_codes.png) Deep Link 1. Edit a layout or a hamburger menu. 2. Access the deep link picker. 3. Go to **Cash Register > Current Cash Drawer > Cash audit of till**. 4. Save your changes.![The Cash Audit of a Till setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_cash_drawer_deep_links.png) Learn More: [Auditing Tills and Managing Cancelled Cash Transactions](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_till_mgmt.htm&release=264.0.0&type=5 "Check cash amounts in register tills for changes within a day and do audits, avoiding the need for end-of-day till reconciliation.") Promotions ## Single-Use Promo Codes (SUPCs) Lookup What it does: Easily troubleshoot issues with single-use promotion codes, such as verifying whether a coupon has been redeemed in a single lookup. How to access: **Store Management > Reporting and Analytics > Promotion Code Lookup** ![The Promotion Code Lookup settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_promo_codes.png) Learn More: [Single-Use Promotion Code (SUPC) Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_supc_report.htm&release=264.0.0&type=5 "Troubleshoot issues and view information on promotion codes, such as status, ID, and redemption status in Point of Sale.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Ability to determine whether to use Wi-Fi IP or ethernet IP for Adyen ethernet connections | For app builds 9.10.1 or greater, the POS app allows users to select either Wi-Fi IP or Ethernet IP for Adyen Ethernet connections. | [Learn More about Adyen Set Up](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_connect_ayden_and_pos.htm&release=264.0.0&type=5 "Set up Adyen terminals to connect to the Modern POS and process payments. Connect your Adyen terminal to Wi-Fi, board the device, and then pair it with the POS app.") | | Deprecate ReturnsOrderLookupV2 mobile configuration flag | Return Order Search Page V2 UI flag has been deprecated | [Learn more about Returns & Exchanges](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_exchanges_overview.htm&release=264.0.0&type=5 "Shoppers can return and exchange products in the POS app. Exchanges are defined by any return transaction that also includes a sale.") | | GiveX - Ability to Purchase a Gift Card with a Gift Card | Extended functionality for purchasing a gift card with another gift card tender if you are directly integrated with GiveX | [Learn more about Gift Cards](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_gift_cards_terminal.htm&release=264.0.0&type=5 "Configure Point of Sale's Point of Sale (POS) to accept gift card payments, add value, cash out, and check balances, using a payment terminal. Merchants can select the integration approach that suits their needs, verifying all transactions are available through gateway reporting.") | # Archive Long File Names During System Import Jobs The system import job steps can create long file names that exceed some file system length limits, which caused problems when archiving files. You can now use Archive in Subfolders mode or Archive Overwrite Existing mode during system import jobs. How: To avoid file length restrictions, use `AfterImportFilehandling`. When running a system import job with `AfterImportFilehandling = archive`, use Archive in Subfolders to generate archive files in subfolders. This pattern is used for the subfolders: `//.xml`. It resolves issues with long file names that violate file system rules for length. Use Archive Overwrite Existing mode to overwrite files with the same name. This mode moves the files to the archive without a generated prefix. # Archived Release Details Get details of past changes made in each release of Point of Sale (formerly PredictSpring). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In 2024, Salesforce acquired PredictSpring, a provider of modern retail point-of-sale (POS) software built natively in the cloud. PredictSpring was renamed Retail Cloud and is now called Point of Sale. You may still see references to Modern POS, PredictSpring or Retail Cloud in the Point of Sale app and in our documentation. Customer support for PredictSpring on Zendesk retired in February ‘26. Salesforce Help is the new home for the Point of Sale support experience. POS releases features more frequently than three times per year. See [Release Notes for Features Released Monthly](https://help.salesforce.com/s/articleView?id=release-notes.rn_features_released_monthly.htm&release=260&type=5&language=en_US). - **[Release Details](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_rn.htm&release=264.0.0&type=5)** For releases, get details of the new features, bug fixes, and outstanding open issues. - **[Build Feature Summaries](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs.htm&release=264.0.0&type=5)** For past releases, get details of what it includes, what each new or updated features does, and how to configure it in Retail Coud CMS. # ASN (Advanced Shipping Notice) Feed The Advanced Shipping Notice (ASN) feed provides specifications for inbound shipping notices in Point of Sale. Warehouse shipping information is sent to receiving clerks before merchandise arrives at the store. Receiving clerks use ASN to verify delivered merchandise by scanning barcodes, labels, pallets, cartons, or UPC tags. Once received, the merchandise is added to the on-hand item list. ## Format The feed formats are CSV (comma-separated), TSV (tab-separated), and ASN EDI 856 (EDI Advance Ship Notice). ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Each ASN contains information about all the pallets it has. Each pallet contains cartons and each carton contains products. Important: - All feed files should be saved in a UTF-8 (not to be confused with UTF-8 with BOM) format else you receive an error during upload. - `orderId`, `palletId`, and `cartonId` (via feed or API) must be unique. When the app sends the ID to the scan endpoint and receives a response, it cannot distinguish between an order, pallet, or carton within the same ASN. As a result, it defaults to the top-level order, even if the scanned item was a carton or pallet, which may lead to downstream issues. ## Content
CMS Field Display Name Mandatory Description Data Type MAX CHARACTER LIMIT Sample Data
cartonId Yes

The carton ID (barcode of the carton). A pallet can have multiple unique cartonId.

Important: Must be a unique from palletId and orderId.

Number 128 1
createdOn Yes The timestamp of when a shipment was created. This needs to be in the format of yyyyMMddHHmm. Number TIMESTAMP 202010210900
orderId Yes

The order ID (barcode of the order which generated this ASN).

Important: Must be a unique from palletId and cartonId.

Number 128 1
palletId Yes

The pallet ID (barcode of the pallet). ASN feed can have either an empty palletId or have multiple unique palletIds.

Important: Must be a unique from orderId and cartonId.

Number 128 1
productId Yes The product ID. A carton can have multiple products with the same ID. String 128 prod123
quantity Yes The product quantity. This needs to be an integer value rather than a decimal. Number INT 5
shipFromLocationId Yes The ID of the ship from location (store ID of store/warehouse added in Retail Cloud. Number 128 1
shipmentId Yes The ID of the shipment (also known as the ASN ID). Number 128 1
shippedOn Yes The timestamp of when a shipment has been shipped in the format of yyyyMMddHHmm. Number TIMESTAMP 202010211100
shipToLocationId Yes The ID of the ship to location (store ID of store/warehouse added in Retail Cloud). Number 128 2
carrier No The shipment carrier, if available. String 128 UPS
externalDocNumber No The document number in the external system. 64
externalLineNumber No The document line number in the external system. 64
poNumber No The shipment PO number, if available. String 128 1-1-2-1-1-1-1
serialNumbers No Serial number of product String 128
shipFromAddress1 No The ship from address line 1, if available. String 128 123 Main St
shipFromAddress2 No The ship from address line 2, if available. String 128 Ste 210
shipFromCity No The ship from city, if available. String 64 Los Altos
shipFromCountry No The ship from country, if available. String 2 US
shipFromName No The ship from name, if available. String 128 Store1
shipFromPostalCode No The ship from postal/zip code, if available. Number 24 94301
shipFromState No The ship from state, if available. String 64 CA
shipToAddress1 No The ship to address line 1, if available. String 128 123 Main St
shipToAddress2 No The ship to address line 2, if available. String 128 Ste 210
shipToCity No The ship to city, if available. String 64 Los Altos
shipToCountry No The ship to country, if available. String 2 US
shipToName No The ship to name, if available. String 128 Store1
shipToPostalCode No The ship to postal/zip code, if available. Number 24 94301
shipToState No The ship to state, if available. String 64 CA
trackingNumber No The shipment tracking number, if available. String 64 1Z123
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note - For columns that do not conform to the following feed spec names/values, we are able to apply field mappings and optionally field transformations so that product data gets indexed correctly. - In the initial file upload, the required Target Fields (denoted by an asterisk) must be mapped so they can be available as columns. However, they don’t need to have values and just need to line up with the schema. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Example feeds: [ASNTestFeed.csv](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/ASNTestFeed.csv) # Assign a CMS Public Channel to a Commerce Store When you create a store, a CMS workspace and a public channel to the workspace are added. If you have an LWR store built on an enhanced LWR site, you can change the public channel. A store can access content from all CMS workspaces that include the store’s public channel. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note You can upgrade a store built on a nonenhanced LWR site to use an enhanced LWR site to take advantage of enhanced CMS workspaces. See [Upgrade to Enhanced LWR Sites](https://help.salesforce.com/s/articleView?id=experience.exp_cloud_enhanced_upgrade.htm&type=5&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**. 3. Under CMS Public Channel, select an enhanced CMS public channel for the store. 4. Click **Save**. Stores based on the LWR platform created in orgs provisioned with Commerce in Summer ’23 or later have a public channel to an enhanced CMS workspace. To allow those stores to also access media stored in a non-enhanced workspace, add the store's public channel to the non-enhanced workspace. See [Add or Remove a Channel to a CMS Workspace](https://help.salesforce.com/s/articleView?id=xcloud.cms_channel_add.htm&type=5&language=en_US) and [Assign a CMS Public Channel to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_assign_cms_channel.htm&type=5&language=en_US). #### See Also - [Using Salesforce CMS for Product Media](https://help.salesforce.com/s/articleView?id=commerce.comm_cms_workspace.htm&release=264.0.0&type=5 "A Content Management System (CMS) workspace offers a secure environment to create, edit, organize, and manage digital content for your B2B Commerce stores. When you create a store, a CMS workspace for the store and a public channel from the store to that workspace are added. You can upload or import product media from a CMS workspace into your store.") # Assign a Location to a Location Group Use the Omnichannel Inventory Console to assign a location to a location group to aggregate inventory availability across multiple fulfillment locations. ### Required Editions
View supported editions.
User Permissions Needed
To assign a location to a location group. Create on Location Group Assignments
1. From the Navigation bar, open the Location Groups list view page. 2. Select the location group number from the list to open the location group. 3. On the Related tab, click **New**. 4. Select the location to add to the group. 5. Save your selection. 6. Commit your changes. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_important.png) Important Don’t upload inventory availability data while committed changes are pending. Before uploading availability data, verify that no location group changes are in progress by checking the async operation logs. #### See Also - [Remove a Location from a Location Group](https://help.salesforce.com/s/articleView?id=commerce.inv_remove_a_location_from_a_location_group.htm&release=264.0.0&type=5 "Use the Omnichannel Inventory Console to remove a location from a group when you no longer want to include it in the group’s aggregate inventory availability counts.") - [Manage Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_location_groups.htm&release=264.0.0&type=5 "Location groups represent sets of related locations. Assign locations to a location group. A location group provides an aggregate view of inventory availability across the locations in the group. Manage them using the Omnichannel Inventory Console.") # Assign a Page Layout for a Custom Store Header or Footer B2B stores created with the LWR template include responsive header and footer components. Alternatively, a developer can build a custom header or footer. For each page where you want to use a custom header or footer, assign the commerce custom layout using Experience Builder. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Complete these steps for each page where you want to use a custom header or footer. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder.** 3. In Experience Builder, click the gear icon on the page that you want to change. 4. In the Layout section, select the checkbox next to **Override the default theme layout for this page**. 5. From the Theme Layout dropdown, select **Commerce Custom Layout**. The page now has blank top and bottom sections where the developer can add the custom header and footer. For more information, see [Build Custom Components](https://developer.salesforce.com/docs/atlas.en-us.b2b_b2c_comm_dev.meta/b2b_b2c_comm_dev/b2b_b2c_comm_custom_component.htm). #### See Also - [Website Design for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_template.htm&release=264.0.0&type=5 "Use the Website Design workspace to add basic design elements to your store without leaving the Commerce app. For example, add your logo and set fonts, colors, and button styles. For more advanced design changes, such as configuring store components, pages, or navigation, you can move out of the Commerce app to Experience Builder.") # Assign a Tax Policy to a Product After you select the default tax policy for your B2B store, the tax policy and tax treatment for your products are updated. To override the default tax policy for individual products, assign a new tax policy to each of the products. You can manually assign tax policies to products only if your store is using Stripe or an extension provider. ### Required Editions
View supported editions.
## Set up Taxes in Your Commerce Store To assign a tax policy to a product, first create the Tax Engine record and the related Tax Policy and Tax Treatment records. This task is optional. If you've already set up taxes for your B2B store, you can skip this step. 1. Create a Tax Engine record. You will need your tax provider's name, mailing address, seller code, Apex adapter name, and credentials. 1. In App Launcher, search for and select **Tax Engines**. 2. Click **New**. 3. Enter your tax provider information. If the Tax Provider Account Identifier field is marked as required, enter N/A for this field. This field isn't required to create a Tax Engine record, even if it is set to mandatory in the Object Manager. 4. Set the status to **Active**. 5. For Type, select the option that matches your store's tax provider. If you're using Stripe as your tax provider, select Stripe Native. If you're using a tax extension, select Commerce Tax Extension. 6. Save your changes. 2. Create a Tax Policy record. 1. In App Launcher, search for and select **Tax Policies**. 2. Click **New** and name the tax policy. 3. Set the status to **Draft**. Don't set the status to active until after you've added a default tax treatment record in the next step. You can't edit the policy record if it's active. 4. For Treatment Selection, select **Legal Entity**. 5. Leave Default Tax Treatment blank. 6. Save your changes. 3. Create a Default Tax Treatment record. 1. In App Launcher, search for and select **Tax Treatments**. 2. Click **New** and include Default Tax Treatment in the name. 3. Choose the legal entity that matches your store name. The legal entity is created after you create a store. If you don't see a legal entity name for your store, contact Salesforce Customer Support. 4. Set the Tax Engine and Tax Policy fields to the records that you created. 5. For Tax Code, enter the value obtained from your provider. 6. For Status, select **Active**. 7. Save your changes. 4. Assign the Tax Policy to your store and set up a tax provider. Whichever solution you use, gross tax calculation doesn't support subscriptions. If your store uses Stripe, see [Select Salesforce Tax Solution and Set Up a Tax Provider](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_salesforcetaxsoln.htm&language=en_US). If your store uses a third-party provider, see [Add a Tax Calculation Service for a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_tax.htm&language=en_US). ## Assign a Tax Policy to Individual Products The default tax policy for the store is assigned to the products in the store. However, you can override the default tax policy by manually assigning a tax policy to individual products. 1. In the App Launcher, search for and select **Commerce**. 2. In the navigation sidebar, select a store from the Store dropdown. 3. Select **Merchandising** | **Products** 4. Click the product you want to assign a tax policy to. 5. Edit the product and select a tax policy. 6. Save your changes. The tax policy is updated for the product. To view the tax treatment associated with the tax policy, click the tax policy and view its details. # Assign a Tax Policy with the Manual Salesforce Tax Solution When you set up the manual Salesforce tax solution, assign a tax policy to your B2B store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a B2B store with custom checkout from the Store dropdown. 2. Select **Settings** | **Checkout**, and go to the Taxes tab. The next steps depend on whether the Cart Calculate API is enabled. 3. If the Cart Calculate API is enabled, perform these steps. 1. Under Providers, for Manual Salesforce Tax Solution, click **Select Provider**, and save your changes. If you've already selected Salesforce Tax Solution provider, click **Change Provider** and change your selection to Manual Salesforce Tax Solution. 2. For Tax Type, click ![Edit icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_pencilicon.png), and select Gross. 3. For Tax Policy ID, click ![Edit icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_pencilicon.png), and select a tax policy for the store. 4. Save your changes. 4. If the Cart Calculate API is disabled, perform these steps. 1. Under Integration, click ![dropdown](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_dropdown_icon.png), and then select **Link Integration**. 2. Select **Standard Tax, Salesforce Service**, and click **Next**. 3. Confirm your changes. 4. To use a third-party service, click **Get App from AppExchange**. Download the tax calculation service, and follow the instructions on the AppExchange package. Check AppExchange listings carefully to make sure that the package supports B2B stores. 5. Go to the Taxes tab again, and expand **Tax Policy**. 6. Click ![Edit icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_pencilicon.png), and select the tax policy for the store. 7. Save your changes. Configure tax rates and tax treatments and assign them to the store’s tax policy. #### See Also - [Enable and Disable the Cart Calculate API for a Webstore](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html#enable-and-disable-the-cart-calculate-api-for-a-webstore) # Assign Admin Permissions for Salesforce Payments At least one individual in your org must have admin permissions to manage payment settings and enable features. ### Required Editions
View supported editions.
User Permissions Needed
To change Salesforce Payments settings: Customize Application
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_tip.png) Tip If you’re setting up a D2C store for the first time, bypass this process and instead let the Commerce Setup Assistant enable and configure Payments for your org. For more information, see [Video: Choose Your Checkout Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_container.htm&type=5&language=en_US) and [Set Up a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&type=5&language=en_US). 1. From Setup, in the Quick find box, enter Permission Sets, then select it from the menu. 2. Click **Payments Administrator** | **Manage Assignments**. 3. Assign the Payments Administrator permission set to individuals who are responsible for configuring Payments features. 4. Enable registered customers to save and manage their payment methods by granting them the Authenticated Payer permission set. If you’re using Salesforce Payments with a B2B or D2C Commerce store, go to **Setup** | **Permission Set Groups** and add the **Authenticated Payer** permission set to the external buyer or shopper group, for example, Commerce\_Shopper. 5. Go to the Commerce app and select your store. 6. Under Settings, click **Store** | **Buyer Access**. 1. Assign one or more buyer groups access to the store. 2. Enable guest access so any customer can browse and make purchases 3. Enable self-registration so customers can create accounts at your store, and then select which user profiles, permission set groups, account types, and buyer groups can self-register. 7. If you’re using Payments with B2B Commerce, modify the Login & Registration settings for the store’s existing self-registration page and assign buyers the Authenticated Payer permission. 8. Save your changes. #### See Also - [Payments Personas and Permissions](https://help.salesforce.com/s/articleView?id=commerce.payments_personas_perms.htm&type=5&language=en_US) - [Prepare Your Org for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&language=en_US) - [Configure Self-Registration for D2C Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_self_registration.htm&type=5&language=en_US) # Assign an Associate to a Location To process orders, assign a store associate to at least one location. ### Required Editions
View supported editions.
1. Log in to Salesforce as a System Administrator. 2. In the App Launcher, enter User Location Assignments and select **User Location Assignments**. 3. Create a record by clicking **New**. 4. For each store associate, search for and select a user and location field. 5. Click **Save**. #### See Also - [Store Fulfillment App Setup](https://help.salesforce.com/s/articleView?id=commerce.om_store_fulfillment_application.htm&release=264.0.0&type=5 "The Store Fulfillment app provides guided workflows that walk store associates through the process of picking and packing each order. Store associates can indicate how much of each item they can fulfill and how much they can pack. They can also track the items that they can’t fulfill and the reasons for rejection. Access to the site is controlled using the Identity User license. After the Identity User license is configured, create accounts for your store associates and assign the license to them.") # Assign App Roles in Microsoft Entra ID Assign each employee an app role in Microsoft Entra ID so that the employee can access the Point of Sale CMS. 1. Log in to the Microsoft Entra Admin Center. 2. Go to **Enterprise applications > Users and groups**. 3. Assign app roles to employees based on your store operations. For example, Alice manages a store, so assign Alice the **Store Manager app** role if your business defines it that way.![The users and groups section of the CMS with the Store Manage role assigned.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_config_user_groups.png) # Assign Customer Names when Creating External Profiles with OCAPI When creating an external customer profile with the OCAPI Shop API `/dw/shop/v21_2/customers/ext_profile` endpoint, you can now specify a first name and last name. # Assign Permission Sets in Omnichannel Inventory There are three permission sets in Omnichannel Inventory, the inventory manager, the retail manager, and the merchandiser. The inventory manager has the widest range of access, including read and write permisssion to both inventory and location management. The retail manager has read and write permission to inventory data. The merchandiser only has read permission to inventory data. Further customize the Omnichannel Inventory personas by modifying their permission sets. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note All Order Management permission sets grant full access to Omnichannel Inventory. If you want to limit a user’s access to Omnichannel Inventory, modify their Order Management permissions to prevent unexpected access. 1. From Setup, in the Quick Find box, enter Permission Sets, and then select **Permission Sets**. 2. Select an Omnichannel Inventory permission. 3. Click **Manage Assignments**. 4. Click **Add Assignments**. 5. Select the checkbox next to each user that you want to have the permission set. 6. Click **Assign**. 7. Click **Done**. # Assign Permission Sets in Omnichannel Inventory There are three permission sets in Omnichannel Inventory, the inventory manager, the retail manager, and the merchandiser. The inventory manager has the widest range of access, including read and write permisssion to both inventory and location management. The retail manager has read and write permission to inventory data. The merchandiser only has read permission to inventory data. Further customize the Omnichannel Inventory personas by modifying their permission sets. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note All Order Management permission sets grant full access to Omnichannel Inventory. If you want to limit a user’s access to Omnichannel Inventory, modify their Order Management permissions to prevent unexpected access. 1. From Setup, in the Quick Find box, enter Permission Sets, and then select **Permission Sets**. 2. Select an Omnichannel Inventory permission. 3. Click **Manage Assignments**. 4. Click **Add Assignments**. 5. Select the checkbox next to each user that you want to have the permission set. 6. Click **Assign**. 7. Click **Done**. # Assign Permissions to Access Commerce Subscription Features After you get the correct licenses for using Commerce Subscriptions in your B2B store, assign the correct user permissions to set up subscriptions. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) These are the permissions the merchant needs to perform subscription-related tasks | Task | Permission Set | | --- | --- | | Configure billing policies, treatments and legal entities, define policies, manage org defaults, and assign user permissions. | Billing Admin | | Schedule invoice runs and manage runtime invoicing operations. | Billing Operations User | | Perform Salesforce Payments administrative tasks, including merchant account and payment method set creation and management. To run reports and monitor activity in the Payments Workspace. | Payments Administrator | | Configure the tax engine, establish tax policies, and define tax treatment for billing. | Tax Admin | Alternatively, merchants can use APIs to complete subscription-related tasks. These are the permissions a merchant needs to use the required APIs. | Task | API Name | Permission Set | | --- | --- | --- | | Create billing schedules by passing a list of billing transaction IDs and invoking the context-aware billing schedule API. | [Context-Aware billing Schedule (POST)](https://developer.salesforce.com/docs/atlas.en-us.revenue_lifecycle_management_dev_guide.meta/revenue_lifecycle_management_dev_guide/connect_resources_create_billing_schedules.htm) | Create Billing Schedules From Billing Transactions API and Context Service Runtime | | Generate invoices on demand using the billing schedules. | [Invoice Creation (POST)](https://developer.salesforce.com/docs/atlas.en-us.revenue_lifecycle_management_dev_guide.meta/revenue_lifecycle_management_dev_guide/connect_resources_create_invoices_from_billing_schedules.htm) | Generate Invoices From Billing Schedule API | | Detect and correct invoicing errors, automate error resolution, and provide tools for manual overrides and detailed diagnostics. | [Invoice Run Recovery (POST)](https://developer.salesforce.com/docs/atlas.en-us.revenue_lifecycle_management_dev_guide.meta/revenue_lifecycle_management_dev_guide/connect_resources_recover_errored_invoices_batch_run.htm) | Manage Errors Using Invoice Error Recovery API | Watch the video to help you learn how to assign permissions to access Commerce subscription features. If you can’t watch the video in full screen, open the video on a new tab: [Assign Permissions for Commerce Subscriptions](https://play.vidyard.com/Fr6ktMrJ4mh2zbd9CNvGum). To enable permissions, 1. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In the Quick Find box, enter and select **Users**. 3. Click the required user’s full name. 4. Scroll down to the Permission Set Assignments related list and click **Edit Assignments**. 5. Select the necessary permission set under Available Permission Sets, and click **Add**. 6. Save your changes. # Assign Promotions and Pricing to Specific Stores Merchants can now assign price books and promotions to stores. This feature lets shoppers view pricing and promotions targeted to their selected store in session. Where: A support ticket is required to use this feature. Store-Specific Pricing and Promotions are accessible via XML imports. # Assign Promotions to Campaigns with Enhanced Data OCAPI Endpoints \`/sites/{site\_id}/campaigns/{campaign\_id}/promotions/{promotion\_id}\` now accepts a body for the \`PUT\` and \`PATCH\` methods. This body is identical to the response of the \`/sites/{site\_id}/promotion\_campaign\_assignment\_search\` API, but it now supports a new \`required\_qualifier\` property. With this body, you can set qualifiers and other properties, such as rank, on a promotion assignment when you create it. You can also update these values. # Assign Promotions to Campaigns with Enhanced OCAPI Data API Endpoint \`/sites/{site\_id}/campaigns/{campaign\_id}/promotions/{promotion\_id}\` now allows the \`PATCH\` method and accepts a body for the \`PUT\` and \`PATCH\` methods. This body is identical to the response of the \`/sites/{site\_id}/promotion\_campaign\_assignment\_search\` API, but it now supports a new \`required\_qualifier\` property. With this body, you can set qualifiers and other properties, such as rank, on a promotion assignment when you create it. You can also update these values. # Assign Resource Profiles to On-Demand Sandboxes When your create a new On-Demand Sandboxes, you can assign one of three discrete resource profiles to define sandbox disk, CPU, and memory allocation. Sandbox resources are expensive, so it's important to use them wisely. Resources profiles enable customers to create the right size sandbox for their specific needs. In addition, resource profiles enable developers to more easily maintain sandbox content, ensuring configuration is aligned with the production environment. **How:** You can assign one of three discrete profiles to each on-demand sandbox. This table describes the settings for each resource profile: | Resource Profile | CPU & Memory Units | Storage | Running Cost (Credits/Minute) | Stopped Cost (Credits/Minute) | | --- | --- | --- | --- | --- | | medium (Default) | 1 | 10 GB | 1 | 0.3 | | large | 2 | 20 GB | 2 | 0.3 | | xlarge | 4 | 50 GB | 4 | 0.3 | For instructions on how to assign a resource profile to an On-Demand Sandbox, go to [Assign Profiles to Define Sandbox Resources](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-manage-sb.html). # Assign Roles and Permissions to Store Associates Configure in Point of Sale CMS what actions managers or associates can perform, which helps streamline store operations and maintain security and compliance. - **[Store Associate Approval Policies](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_approval_policies.htm&release=264.0.0&type=5)** Control which features and roles in Point of Sale CMS require approval. - **[Point of Sale CMS Store Associate Custom Roles](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_roles.htm&release=264.0.0&type=5)** Create custom roles for store associates in Point of Sale CMS so that you can establish approval policies. - **[Point of Sale Permission Levels](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_point_of_sale_perm_levels.htm&release=264.0.0&type=5)** The default permission levels in Point of Sale CMS dictate which Point of Sale (POS) features are available to different roles. - **[Password Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_password_management_store_associates.htm&release=264.0.0&type=5)** Password management in Point of Sale CMS controls store associates' login authentication using Point of Sale Identity Management. # Assign SKUs to Page Templates In Page Designer, you can now assign products SKUs to a PDP template, making it easier to create PDPs for one or many handpicked products. You can assign multiple product SKUs across categories to the template. For added efficiency, enter multiple SKUs (comma delimited) into the search field to return multiple results, and then complete a multi-selection in one step. # Assign Stores to Franchise Groups After creating franchise groups, associate stores with the appropriate franchise in Point of Sale CMS. 1. In CMS, go to **Store Management | Stores**. 2. Create a store or edit an existing store. 3. For **Franchise**, select the appropriate franchise group. 4. Complete the remaining store details and save your changes. ![Screenshot showing Franchise dropdown in Store creation form](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_franchise_assignstores.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important All stores must link to a franchise group when enabling franchise management. The store listing page shows the franchise ID associated with each store. Merchants can also create an owned and operated franchise group for corporate owned stores. #### See Also - [_Salesforce Help:_ Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5 "Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations.") # Assign Weights to Searchable Product Fields Assign weights to searchable product fields such as Name, SKU, and Brand to prioritize high-value matches in search results. By assigning weights on a scale of 1 to 10, where 1 is the lowest and 10 is the highest, to searchable fields, you can control which fields carry the most influence in search rankings. By assigning weights to standard and custom searchable fields, product attributes, and category fields, you can influence ranking behavior without requiring backend engineering or AI intervention. These weights tell the ranking algorithm which fields are most important. For example, if you weight the Name field at 8 and the Description field at 3, when calculating relevance scores, the algorithm gives more significance to a product whose name matches the search term than the product whose description matches the search term. This means a product whose name matches the search term is more likely to rank higher than a product where the term only appears in the description. Because this configuration changes how relevance scores are calculated, it’s recommended you test various weight combinations to achieve your desired ranking outcomes. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Search** | **Searchable Fields**. 3. Assign a weight to the field. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note If you don’t assign a weight to a field, the default weight of 1 is applied. 4. Save your changes. 5. Click the Search Index tab. 6. Click **Update**, select the full index method, and refresh the search index to apply the changes. #### See Also - [Mark Product Fields as Searchable or Not Searchable for a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_fields.htm&release=264.0.0&type=5 "Marking fields as searchable helps the search engine index more content, improving search accuracy and relevance in you B2B Commerce store. Avoid marking fields as searchable if the fields contain sensitive information or provide generic data.") - [Commerce Management Webstore Search, Searchable Attributes](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_search_attributes.htm) - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") # Associate a Buyer Group with a B2B Store Product prices and the products that buyers can access depend on the price books and the entitlement policies assigned to the buyer group. When you create a store, a default buyer group is assigned to the store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**, and click **Buyer Access**. 3. Click the buyer group that you want to assign to the store. 4. On the Related tab, next to Stores, click **Assign**. 5. Select the store you want to assign to the buyer group. 6. Click **Save**. #### See Also - [Configure a Business Account as a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_accounts.htm&release=264.0.0&type=5 "Create a business account and then enable it as a buyer account. Add contacts to the buyer account and enable the contacts as customer users.") - [Add Accounts to a Buyer Group for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_add_buyer_accounts_to_buyer_group.htm&release=264.0.0&type=5 "To give multiple accounts access to the same store, price books, and entitlements, create a buyer group and add the accounts.") - [Add Billing and Shipping Addresses for Buyer Accounts for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_account_addresses.htm&release=264.0.0&type=5 "Set the default billing and shipping addresses for buyer accounts.") # Associate and Register Reports Track metrics about associate productivity and register software versions in Retail Cloud CMS. - **[Access Associate 360 Report on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_associate_360_pos.htm&release=264.0.0&type=5)** Track assocate's individual productivity. Use snapshots of key metrics to better benchmark and course-corret relative to targets that determine performance and compensation. - **[View Register Version Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_register_version_report.htm&release=264.0.0&type=5)** Review what versions your registers are on by country, store, and register in Retail Cloud CMS. See how a new version works, or find out if you're on an unsupported version. # Audit Product Changes in a Live Storefront View the change history for B2C Commerce objects, such as products, prices, and content assets, in a production instance. Previously, change history recorded events only in a staging instance. **Where:** This change applies to B2C Commerce. #### See Also - [_Salesforce Help_: Change History](https://help.salesforce.com/s/articleView?id=cc.b2c_change_history.htm&language=en_US) # Auditing Tills and Managing Canceled Cash Transactions in Point of Sale Check cash amounts in register tills for changes within a day and do audits, avoiding the need for end-of-day till reconciliation. Prerequisites: - Modern POS App Build: 9.10.1 or greater - Platform Support: iPad, iPhone - Offline Support: Yes, however, audits performed offline are reported to the Electronic Journal after being back online. Point of Sale supports loss prevention by tracking canceled cash transactions. It records if a cash drawer is opened during a sale that is later voided and the cart emptied. Additionally, we also facilitate cash auditing of tills, as part of [till management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_till_mgmt.htm&release=264.0.0&type=5 "Use the Point of Sale (POS) app to manage tills in-store and reconcile all tills at the same time."). By setting up a deep link and a manager's approval policy, users can start cash audits at any time during the day. To use the cash auditing feature, configure an approval policy, reason codes, and deep links. Note that for managing canceled transactions, no additional configurations are required beyond verifying support for cash tenders. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_transaction_sale_xml.htm&release=264.0.0&type=5 "Point of Sale's POS app streamlines the checkout process, enabling flexible and efficient sales transactions. Associates can accept various payment methods, including single and multitender options, ensuring a seamless and quick customer experience. Configure available tender types in CMS before running transactions."). ## Set Up Mnager Approval Policy Set up cash auditing to require manager approval. 1. In CMS, go to **Store Management > Associates > Approval Policies Configuration**. 2. Select **Create**. 3. Turn on **Approval Required**. 4. Under **Policy Feature**, select "**Cash Audit**". 5. Under **Approving Roles**, select roles that can approve the policy. ![The Create Associate Approval Policy window in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_till_approval_policy.png) ## Configure Reason Codes Configure reason codes if there's a cash variance. 1. Go to **Store Management > Reason Codes**. 2. Select **Cash Register Variance Reasons**. 3. Create reason codes by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.").![The Cash Register Variance Reasons section of Reason Codes in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_reason_codes.png) ## Configure Deep Link Configure reason codes to initiate cash auditing. 1. Edit a layout or a hamburger menu. 2. Access the deep link picker. 3. Go to **Cash Register > Current Cash Drawer > Cash audit of till**. 4. Save your changes. ![The Cash audit of a till deep link selected in the Deep Link section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_audit_till_deep_link.png) ## Audit a Cash Till in the POS App Manage till audits and view transaction variances in the Point of Sale (POS) app. On the POS app, select the **Cash Audit deep link**. If a manager approval policy is in place, the app requires the entry of manager credentials to begin the audit. If a manager is logged in, this prompt won't appear. Any active cart shall be completed or voided before proceeding with the audit. ![The Policy Approval Window in the POS app, where the store manager enters their name and password.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_till_audit_policy_approval.png) The user is prompted to open the till to count the cash. After counting, enter the total in the **Actual in Drawer** field. Optionally, use the calculator icon to input amounts as rolls or counts of change and bills, which automatically calculates the total. After the count is complete, tap **Complete Audit**. ![The Cash Calculator window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_cash_calculator.png) If the counted amount differs from the expected till total, a window appears showing the variance amount and prompting the user to select a reason code for the discrepancy. Tap **Accept Variance** to proceed. ![The Cash Audit Variance window in the POS app, where you pick a reason for the varriance and select Accept Variance.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_cash_audit_variance.png) Cash audits are documented in the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") and listed under the Transaction Type "Cash Audit". Any variances are also recorded, including the amount, reason codes, and the till ID. ![The Electronic Journal showing the transaction types in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_audit_till_ejournal.png) ### Canceled Cash Transactions On the POS app, if checking out a customer and a cash transaction is canceled, it'll be recorded in the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") as "Cash Transaction Cancelled." The record includes details such as the store ID, register ID, date and time, transaction number, and the associate handling the transaction. Additionally, the cash amount specified is listed under the **Notes** and **Cash** columns. ![The Cash Payment window in the POS app, where you shoose an amount to pay and select Cash Drawer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operation_till_audit_cash_payment.png) # Augment the Customer Shopping Experience with an AI-Powered Assistant Agentforce for Guided Shopping helps your store’s customers find the products they need to make informed purchase decisions. The generative AI-powered agent provides personalized, real-time guidance throughout the shopping journey, from product discovery to checkout and retrieving order details. **When:** Agentforce for Guided Shopping is available starting mid March 2025. ****Where:**** This change applies to B2C Commerce and requires Service Cloud or Sales Cloud in Unlimited, Professional, or Enterprise editions. **Who:** This change is available to customers with the B2C Commerce Cloud license and the Agentforce add-on. **How:** Before using the agent, configure a connection between Agentforce and your B2C Commerce store. In Account Manager, set up OCAPI and install the concierge reference cartridge. In your Salesforce org, create an OCAPI external and named credential, update the remote site settings, and create or update a permission set to grant the agent access to the credentials. In the Quick Find box, enter Agents, select **Agents**, and then click **New Agent**. Select the **Agentforce for Guided Shopping - B2C** template and follow the prompts. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note For Beta customers, the ShopperCopilotB2C named credential was renamed to B2CShopApi. In your Salesforce org, from Setup, replace ShopperCopilotB2C with B2CShopApi in your named credential details. ![A list of agent template options](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/b2b_commerce_agent_guided_shopping_template.jpg) #### See Also - [Agentforce for Guided Shopping - B2C](https://help.salesforce.com/s/articleView?id=cc.b2c_agent_guided_shopping.htm&language=en_US) # August 2024 SCAPI release, SCAPI fixes, and SLAS Release with the B2C Commerce 24.9 release: For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI/OCAPI Release - Added support for Cross-Origin Resource Sharing (CORS). For details, see [CORS in SCAPI](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cors.html) and the [CORS API](https://developer.salesforce.com/docs/commerce/commerce-api/references/cors?meta=Summary). - For the Shopper Products [getProduct](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-products?meta=getProduct) and [getCategory](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-products?meta=getCategory) endpoints and the Campaigns [getCampaign](https://developer.salesforce.com/docs/commerce/commerce-api/references/campaigns?meta=getCampaign) endpoint, you can now set a time window, called the Validity Period. The validity period is used for server-side cache expiration to prevent serving stale content. For additional details, see “Cache Expiration for Objects with a Validity Period” in [Server-Side Web-Tier Caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html). - Added response timeout handling for all instance types. For details, see [Error Response Codes](https://developer.salesforce.com/docs/commerce/commerce-api/guide/error-response-codes.html#504-gateway-timeout). - Set cache expiration for objects with a Validity Period for the Shopper Products [getProduct](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-products?meta=getProduct) and [getCategory](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-products?meta=getCategory) endpoints and the Campaigns [getCampaign](https://developer.salesforce.com/docs/commerce/commerce-api/references/campaigns?meta=getCampaign) endpoint. For details, see [Cache Expiration for Objects with a Validity Period](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html#cache-expiration-for-objects-with-a-validity-period). - For SCAPI / OCAPI calls using a SLAS JWT, added the `Disable the Modification of the Issuer Date` toggle to invalidate a customer JWT after a password change. When the toggle is set, a 401 `InvalidAccessTokenException` response code is returned when trying to use an existing request token after a password change. When the toggle is not set, the error response is only thrown if the time between the token issuer date and the password modification date exceeds 30 seconds. # August 2024 PWA Kit and Managed Runtime **PWA Kit** **Optimize Site Performance with \_\_server\_timing** This feature is generally available from PWA Kit version 3.7. With the \_\_server\_timing query parameter you can monitor the performance of your PWA Kit site to support your optimization efforts. The parameter provides access to the Server-Timing HTTP header and logs, that offer metrics about parts of the server-side rendering process such as route matching, component loading, and fetch strategies. Performance metrics logs are also available in Log Center. See [\_\_server\_timing](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/debugging.html#__server_timing). **Update SLAS Calls to Prevent Unauthorized Access Across Sites** Retail React App version 4.0 consumes the new versions of [Commerce SDK React](https://salesforcecommercecloud.github.io/pwa-kit/) and [Commerce SDK Isomorphic](https://github.com/SalesforceCommerceCloud/commerce-sdk-isomorphic). These SDKs now satisfy Shopper Login and API Access (SLAS) guidance to pass channel\_id as an argument when retrieving guest access tokens. See [Guest Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#guest-tokens). **Store Locator Support** Store locator is generally available with Retail React App version 4.0 or later and Commerce SDK React version 2.0.1 or later. With our store locator, your shoppers can find nearby storefront locations based on their ZIP code, city, and more. Easily extend your store information in Business Manager to customize the displayed location metadata on your site. See [Boost In-Store Sales with Store Locator](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/store-locator.html). **Increase Revenue with Product Bundles** Product bundles are generally available with Retail React App version 4.0 or later and Commerce SDK React version 2.0.1 or later. Use product bundles to group multiple related products into one orderable product for shopper convenience and personalization. Shoppers can update bundle variants and quantities directly in their cart. For example, an online sports apparel store can offer a "Runner's Bundle" so shoppers can select shoe size, apparel size, and fitness tracker model directly in their cart. Product bundles can help you to reduce cart abandonment and improve inventory management. See [Product Bundles](https://help.salesforce.com/s/articleView?id=sales.cpq_bundle_products.htm&type=5&language=en_US). **Managed Runtime** **Origin Lockdown with Embedded CDN (eCDN)** Restrict access to a Managed Runtime environment to traffic coming from eCDN. Set a shared access control header across eCDN and environment to ensure that shoppers, bots, and crawlers don’t access your environment directly. See the updated [Launch Your Storefront Guide](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/launching-your-storefront.html) and the new [`upsertOriginHeaderModification`](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=upsertOriginHeaderModification) API for details on how to configure Managed Runtime and eCDN to lock down your environment. **Debug Faster in Log Center** Quickly find logs generated by your PWA Kit site by searching on namespaces added as prefixes to logs in Log Center. The namespace pinpoints the specific part of your codebase where an error occurred, helping you to focus your troubleshooting efforts. See [Debug Using Log Center](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/debugging.html#debug-using-log-center). # August 2025 SCAPI and SLAS For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI: - For [Shopper Baskets v1](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets?meta=Summary), [Shopper Baskets v2](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets-v2?meta=Summary), [Shopper Customers](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-customers?meta=Summary), and [Shopper Orders](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-orders?meta=Summary), a new optional field called `qualifyingProductItemId` has been added to the `ProductItem` schema to help you reference the specific product that qualified the bonus promotion. - Enhanced the Shopper Search API to support custom attribute retrieval for product search and search suggestions. - [Product Search](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=productSearch): Use the new query parameter `includedCustomVariationProperties` to specify up to 5 custom properties to return with product search results. - [Get Search Suggestions](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=getSearchSuggestions): Use the new query parameters `expand` and `includedCustomProductProperties` to specify up to 5 custom properties to return with product suggestions. SLAS: - To enhance security and align with OAuth 2.1 specifications, reuse of the same `refresh_token` for public clients is now prohibited. Implement one-time usage for the `refresh_token`, using the new `refresh_token` issued by SLAS on each `/token` call. For details, see [Access Tokens and Refresh Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#access-tokens-and-refresh-tokens). # August Build Summary (10.3.1) Build summary for Modern POS version 10.1.1, including what new features and changes it contains | Theme | Feature | Benefit | | --- | --- | --- | | Core Platform | [Capture Customer Information on Returns](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) | You can now capture customer information for both online and offline returns so you never miss a clienteling moment | | Core Platform | [Verify Starting Till Amounts](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) | Set minimum and maximum cash alert limits to prevent incorrect starting till amounts from being entered, creating issues in closing downstream | | Omni | [Customize Credit Refund Policies](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) | Configure refund processors according to the order type (in-store, online, mixed cart, or web order), and the order controller for credit card orders | | Omni | [Serialized Products at Checkout](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) | Support serialized products for all in-store fulfillment types. If a serialized product is added to the cart, users are prompted to enter or scan its serial number. | | SPI | [Validate SUPCs Promotions via SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) | New SPI validates Single-Use Promotion Codes (SUPCs) outside the Point of Sale Promotion Engine. Codes are first checked in the Point of Sale system, then in the merchant's external system if not found | | SPI | [Shipping Method by Delivery Group SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) | Assign a single shipping method to all items in a delivery group | | SPI | [SPI Validation for Employee Discounts Enhancement](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) | Assign a promotion based on employee eligibility via SPI | | Analytics / Reporting | [Quotes Report](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) | New report allows store teams to track ‌ quotes that have been created and converted for a given period. Store managers can use this report for a snapshot of store-level performance, or to view and compare creation and conversion metrics across their associates. | | Monitoring and Alerting | [Email Alerts for Order Export Failures](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) | Use this alerting system to know about order failures | | Other | [Various](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5) |   | ## Core Platform ## Capture Customer Information on Returns What it does: You can now capture customer information for both online and offline returns so you never miss a clienteling moment ![The Return Customer Info window in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_return_customer_info_layout.png) How to configure: 1. Create a Customer Information Layout (refer to [this article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customer_info_sales.htm&release=264.0.0&type=5 "Configure a layout to show customer information such as name, email address, address, and other details to show associates in the Point of Sale (POS) app during a sale.")). 2. In CMS, go to **Store Management > Store Settings > Clienteling** to customize the Customer Information Layout Mappings. 3. Edit the setting, "**Customer Information Capture Configuration (customerInfoConfig)**". 4. Select a layout for the **Transaction Type of Return**. This store setting functions similarly to the app configuration setting "**Customer Info Layout (CustomerInfoLayoutID)**." From app builds 10.3.1 onwards, it's advised to use the **Customer Information Capture Configuration (customerInfoConfig) instead**. 5. Optionally, turn on "**Customer Info Required for Receipt Return**" to mandate customer information for receipted returns. Select a layout for Return to turn on this setting. 6. Optionally, turn on "**Customer Info Required for No Receipt Return (NRR)**" to mandate customer information for nonreceipted returns. Select a layout for Return to turn on this setting.![The Customer Information Layout Mappings Configuration section of Point of Sale CMS with the No Receipt Return setting turned on.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_cust_info_sales_nrr.png) Learn more: [Capturing Customer Information for Returns with Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customer_return_info.htm&release=264.0.0&type=5 "View and manage customer information for returns, both online and offline. Customize a layout so that Point of Sale (POS) app users can see the information during the return process, including customer name and email address.") ## Verifying Starting Till Amounts What it does: Set minimum and maximum cash alert limits to prevent incorrect starting till amounts from being entered, creating issues in closing downstream. ![The POS app showing the Amount Outside Default Range window for the till. Select Accept or Re-enter.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_create_till_after_1031.png) How to configure: 1. In CMS, go to **Store Management > Store Settings > Store Register**. 2. Under "**Default Till Range for Starting Till Amount (StartingTillRange)**", select the pencil icon to edit this setting. 3. Set the minimum and maximum amounts. This is an optional setting. If no amounts are set, the app won't check against the entered starting cash amount. 4. Set and save your changes. ![The Default Till Range for Starting Cash in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_till_mgmt_starting_amount.png) Learn more: [Managing Tills in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_till_mgmt.htm&release=264.0.0&type=5 "Use the Point of Sale (POS) app to manage tills in-store and reconcile all tills at the same time.") ## Omni ## Customize Credit Refund Policies What it does: Configure refund processors according to the order type (in-store, online, mixed cart, or web order), and the order controller for credit card orders. How to configure: 1. In CMS, go to **Store Management > Return Policy Configuration**. 2. Under "**Refund Processing Policies for Credit Cards**", edit a policy for the order type. In-store, Endless Aisle, and Mixed Cart orders are placed in-store. Endless aisle orders are online orders placed in-store. Web Order refers to ecommerce orders placed outside Salesforce.![The Refund Processing Policies for Credit Cards settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_refund_policies_1.png) 3. On the next screen, select a processor under Refund Processor. For more information on available processor types, refer to Refund System Options.![Salesforce as the Refund Processor in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_refund_policies_2.png) 4. Save your changes. Learn more: [Configure Point of Sale Refund Processing Policies for Credit Cards](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_configuring_refund_processing_policies_for_credit_cards.htm&release=264.0.0&type=5 "Configure your preferred refund processor for credit card orders by order type. You can also support unreferenced refunds in the POS app.") ## Serialized Products at Checkout What it does: Support serialized products for all in-store fulfillment types. If a serialized product is added to the cart, users are prompted to enter or scan its serial number. ![The Serialized Products display at checkout in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_serialized_prod.png) How to configure: 1. Configure Product Feed - Serialized products are configured through the [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters.") 2. In the Product Feed, for each serialized product, create a dedicated boolean column indicating whether serialization is required. Products marked **True** require a serial number for in-store checkout. You can label this column as needed, as is later be mapped to the **SerialNumberRequired** field on the Product Field Mappings. A [Sample Feed](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/CSV_Sample_ProductFeed.csv) is provided for reference. 3. Upload the feed manually or schedule it. 4. Configure Product Field Mappings—Validate serialized products on the POS app by configuring [Field Mappings](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5 "The raw columns or attributes inside the feed file are transformed and mapped onto fields that the Point of Sale backend understands.") 5. After successfully uploading the feed, configure Field Mappings in the CMS by going to **Feeds > Field Mappings > Products**. 6. Locate the serialized column under **Source Field** and map it to "**SerialNumberRequired**" under **Target Fields**. 7. Save your changes. ![Field Mappings for serialized products in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_serialized_prod_mapping.png) Learn more: [Omnichannel: Serialized Products](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_serialized_products.htm&release=264.0.0&type=5 "Configure store associates to record serial numbers for serialized products within the Point of Sale (POS) app.") ## SPI ## Validate Single-Use Promotion Codes (SUPCs) Promotions via SPI What it does: New SPI validates SUPCs outside the Point of Sale Promotion Engine. Codes are first checked in the Salesforce system, then in the merchant's external system if not found. How to configure: 1. In CMS, go to **Integrations > Custom Connectors**. 2. Select **Create** in the upper right. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**SUPC\_PROMOTION\_CODE\_VALIDATION**." 5. Under **API Endpoint**, provide the external endpoint for validating SUPCs. 6. Under I**ntegration Type**, select "**HTTP\_POST**." 7. Under **JSON Headers**, provide headers to be passed. 8. Configure the rest of the fields as needed. 9. Save your changes. ![The SUPC settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_supc_in_cms.png) Learn more: [https://help.salesforce.com/s/articleView?id=commerce.rt\_cms\_modules\_single\_use\_promotion\_code.htm&language=en\_US](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_single_use_promotion_code.htm&language=en_US) ## Shipping Method by Delivery Group SPI What it does: Assign a single shipping method to all items in a delivery group How to configure: 1. In CMS, go to **Integrations > Custom Connectors**. 2. Select **Create** in the upper right. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**DELIVERY\_GROUP**." 5. Under **API Endpoint**, provide the external endpoint to get delivery groups. 6. Under **Integration Type**, select "**HTTP\_POST**." 7. Under JSON Headers, provide headers to be passed. 8. Configure the rest of the fields as needed. 9. Save your changes. ![The Delivery Group connector in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_shipping_spi_1.png)![The Shipping Options window in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_shipping_spi_2.png) Learn more: [https://help.salesforce.com/s/articleView?id=commerce.rt\_cms\_modules\_omnichannel\_delivery\_groups.htm&language=en\_US](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_delivery_groups.htm&language=en_US) ## SPI Validation for Employee Discounts Enhancement What it does: Employee Discount Validation SPI now includes support for promotionID. How to configure: 1. In CMS, go to **Integrations > Custom Connectors**. 2. Select **Create** in the upper right. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**VERIFY\_EMPLOYEE - Verify Employee**" 5. Under **API Endpoint**, provide the external endpoint to get delivery groups. 6. Under **Integration Type**, select "**HTTP\_POST**." 7. Under JSON Headers, enter "`{"contentType": "application/json"}`". 8. Save your changes. Learn more: [Configure Employee Discounts in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_emp_discount_configure.htm&release=264.0.0&type=5 "POS lets employees enter their information to receive purchase discounts. To apply discounts, create a Customer rule that checks for an employee when you create a promotion. You can also configure employee validation using an SPI to validate employee information before applying promotions.") ## Analytics/Reporting ## Quotes Report What it does: New report allows store teams to track ‌quotes that have been created and converted for a given period. Store managers can use this report for a snapshot of store-level performance, or to view and compare creation and conversion metrics across their associates. ![The Quotes Report in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_quotes_report.png) Learn more: [Access Quotes Report in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_quotes_report.htm&release=264.0.0&type=5 "Track created and converted quotes to gain a snapshot of store performance or compare associate metrics.") ## Monitoring and Alerting ## Email Alerts for Order Export Failures Point of Sale's Monitoring Policy alerts merchants about important events and problems related to feed uploads, failed orders, and more. By setting up a monitoring policy, users can specify email addresses to receive alerts for subscription or application-based events. Learn more: [Policy Management & User Subscription Setting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_policy_management_settings.htm&release=264.0.0&type=5 "Create monitoring policies in Point of Sale CMS to designate email addresses for receiving alerts about subscription or application-based events.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Adyen PBL updates for EU regulation changes | New mandatory fields required by the EU in the Pay by Link authentication request. | [Adyen 2024 Pay by Link (PBL) Updates in Point of Sale for EU Merchants](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_adyen_pbl_eu_update.htm&release=264.0.0&type=5 "For EU merchants using Pay By Link (PBL), Adyen has added three fields: Browser IP Address, Cardholder Name, and Cardholder Email Address or Cardholder Phone Number. Adyen automatically handles the Browser IP Address, but the other two require configuration in both the CMS and your Adyen account portal.") | | Vertex Tax Integration | Point of Sale is now integrated with Vertex for Taxes | [Integrate Vertex](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex.htm&release=264.0.0&type=5 "Integrate Point of Sale with the Vertex tax engine to facilitate tax calculations during sale transactions. Confirm that the Vertex engine handles all necessary tax computations.") | | Support refund tender status as REFUND\_APPROVED in refund/failed API call | If there's a refund due to a failed API call, we pass that order as REFUND\_APPROVED to prevent duplicate refunds from happening | [View Failed Orders Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_failed_orders_report.htm&release=264.0.0&type=5 "View reports of orders that didn’t process in Point of Sale CMS so that users can verify the payments for those orders.") | | Scanning & Parsing Barcodes on POS App | This feature allows the use of scanned barcodes (including QR codes if supported by the scanner) to input ‌customer search data (for example customer ID or Loyalty ID) using the iPad camera or an external scanner. | [Set Up Scanning and Parsing Barcodes on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_barcode_scan.htm&release=264.0.0&type=5 "Point of Sale's barcode scanning feature on the POS app lets you quickly input customer data, such as customer IDs, using the iPad camera or an external scanner. By creating a parsing rule in CMS, you can extract and display only the necessary information, streamlining the checkout process and enhancing customer service.") | # August Build Summary (11.3.1) Build summary for Modern POS version 11.3.1, including what new features and changes it contains.
Section Feature
Core Platform
Inventory Management
Receipt Ensure Legal Compliance with Conditional Content on Printed Receipts
## Core Platform ## Get Your In-Store Operations Up and Running Quickly What it does: Activate your POS app and set up new store registers in CMS with automated, remote registration. Previously, you had to enter the installation ID, store ID, and other mandatory fields to install and activate a register. For remote registration, CMS automatically generates a unique installation ID and displays a QR code you can scan or download to start the registration process. This streamlined registration reduces manual steps, minimizes input errors, and speeds up device setup while keeping store and register details accurate. How to configure in CMS: - Go to **Store Management|****Registers** and select a store ID from the drop down. - Click **Create**. - To enable remote registration and auto-populate the Installation ID (2), turn on **Remote Installation Registration**(1). - To activate the register for in-store associates, turn on **Automatically Set Register to Active on Remote Activation**. - Enter a register ID and click **Save**. ![The Register creation settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_register_auto_install.png) See Also: [Point of Sale Registers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_point_of_sale_registers.htm&release=264.0.0&type=5 "Configuring Point of Sale (POS) registers lets you track devices that run the Retail Cloud store app."),[Activate and Register Point of Sale App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_activate_pos_app.htm&release=264.0.0&type=5 "Activate your iOS device and install it as in-store register. First, download the TestFlight and Point of Sale (POS) apps on your iOS device.") ## Simplify Merchant Region Setup and Management What it does: Manage merchant–locale–regions (MLRs) from the Merchant Regions tab in CMS. Previously, creating or updating MLRs required manual setup or external processes. Now, you can add MLRs and configure the region, currency, language, and multilanguage settings. Save time, maintain accurate configurations, and manage your merchant region data more easily in one location. How to configure in CMS: Go to **Advanced** | **Merchant Config** and switch to the Merchant Region Config (1) tab. Add new MLRs (2) by setting the region, currency, default language, and supported languages. ![The Merchant Config settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_merchant_region.png) See Also: [Merchant Configuration and API Integration Fields](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_merch_config.htm&release=264.0.0&type=5 "Merchants in the CMS have key properties such as their name, locale, region, and currency support. Using Cloud configuration details, Point of Sale connects to the merchant's e-commerce platform. View the merchant's developer credentials, API keys, and related API usage details for efficient API management. You can also determine if the environment is active and if it's a store merchant.") ## Inventory Management ## Edit Cycle Count Batches to Avoid Recounts and Missed Sales Opportunities What it does: Store associates can now edit cycle count batches to perform adjustments without reconciling a full cycle count. With this change, associates can fix scanning mistakes or bulk entry errors for individual items quickly and easily. Store managers and store associates (with manager permissions) can delete serialized products and edit the number of nonserialized products. Additionally, batches now show the total products and total quantity counted during an in-progress batch. These values update dynamically as products are scanned into the batch. On the cycle count report page, these values are shown only for closed batches. How to configure in CMS: - Go to **Store Management|****Associates Management|****Approval Policies Configuration**. - Create an Approval Policy for the **Cycle Count Batches Actions Policy Feature** for store associates. - Select **STORE\_Manager** as the Approving Role for the policy. ![The Cycle Count Screen in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_edit_cycle_counts.png) Learn more: - [Store Associate Approval Policies](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_approval_policies.htm&release=264.0.0&type=5 "Control which features and roles in Point of Sale CMS require approval.") - [Manage Cycle Count as a Manager](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_managing_cycle_count.htm&release=264.0.0&type=5 "If you are a store manager, you can use manager-specific views in Point of Sale CMS to oversee store associate counts, manage and edit batches, and view product statuses to efficiently monitor and maintain accurate inventory.") - [Perform Cycle Count as an Associate](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_perform_cycle_count_as_associate.htm&release=264.0.0&type=5 "As an associate, you can create and use batches to perform cycle counts for store inventory in Point of Sale CMS.") ## Ensure Complete Data Capture with Bulk Inventory Exports What it does: Simplify your nightly inventory data management by consolidating all event data into a single file. Schedule nightly processing and designate a single destination directory for the consolidated file to make sure that all events are captured and exported. How to configure in CMS: Go to **Feeds** | **Export Jobs**and create a Bulk Inventory Export Event. ![The Export Screen configured with bulk inventory in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_ensure_complete_data.png) Learn more: [Exporting Inventory Events in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_exporting_inventory.htm&release=264.0.0&type=5 "Create an inventory export event in the CMS to export inventory data from the Retail Cloud Backend via Secure File Transfer Protocol (SFTP).") ## Maintain Store Compliance by Blocking Sales and Returns of Restricted Products What it does: Create restriction rules to block the sale and return of specific products. If a restricted product is added to the cart, the product is flagged and can’t be sold or returned. You can apply the restrictions to all stores or selected stores. You can also restrict products in Buy Online, Fulfill In-Store (BOFIS) and Buy Online, Pickup In-Store (BOPIS) orders. The restriction rules help you maintain compliance with regulations like product recalls, protect brand standards, and prevent prohibited or outdated items from being shipped. How to configure in CMS: Go to **Store Management** | **Restriction Configuration**and create a rule. Set the restriction type, restricted product rules, and restricted store rules. ![The Restriction Configuration Screen in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_maintain_store_compliance.png) Learn more: [Create Product Restrictions with Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_restrictions.htm&release=264.0.0&type=5 "Configure rules that block specific products from being sold, returned, or included in inventory processing at selected store locations.") ## Process Returns Efficiently with Fulfillment Information What it does: If a shopper returns an item in store, associates can now view fulfillment information on the return screen. The information on the return screen now matches the information on the customer’s order history page. Associates can validate fulfillment types on the return screen in both online and offline modes. How to configure in CMS: Go to **Store Settings** | **Store Fulfillment** | **Omni Settings**and turn on Enable Omni Fulfillment Options V2 and Group Same Fulfillment Type Items. ![The Returns Screen in the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_process_returns_efficiently.png) Learn more: [Manage Returns & Exchanges in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns.htm&release=264.0.0&type=5 "Point of Sale provides flexible return options, including Buy Online Return In Store (BORIS), appeasements, and No Receipt Returns (NRR), to meet customer needs. Point of Sale also validates refunds to prevent fraud. Shoppers can return and exchange products at the point of sale (POS).") ## Receipt ## Ensure Legal Compliance with Conditional Content on Printed Receipts Automatically print legally required content on sales receipts for qualifying transactions with conditional receipt sections. For example, add a conditional image receipt section to print legal receipt stamps in Japan. Implement custom rules to print conditional text and images on customers’ receipts so your business stays compliant with local tax regulations. Additionally, you can set conditional display rules for the following PS tags: - :ps\_net\_0\_subtotal - :ps\_payment\_tender\_type - :ps\_payment\_card\_type (new) - :ps\_payment\_funding\_source (new) How to configure in CMS: - Go to **Layouts|****Layout Templates|****Print Receipts**. - On your Order receipt layout, add a receipt section for Text or Image. - Turn on **Display Based on Conditions** before adding conditional rules. ![The Layouts Template Screen configured with conditions in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_ensure_legal_compliance.png) Learn more: - [Receipt Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_receipt.htm&release=264.0.0&type=5 "Customize Point of Sale receipts to enhance customer experiences. Configure store-level print receipts and use templates for order returns. The Receipt Layout editor allows you to tailor headers, footers, and item details. Understand common challenges and best practices for clear and readable receipts, including managing returns and exchanges.") - [Configure Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_config.htm&release=264.0.0&type=5 "Customize Point of Sale receipt appearance to match your branding and create a consistent customer experience. Control email receipt-sharing options so that you can ensure secure and efficient delivery. Format receipt content to highlight important information and improve readability.") # August Build Summary (9.3.1) Build summary for Modern POS version 9.2.1, including what new features and changes it contains. ## Overview of All Features | Theme | Feature | | --- | --- | | Core Platform | [Speech Recognition \[Beta\]](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_3_1.htm&release=264.0.0&type=5) | | EJ/TLog/JSON Export | [Not on File Metadata Enhancements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_3_1.htm&release=264.0.0&type=5) | | EJ/TLog/JSON Export | [Bank Deposit and Store Close Business Date](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_3_1.htm&release=264.0.0&type=5) | | Integrations | [Adyen Terminal Terms and Conditions](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_3_1.htm&release=264.0.0&type=5) | | Promotions | [SUPC API Method Support](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_3_1.htm&release=264.0.0&type=5) | | Inventory | [Webhook for Sale and Refund Inventory Events](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_3_1.htm&release=264.0.0&type=5) | | Returns/Refunds/Exchanges | [Default Tender for NRR](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_3_1.htm&release=264.0.0&type=5) | ## Core Platform ## Enhanced Voice Command in POS App What it does: Voice recognition can now be used to go to 40 different deep links and perform product and customer search in the POS app. Point of Sale uses Speechkit and NLP framework for speech recognition in the POS app. For instance, the voice command "**Show cycle count history**" displays the cycle count history on the app. This feature can improve efficiency, turn on hands-free operation, and enhance accessibility for users with disabilities. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Access to the feature is limited to the POS app screens: **Home**, **Cart**, and **Client Profile**. How to configure: **App Config - Modules - Voice Commands** ![The Enable Enhanced Voice Commands setting in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_speech_recog_voice_command.png) What Looks Like: ![The Listening window in the POS app that appears when you tap Voice Command and say the name of a screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_speech_recog_voice_cmd_box.png) Learn More: [Speech Recognition](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_speech_recognition_beta.htm&release=264.0.0&type=5 "Turn on speech recognition in the POS app to streamline workflows. With voice commands, users can efficiently access features, turning on hands-free operation, and enhancing accessibility. Configure custom voice commands and deep links in CMS to tailor the experience for different languages and actions within the app.") ## EJ/TLog/JSON Export ## Not on File Metadata Enhancements What it does: For app builds 9.3.1 and newer, the layout has been enhanced with three optional fields: **Style ID / Variant Group ID**, **Color**, and **Size**. On the layout, the associate can either enter the SKU number or scan the bar code. **Is this a taxable product** determines if the Not-on File product inherits the tax class set in the "**notOnFileProductTaxClass**" or "**notOnFileProductZeroTaxClass**" store settings. ![The POS app shows a prompt for details of a not on file item.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_not_on_file_pos2.png) How to turn on Not-on File functionality: 1. Go to **CMS > Store Management > Store Settings**. 2. Turn on **Is item not on file feature enabled for this merchant**. 3. Save your changes. 4. Go to **Store Management > Store Settings > Modules > Tax**. 5. Add the tax class under "**Not on File item under Tax Class to Be Set for Not on File Items (notOnFileProductTaxClass)**". 6. Add the zero tax class under "**Not on File item under Tax Class to be Set for Not on File Items if the Tax to be charged is 0% (notOnFileProductZeroTaxClass)**". 7. Save your changes. 8. Configure ability to add a Not on File product to the cart: 1. Edit the app configuration that has the Not on File form. 2. Go to **Modules > Cart**. 3. Under **Cart Options Layout**, select the pencil to the right. 4. Create or select a cell. 5. On the right toolbar menu, select **Deeplink > Cart Options > Add Product Not on File deep link**. 6. Set the deep link and save the changes. Learn More: [Product Not on File Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_product_not_found.htm&release=264.0.0&type=5 "Generate reports for products that didn't originate from a product feed import in Point of Sale and were manually added by a store associate.") ## Bank Deposit and Store Close Business Date What it does: Provides a record of the actual Business Date of a Bank deposit and a Store Close in the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") (in the event you perform a bank deposit after store close). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For the **Bank Deposit** entry in the Electronic Journal, the date of the store closure is stored in the "**Notes**" column. This is the store date the bank deposit is linked to, not the actual date the deposit happened. The Trans Time in the Electronic Journal records the time and date that the deposit is made—after the store closes. Learn More: [Opening and Closing a Store for the Day](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_open_close_store.htm&release=264.0.0&type=5 "Streamline both the opening and closing processes of stores directly through the Retail Cloud Point of Sale (POS) app.") ## Integrations ## New Field Type: Adyen Terminal, Accept Terms and Conditions What it does: You can ask and track a user's information, like agreeing to terms and conditions, on the Adyen terminal with a layout field type. How to configure: 1. Create a layout, customize a prebuilt layout, or edit an existing layout to turn on Terminal Input. 2. Add and configure the elements you want to obtain terminal input for. We have a new field type, "**Checkbox with Terminal Input and Terminal Input**".![The Checkbox agreeing to the terms and conditions of Adyen terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_term_input_button_1.png)![The Terminal Input Button in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_terminal_input_button_2.png) 3. Customize your form elements the way you want them. - consents.terms = - consents.policy = - ![The Check Box with Terminal Input showing terms and conditions in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_terminal_input_3.png) Learn More: [Capture Customer Information From Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_caputre_cust_info_pay_term.htm&release=264.0.0&type=5 "Allow customers to directly enter information, such as email addresses, on Adyen and Verifone terminals, streamlining data collection. Reduce the need for store associates to verbally collect information. Configure custom layouts in Point of Sale CMS and designate text input or checkbox fields for terminal input to tailor the data collection process.") ## Promotions ## Single-Use Promo Codes: API Support What it does: Single-Use Promo Codes (SUPCs) can be uploaded and accessed in three ways: manual, CSV, scheduled feed, and now through an API. With an API, SUPCs can be fetched, updated, and uploaded to Salesforce, even including expired codes. For promotions exclusively tied to SUPCs, create them. The purpose here is to extract data from the promotion, gaining insight into the included codes and their redemption status. Use this API function to add SUPC codes to the promotion. You can update these promo codes within the same promotion. Learn More: [Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_promotions.htm&release=264.0.0&type=5 "Create promotions and automatically validate those promotions in the Point of Sale (POS) app.") and [API](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#promotion-management) ## Inventory ## Webhook for Sale and Refund Inventory Events What it does: Ability to trigger an inventory adjustment if there's a sale or a return. How to configure: [https://labs.predictspring.com/cms/custom-api/create/new](https://labs.predictspring.com/cms/custom-api/create/new) **SALE\_INVENTORY** = This event indicates that an item (or items) has been sold. If this event is triggered, the expectation is that the inventory for the specified item(s) decreases. **RETURN\_INVENTORY** = This event indicates that an item (or items) has been returned or exchanged. If this event is triggered, the inventory for the specific item(s) increases or adjusts in some manner if it's an exchange. Learn More: [Promotion Management in the API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#promotion-management) ## Returns/Refunds/Exchanges ## Default Tender for No Profile, No Card, No Receipt Return What it does: Ability to set a preferred tender type for the sale portion of the exchange in a No-Receipt Return (NRR) flow. This tender is used as the first tender for the part of the exchange that is bought with returned items because there's no value for an NRR. Any portion of an uneven exchange that requires additional tendering will report the actual tender values used. The returns and exchanges that inherit the configured default tender as part of No Receipt Returns are listed: - Returning an item or multiple items (that is, a pure return) - Returning item(s) along with a purchase where a customer still gets a refund - Returning item(s) along with a purchase where a customer makes a payment - Exchanging (even exchange) an item or multiple items - Exchanging (even exchange) item(s) with purchase How to configure: [https://labs.predictspring.com/cms/stores/return-policy-config](https://labs.predictspring.com/cms/stores/return-policy-config) ![THe No Receipt Returns settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_nrr.png) 1. Create a return policy (or edit your existing one). 2. Under **Edit Policy**, go to **No Receipt Returns**. 3. Turn on **No Receipt Returns**. 4. Configure the tender type you want as your refund **Tender Type**. 5. Turn on **Requires Manager Approval** if manager login is needed before completing No Receipt Returns in the POS app. 6. Turn on **No Receipt Tax Returns** to calculate tax returns for products that are returned within the POS app. Learn More: [No Profile, No Card, No Receipt Returns (NRR)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_nrr_overview.htm&release=264.0.0&type=5 "Allow returns for customers who don’t have a purchase receipt or a customer profile. No Profile, No Card, No Receipt Returns (NRR) in Point of Sale are performed at the lowest historical price and only if the returning item is still available in the system.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Verifone Payments - Receipt Display | Enhanced integration with Verifone, enabling your customer to view their full receipt on the terminal. | [Verifone - Line Item Display](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_line_item_display.htm&release=264.0.0&type=5 "Show your Point of Sale customers an overview of their purchase on Verifone payment terminals before they pay. The cart summary displays the number of items, taxes, and the order total on the terminal.") | | Optional Cash Rounding - w flag in NL | Parity in features for international, ability to have optional cash rounding with a switch to the Netherlands. | NA | # Aurus Device Setup and Pairing to POS Connect the Aurus terminal and configure Aurus as a supported payment reader in Retail Cloud. The Point of Sale (POS) Platform supports Aurus Payment Gateway via the Link 2500 terminals. The Aurus team will preprovisione the terminals for a particular merchant before we try to pair ## Set up a Link 2500 Device Set up your Link 2500 device for optimal connectivity with the Point of Sale (POS) app. ### Set up Wi-Fi in Link 2500 1. On Initializing screen, press “**3826**”. You can see that the Card Reader shows up with a red logo if you just turned it on, but wait a few seconds for it to turn to the next screen. 2. After reboot, the Card Reader shows the ‘**Payment**’ screen.![THe Payment screen on an Aurus device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_aurus_link2500_wifi.png) 3. Press **F** for the menu and go to . **Control Panel > Terminal Settings > Comm Means > Wi-Fi**. ![A series of screenshots that show the path to navigate to the Wi-Fi status on an Aurus device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_path_to_wifi_aurus.png)Use **F2** and **F3** to go up and down the menu. Use the green button to select an option. 4. You can use Scan Networks to connect to your network or use Status to check the status of the network connection. 5. Go back to the menu using the back yellow button, and select **Aurus Pay** to go back to the idle screen. ### Setting up Link2500 for IP Pairing Within the Link 2500 device, change the parameters ECR IP and ECR URL to point to the IP address of the iOS device on which the SDK is running. 1. On UA's home screen key in 1957 (don't press enter) If the password prompt doesn’t show up, immediately, wait a second and key in the sequence again. 1. Password = **125331** 2. From AurusPulse menu, go to **Edit Config** by pressing **F2** and **F3**. 3. Go to **ECRURL** and select the green confirm button. 4. Verify the IP address entered matches the iPad iP. 5. Follow similar steps to verify the value configured for ECRIP. The IP address here matches the iPad IP‌ address. 6. Follow similar steps to verify the value configured for ECR Port, 8030. 7. Press the red **X** on the Card Reader to exit the menu. This saves the configuration and reboots the Card Reader ### Setting up Link2500 for Bluetooth Pairing 1. On Initializing screen, Press “**3826**”. You can see that the Card Reader shows up with a red logo if you just turned it on, but wait a few seconds for it to turn to the next screen. 2. After reboot, the Card Reader shows the ‘Payment’ screen. 3. Press **F** for Menu and follow **Control Panel > Terminal Settings > Comm Means > Bluetooth > Switch On > Pair Phone > “Your device (LINK\_2500\_xxx) is currently visible to nearby devices**” 4. Tap **Link 2500 device** on iPad or iPhone to connect to the terminal. Follow any pairing instructions provided on the iPad or Card reader 5. To confirm, select **Paired Devices** on the card reader, and you’ll see your iPad or iPhone name. Similarly, you’ll find **LINK\_2500\_xxx** in “My Devices” section of Bluetooth. ## Connect Aurus Terminal to POS Set up Aurus as a supported payment reader within the Point of Sale (POS) app. ### Point of Sale CMS Setup 1. Configure Aurus as a supported Payment Reader in **Mobile Config > Modules > Peripherals > Supported Card Readers For Store Associate Checkout > Aurus**. 2. You can also make Aurus the default payment reader in **Mobile Config > Modules > Peripherals > DefaultCardReader > Aurus**. 3. Set up the Payment Gateway Configuration for Aurus. 1. Create one for Aurus if it doesn't exist in **CMS > Integrations > Payment Gateways**. 2. Make sure to configure the URL Base, Secondary URL Base and Merchant Gateway ID. 4. Set up your Register to identify the Aurus terminal. Aurus doesn't support terminal discovery and the POS app knows ahead of time the terminal ID to pair to. 1. Enter the Serial Number of the terminal you have in Navigate to your **Register > Card Reader > Serial Number** . This is the SID+REG found on the back of the aurus terminal you have. It’ll be eight digits. If it's only seven characters long, prefix it with a **0**. 2. You can select **IP / BTLE** as the **Connection Type** in the same **Card Reader** section. ### POS App Flow with Aurus Because the register knows which terminal to connect to, verify the terminal and iPad are on the same network. After you open the app and log in, the terminal connects automatically. The Aurus terminal has to be in a pairing state to make sure the pairing is complete. **Pairing State** means the terminal is actively trying to connect with POS and is indicated by the "**Reconnecting Attempts (n) Please Wait...**" message on the terminal display. This indicates the number of attempts. The terminal tries nine times by default as soon as it is turned on and then goes into an idle state.![An Aurus terminal showing the Under Armour logo when you turn it on.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_aurus_term_ua_logo.jpg) **Idle State** requires the user to select the green button to reconnect. The Card Reader displays the UA logo currently. Next are the different states it'll be in. 1. As soon as you boot up, the logo is red in color. This is just part of the boot-up sequence and it switches to black shortly. 2. The display has a black logo as long as it isn't connected to a POS app. 3. After you open the app and the pairing is complete, you’ll see the Card Reader switch to the red logo. 4. If the application is terminated or backgrounded, the logo switches to black (indicating it isn't paired with the POS app anymore). 5. If you open the application, and see that the logo is still black (even after the nine reconnect attempts as displayed on the screen), select the green button for it to immediately connect and switch to red logo (this only works if the POS app and card reader have previously been paired together). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If the app was launched and you went ahead to checkout page and realize the terminal is showing the black logo, you can always select the green button and the terminal auto connects. # Authorize Agents to Assist Shoppers with the Trusted Agent on Behalf Service Shopper Login and API Service (SLAS) now supports an authorization method called trusted agent on behalf (TAOB). Using this method, a trusted agent can get a shopper token that allows the agent to assume the role of a particular shopper and perform actions on their behalf. For example, an agent can assume the role of a shopper and perform actions such as updating their order. ![Login flow for a trusted agent.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/22_10/taob_image.png) The typical API requests and responses used to implement a login flow for a trusted agent. # Auto Disable Inactive Users Compliance with PCI DSS 8.1.4 requires that Account Manager user accounts are disabled when their accounts are inactive for 90 days. To support compliance with PCI DSS 8.1.4, Account Manager administrators can now set the number of inactive days before an account is disabled. When the setting is enabled, users with inactive accounts receive an email notification 10 days and 1 day before their account is deactivated. To keep an account active, users can log in to any Commerce Cloud application. To enable the setting, in Account Manager > Organization details, activate or deactivate the setting. The setting is disabled by default. # Auto Renew CDN Certificates Starting May 19, 2023, if you can self-manage your custom SSL certificates, you have the option to configure eCDN managed provisioned SSL certificates for automatic renewal. Auto renewing a certificate saves time and keeps you from missing deadlines. It also improves managing eCDN on staging instances. You can configure auto renewing certificates for development, staging, and production instances. Auto renewal is available only for eCDN managed certificates and only with the CDN-API. You can renew up to 5 auto-renewing certificates per realm at no additional cost. #### See Also - [eCDN Managed Certs](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-zones-automatic-certs.html) - [eCDN Proxy Zone FAQ](https://help.salesforce.com/s/articleView?id=cc.b2c_ecdn_proxy_zone_faq.htm&language=en_US) # Auto-Correction is Disabled by Default The default setting for auto-correction for searchable attributes added after the B2C Commerce 24.4 release is now set to No. This change affects searchable attributes added through the Business Manager UI or via import. Existing configurations aren’t affected. Previously, when you added a searchable attribute, the default setting was Yes, which could cause issues in instances when search functions shouldn’t correct values, such as the product SKU, ID, or ISBN. Additionally, the auto-correction dictionary’s size can incrementally increase over time, leading to search noise. **How:** To change the setting in Business Manager, select **Merchant Tools** | **Search** | **Searchable Attributes**. ![Searchable Attribute Setting](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/24_4/rn_b2c_24_4_searchable_attribute.png) #### See Also - [Configure Searchable Attributes (The documentation at this link will be updated when the release notes are published)](https://help.salesforce.com/s/articleView?id=cc.b2c_configure_searchable_attributes.htm&language=en_US) # Auto-Renew Up to 500 eCDN Certificates per Zone Simplify your annual eCDN certificate renewal process by using Business Manager or CDN-API to auto-renew up to 500 certificates per zone. Previously, you could renew only 50 certificate at a time. When you create a CDN zone in a development, staging, or production instance, select eCDN Managed certificates. **When:** This feature is available on October 7, 2024. **How:** When you create a CDN zone, you can select to use eCDN Managed certificates in your development, staging, and production instances. If you use eCDN managed certificates with a third-party CDN stacked on top of eCDN, you must validate the TXT record every 3 months because automatic certifications are on a 3-month rotation. If you’re not using domain control validation (DCV) delegation, TXT records must be updated every 2–3 months. If needed, contact Salesforce support for a DCV delegation UUID to include in your DNS record. #### See Also - [Add Managed SSL Certificates](https://help.salesforce.com/s/articleView?id=cc.b2c_add_managed_ssl_certificates.htm&language=en_US&type=5) - [eCDN Automatic Certificates](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-zones-automatic-certs.html) - [eCDN Proxy Zone FAQ](https://help.salesforce.com/s/articleView?id=cc.b2c_ecdn_proxy_zone_faq.htm&type=5&language=en_US) # Automate Account Provisioning with Just-In-Time User Provisioning The Just-in-time user provisioning setting enables automated account provisioning and linking for new Account Manager user accounts. **Why:** With Just-in-time user provisioning, Account Manager administrators don’t need to pre-populate users in Account Manager. After users are automatically provisioned, the account administrator can assign roles to these users. **How:** Enable Just-in-time user provisioning in The Account Manager Organization Details page. Make sure Identity Federation is set to Enabled or Allowed and Salesforce My Domain is verified. With Just-in-time user provisioning active, the Account Manager login flow for new users automatically creates and activates a user account in Account Manager. The flow also links the user’s Account Manager account with the user’s Salesforce Identity account that they use for single sign-on (SSO). Just-in-time user provisioning also supports SSO established through third-party IAM using Salesforce Identity. **See Also** - [Just-In-Time User Provisioning](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_just_in_time_user_provisioning.htm&language=en_US) - [Automated Linking for Unlinked Accounts](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_automated_linking_for_unlinked_accounts.htm&language=en_US) - [Log in with Identity Federation Enforced](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_log_in_with_identity_federation_enforced.htm&language=en_US) - [Log in with Identity Federation Allowed](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_log_in_with_identity_federation_allowed.htm&language=en_US) # Automate Actions Initiated by Payment Events Tailor the customer experience by building customized automations that are triggered by payment events. For example, automatically send an email receipt to a customer after a payment is made. ### Required Editions
View supported editions.
When a payment is received through a Pay Now payment link or at Commerce store checkout, a payment intent record is created, and it generates a payment platform intent event. ![The sequence of actions from a received payment to the initiation of a platform event.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_event_automation.png) Configure flows or Apex triggers that listen to these payment events for the creation, update, or deletion of a payment, a merchant account, a payment link, or a saved payment method. To learn more about building custom automations, see [Subscribe to to Platform Events using a Flow](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_subscribe_flow.htm) and [Trailhead: Record-Triggered Flows](https://trailhead.salesforce.com/content/learn/modules/record-triggered-flows). #### See Also - [Payments Event Notifications](https://help.salesforce.com/s/articleView?id=commerce.payments_event_notifications.htm&language=en_US) - [PaymentIntent](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_paymentintent.htm) - [Customer Notifications for Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_customer_notifications.htm&language=en_US) # Automate Post-Order Management for Subscriptions Use the Create Assets from a Commerce Order flow to automatically create and update assets related to orders in your B2B store. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Unlimited and Developer editions
Available in: B2B Commerce
Watch the video to help you automate post-order management for subscriptions. If you can’t watch the video in full screen, open the video on a new tab: [Automate Post-Order Management for Subscriptions](https://play.vidyard.com/C7rTwwKxL2rovPBdzAAZzW). 1. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In the Quick Find box, enter and select **Flows** under Process Automation. 3. Find and select **Create Assets from a Commerce Order**. 4. In Flow Builder, click **Save as New Flow**. 5. Enter a name for the flow, and then save your changes. 6. Activate the new flow. # Automate Pricing and Promotion Assignments with Jobs Admins can now automate price book and promotion store assignments using job steps during the import and export process. All assignments in the system are exported when using the jobs framework. How: For more information, see [Store-Specific Pricing and Promotions](https://help.salesforce.com/s/articleView?id=cc.b2c_assigning_a_pricebook_or_promotion_to_a_specific_store.htm&type=5&language=en_US). # Automated Order Routing You can use autolaunched flows to route orders to fulfillment locations. Order Management includes some flow core actions that you can use to implement configurable routing rules. These actions work together by first identifying locations that can fulfill an order and then determining which locations are closest to the recipient. You can also access this functionality using the Connect API. ### Required Editions
View supported editions.
## Minimize Splits Routing Rule The Find Routes with Fewest Splits action evaluates an order’s product quantities against available inventory to determine the smallest set of locations that can combine to fulfill the order. The action executes up to 1,000,000 times, or until finding 10,000 location combinations that meet the allocation criteria. To use this action, provide this information. - List of ordered product quantities - List of available product quantities at individual locations - Optionally, the maximum number of splits The action compares the ordered quantities to the available quantities to determine potential fulfillment options. It starts by looking for single locations with sufficient inventory to fulfill the entire list of ordered products. If it finds any, it returns them in a list. If it doesn't find any, it looks for pairs of locations whose combined inventory can fulfill the order. If it finds any pairs, it returns a list of them. If it doesn't find any, it looks for sets of three locations, and so on. If you specify the maximum number of splits, the maximum number of locations in a single combination is one more than the split number. For example, if you specify a maximum of two splits, the action looks for single locations, pairs of locations, and trios of locations that can fulfill the order. ## Closest Proximity Routing Rule The Order Routing Rank by Average Distance action evaluates sets of locations to determine which set has the shortest average delivery distance based on the recipient’s postal code. When calculating distances, this rule uses a location’s Visitor Address field as the address. To use this action, provide this information. - Recipient's country code and postal code - List of fulfillment location sets - Optionally, a distance unit and sort order for the results For each set of locations, the action calculates the straight-line distance from each location to the recipient's postal code, then calculates their average. It then returns the location sets, sorted by their average distance to the recipient. #### See Also - [Order Fulfillment](https://help.salesforce.com/s/articleView?id=commerce.om_order_fulfillment.htm&release=264.0.0&type=5 "The order fulfillment process streamlines the allocation, assignment, picking, packing, and shipment of order items.") - [Distributed Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_distributed_order_management.htm&release=264.0.0&type=5 "Order Management includes tools for distributing orders across your fulfillment network based on custom business logic. If you use Salesforce Omnichannel Inventory, you can also incorporate its availability features into your order routing process.") - [Omnichannel Inventory](https://help.salesforce.com/articleView?id=inv_omnichannel_inventory.htm&language=en_US) # Automatic Removal of Deleted Account Manager Users Account Manager users who are in a deleted state are automatically removed after 180 days. **How:** When the Deleted Users Only filter is selected in the User List page, a warning tooltip displays next to users with a deleted status that exceeds 90 days. The tooltip message states the number of days until the user is purged. You can reinstate a deleted user within 180 days of being deleted. See [Automatic Removal of Account manager User in a Deleted State](https://help.salesforce.com/s/articleView?id=000394858&type=1&language=en_US). # Automatically Cache Non-Customized Pages for Better Performance Page Designer now automatically caches pages that don't use custom serialization logic, improving runtime performance. When a page doesn't have a custom serialize() function, the system caches its content for a configurable period. Pages without a custom `serialize()` function are automatically cached for the configured TTL duration. Pages with custom serialization logic are not cached. The following controllers control this automatic caching behavior: - `__SYSTEM__Page-Serialize` - `__SYSTEM__ShoperExperience-SerializePageV1` When these controllers complete the serialization process, they invoke `ContextJsonSerializationEngine.runSerializeScript(...)` for the page and its components. If no custom `serialize()` function is called during this process, the controllers automatically save the response to the page cache for the configured TTL duration. **Where:** This feature applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Administration** | **Sites** | **Manage Sites** | **Site** | **Cache**. Select **Enable Page Caching** and specify a **Time to Live (TTL) of Page Designer Serialization** setting. The default setting is 24 hours (86,400 seconds), but you can change this value. #### See Also - [Page Designer Caching](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-dev-for-page-designer.html#page-designer-caching) # Automatically Recover Inventory Availability After an Interruption Omnichannel Inventory now triggers a recovery when a data stream interruption is detected, thus preventing gaps in availability updates. The recovery uses one of the two simultaneous export slots. If you use custom processes for full Omnichannel Inventory availability exports, review potential resource contention. **Where:** This change applies to B2C Commerce where the Omnichannel Inventory is enabled. #### See Also - [_Salesforce Help_: Inventory Management Using Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=cc.b2c_inventory_management_omnichannel_inventory.htm&language=en_US) # Automatically Select the Most Relevant Facets Automatically select, order, and display the most relevant facets based on search results of your B2B store. For example, a customer searching for "Shoes" sees categories like "Boots," "High Heels," and "Sandals" based on the number of results of each category. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Search**. 3. Click the **Additional Settings** tab. 4. Under Filters and Facets, click the pencil next to Autoselect the 10 Most Relevant Facets, and select the checkbox. 5. Save your changes. #### See Also - [Configure How to Display Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_search_display_settings.htm&release=264.0.0&type=5 "Define how many values appear for each search filter and how many search results to show on a page. You can choose to skip additional entitlement checks, automatically select and display relevant facets, and group search results under parent products.") - [Mark Products as Searchable or Not Searchable](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_products.htm&release=264.0.0&type=5 "After you create your initial search index, all products in the catalog are searchable by default. If you want to make a product not searchable, you can exclude it from search. You can change whether a product is searchable at any time.") - [Mark Product Fields as Searchable or Not Searchable for a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_fields.htm&release=264.0.0&type=5 "Marking fields as searchable helps the search engine index more content, improving search accuracy and relevance in you B2B Commerce store. Avoid marking fields as searchable if the fields contain sensitive information or provide generic data.") - [Manage Product Search Filters for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_add_filters.htm&release=264.0.0&type=5 "Help customers narrow their search results by managing product search filters in B2B Commerce. Configure filters for standard product fields, such as price and product family, or variation attribute fields, such as size and color. Control how filter values appear to buyers by setting the sort order for each filter.") # Available Messages in Commerce Messaging Message email templates and flows can be accessed and customized from the Messaging workspace. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
Message Description
Custom Welcome Email
  • Automatically send a welcome email when a user registers.
  • Enabling this message disables the default plain-text welcome email.
Order Confirmation Email
  • A confirmation email that provides customers with order details.
  • Includes order line items and shipping groups.
Abandoned Cart Email
  • Encourage customers to return to their abandond cart and complete their purchase.
  • Requires marketing consents.
  • Not available in Pay Now and Reorder stores.
  • Emails are sent every 24 hours.

To send Abandoned Cart emails, you must have a Marketing Cloud license.

Order Creation Failed
  • Notify buyers when an order fails.
  • Includes order line items and shipping groups.
#### See Also - [Manage Customer Messages for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging.htm&release=264.0.0&type=5 "Use the Commerce Messaging workspace to manage and tailor customer messages, such as order confirmations and welcome emails.") - [_Trailhead_: The Combined Power of Marketing Cloud Next and Agentforce Commerce](https://trailhead.salesforce.com/content/learn/modules/the-combined-power-of-marketing-cloud-and-commerce-cloud) # Avoid Chargebacks with a Site-Specific Statement Descriptor Use a site-specific descriptor to help shoppers identify the source of an account charge on their credit card statements to reduce payment disputes and chargeback requests. You set the customer statement descriptor in Business Manager Payment Settings. The setting overrides the value set in your Stripe merchant account. # Avoid Invalid Characters in Cookie Names Starting with compatibility mode 21.7, using invalid characters in a cookie name causes `dw.web.Cookie` to throw an exception. How: Invalid cookie characters are described in RFC6265, which references RFC2068. # Ayden Framework Upgrade The Adyen framework library has been upgraded to version 1.25.9. This upgrade resolves an issue related to boarding a device with iOS 13. **How:** For more information refer to: [Adyen Release notes -iOS 1.25](https://docs.adyen.com/point-of-sale/posmerchantcontent/library-release-notes/release-notes-ios-1-25) # Ayden Payment Resources Integrate Adyen payment resources with Point of Sale CMS to process point-of-sale transactions. Use either Adyen SDK or Terminal API configurations for terminals. The Adyen SDK is used for legacy terminals like e315. All the new terminals that aren't connected via the iPad Lightning port use the terminal API. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note As of 2022, Adyen doesn’t support the e315 device. ## Prerequisites - If you've yet to set up an Adyen and Point of Sale account, make sure your StoreIDs are the same for both accounts. - If your Point of Sale account is live but you haven’t set up Adyen, make sure your Adyen StoreID is the same as your Point of Sale's StoreID. - If your Adyen account is live but you haven’t set up Point of Sale, make sure your Retail Cloud StoreID is the same as Adyen's StoreID. - To test contactless payments, use a card version of 2.4 or newer. ## Merchant Accoount Architecture Adyen has three levels of accounts: - A single company account on the Adyen platform. This represents your core business entity and is where invoices for terminal orders are sent. - One or more merchant accounts under your company account. You receive settlements and reports at the merchant account level. You can also group together merchant accounts into account groups. - One or more stores under each merchant account. These represent your physical store locations and are used to process point-of-sale transactions. Each Adyen terminal is associated with a store. Although payments are processed through terminals and stores, your transactions are settled at the merchant account level. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Amex requires separate merchant IDs (MIDs) for ecommerce and Point of Sale (POS). Visa, Mastercard, and so on don't require separate MIDs. ## Configuring Registers with Adyen Terminal API Go to the Register of Interest and scroll down to the **Card Reader** section. Set Integration Type to **Local API (for Terminal API)** or **SDK** for using the Native iOS SDK. ## Register Configured to Use SDK To configure a register to use Adyen SDK, select **SDK** under the Integration Type. ![The Card Reader section of Point of Sale CMS, where you set the integration type](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_sdk_card_reader.png) ## Register configured to Use Terminal API To configure a register to use Terminal API, select **Local API** under the Integration Type. ## Ayden Payment Resources - End-User Documentation Store managers can configure their Adyen terminals in use the Terminal API, allowing devices to work together with Point of Sale CMS and the Point of Sale (POS) app. ### Configure Terminal Device to Use Terminal API 1. Press **9** and then **O** on the Adyen Terminal to go to the admin menu. 2. Enter the admin password. To find the admin password from the Adyen portal: 1. Go to the [live site](https://ca-live.adyen.com/ca/ca/login.shtml) or [test site](https://ca-test.adyen.com/ca/ca/login.shtml) as required 2. Select **In-person payments > Terminals** 3. Select the terminal with **serial number > Advanced**. 4. Select **View Decrypted Properties** to see the admin menu pin in the Advanced section. 3. Select **Config > Update** in the Admin menu to sync the terminal device with all the changes made in the Adyen console. 4. After the update finishes, the terminal is ready to make transactions using Terminal API. The terminal will have a cloud icon on the top to confirm switching to Terminal API. ### Turn On Terminal API in the POS App ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Salesforce Customer Support can configure these settings. This step requires CMS access to turn on and assign values to the flags that control the use of Terminal API in the POS app. 1. Go to **Modules > Payments** in CMS and turn on the **Use Adyen Terminal API** flag. 2. Configure Payment Gateway with the right values by following this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_config.htm&release=264.0.0&type=5 "Configure payment gateways in Point of Sale CMS to securely process customer payments. By connecting preferred payment providers, you streamline transactions and enhance the customer checkout experience. Accept a variety of payment methods, reduce friction, and improve overall sales efficiency."). 3. Relaunch the POS app to get the updated CMS settings reflected in the app. ### Switching Adyen Terminal From Terminal API to Use iOS SDK ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Salesforce Customer Support can configure these settings. 1. Disable **Terminal API** in POS App. Adyen Terminal API has to be enabled in the CMS for the merchant to assign these values. 2. Turn off the **Use Adyen Terminal API** flag. 3. Relaunch the POS app to get the updated CMS settings reflected in the app. ### Disable Terminal API in Adyen Console ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Salesforce Customer Support can configure these settings. 1. Go to the Adyen Site, [live site.](https://ca-live.adyen.com/ca/ca/login.shtml) 2. If you're testing an Adyen device, go to the [Test Site](https://ca-test.adyen.com/ca/ca/overview/default.shtml). 3. Go to the In-person payments tab and select **Terminal settings > Integrations** on the website. 4. Disable **Enable terminal API**.![The Enable terminal API flag.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_enable_terminal_api.png) ### Configure Adyen Terminal to Use iOS SDK ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Store managers with the admin password for the terminals can collectively configure all the store devices to use Adyen iOS SDK. 1. Go to **Configuration** in the Admin menu of Adyen Terminal by selecting **9** and **O**. 2. Select **update** to get the changes made in the website synced with the terminal. 3. After the update finishes, the terminal is switched back to using iOS Adyen SDK for transactions. Confirm by checking the removal of the cloud icon at the top of the home screen. 4. This step is only for V400M - Enable Print options for V400M: 1. Go to the **Receipt** option on the website. 2. Select **Delete this ConfigurationOption** under **Print receipt** on Terminal. 3. Select **Save** at the bottom of the screen. ### Set up Standalone Terminal The Adyen terminal can accept payments without being connected to the store associate app. To see the full details of standalone terminals, check out this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_standalone_mode.htm&release=264.0.0&type=5 "Configure Adyen terminals to accept payments via Point of Sale without a store associate Point of Sale (POS) app connection during an outage."). ### Enabling Beacons Beacon functionality in Adyen Terminal allows it to broadcast its presence to nearby Bluetooth devices. We use beacons in the Adyen terminals to locate them from our POS app and connect them to the ‌one to carry out the particular transaction. To learn more, check out the [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_enabling_beacons.htm&release=264.0.0&type=5 "Beacon functionality in Adyen Terminal allows it to broadcast its presence to nearby Bluetooth devices. We use beacons in the Adyen terminals to locate them from the Point of Sale Point of Sale (POS) app and connect them to the one to carry out the particular transaction.") on configuring beacons. ### Ayden Pairing Guide A new Adyen terminal has to fetch the configuration set up from the portal during the boarding process. You can check out the pairing guide documentation in this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_connect_ayden_and_pos.htm&release=264.0.0&type=5 "Set up Adyen terminals to connect to the Modern POS and process payments. Connect your Adyen terminal to Wi-Fi, board the device, and then pair it with the POS app."). ### Adyen Reassigning Terminals If for any reason you move a terminal to another store or merchant, you can do so in the Adyen console by assigning or reassigning Terminals to Stores under the same account. To see more details on reassigning terminals, check out this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_assign_ayden_different_acct.htm&release=264.0.0&type=5 "Reassign an Adyen terminal so that transactions are processed under the correct merchant account in Point of Sale."). ### Adyen Payment Methods To see more details on supported payment methods, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_adyen_payment_methods.htm&release=264.0.0&type=5 "Integrate supported Adyen payment methods integrate with Point of Sale (POS), allowing your customers to use a variety of payment options."). ### Point of Sale CMS Configuration To learn how to configure Adyen as a payment gateway integration in CMS, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_config.htm&release=264.0.0&type=5 "Configure payment gateways in Point of Sale CMS to securely process customer payments. By connecting preferred payment providers, you streamline transactions and enhance the customer checkout experience. Accept a variety of payment methods, reduce friction, and improve overall sales efficiency."). ### Troubleshooting To find more Adyen troubleshooting information, check out this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ttp_troubleshooting.htm&release=264.0.0&type=5 "Resolve Tap to Pay errors and connection problems by verifying your Adyen configuration in the Point of Sale (POS) app and internet connection."). # Ayden QR Code Payments Enable your customers to complete in-store payments quickly and securely with their preferred QR code wallet apps via Adyen. The Point of Sale (POS) app supports payments through AliPay and WeChat Pay. Prerequisites: - Modern POS App Build: 5.12.2 or greater\* - Platform Support: iPhone & iPad - Offline Support: Yes - Payment Gateway: Integration with [Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5 "You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale.") to accept a payment - Test Cards: To test contactless payments, you must use a card version of 2.4 or newer. \* Adyen AMS1 and M450 terminals are supported for app builds 10.5.1 and later. During the payment process, the Adyen terminal and the wallet app communicate via a QR code. Store associates can utilize this feature during checkout when customers choose to pay using their QR code wallet apps. Currently, the supported payment methods include: - AliPay\* - WeChat Pay Adyen directly enables QR code payments. You don't need to add specific supported tenders in Point of Sale CMS. ## Configure Payment Methods at Merchant Account level 1. Log in to your Adyen console. 2. Select **Accounts > Payment Methods**. 3. Select **Add Payment Method** in the top right corner. 4. Look up “**AliPay**” or “**WeChat Pay**” and select their checkbox. 5. Select **Submit**. ## Configure and Update Payment at Store and Terminal level Adyen support team needs to assist you in turning on payment methods at the store and terminal levels. To update the configuration on Ayden terminals: 1. Enter **9** and **O**. 2. Enter the admin key for the terminal. 3. Select **Config**. 4. Select **Update**. ## POS App Flow On the app, click on the card option on the POS cart screen to complete the checkout. ![A message in the POS app telling the user to present their card.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pay_later_checkout_card.png) This initiates the transaction on the Adyen payment terminal, and you’ll see a scan button to select their payment methods.![A message on the Ayden terminal to insert or swipe card.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_scan_card_ayden.png)![A message in the Ayden terminal to select the ayment wallet.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pay_later_select_wallet.png) After the customer selects the wallet, the terminal with present the QR code for payment.![A QR code in the ayden terminal that starts the payment flow.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_qr_code_pay_later.png) When the user selects **Scan QRcode** with the wallet app, the transaction is approved. ![The approval screen in the Ayden terminal after the user scans an QR code.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_approve_qr_scan.png) The order is placed, and the POS app shows the **Order Confirmation** screen. You’ll see options to print or email your receipt. ![The POS app on an IOS device with a successful transaction message.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_approved_transaction_ios.png) # Ayden Terminal Known Issues and Restrictions Understand the limitations and known issues if using Adyen payments. ## Cardholder Verification Methods (CVM) Limits Minimum payment amounts aren’t configurable within Modern POS or our CMS. They’re dependent on a variety of factors, such as payment networks and customer regions. ## Refusal Reasons Refusal reasons displayed in Modern POS as to why a transaction wasn’t completed are provided by the terminal. These reasons aren’t configurable in Modern POS or CMS. ## Payment Reader Not Reading Chip Make sure the card is inserted into the payment reader correctly. The end of the card with a metallic square has to be inserted into the payment reader. ## Payment Terminal Topology Prior to version 8.4.1, payment terminal topology can only be configured at the store level. Modern POS versions 8.4.1 and onwards added support to configure payment terminal configuration at register level. ## Localization The language presented in the terminal settings is determined by the Adyen console. The language isn’t configurable via Modern POS or CMS. ## Funding Source If the terminal has a network issue connecting to Adyen cloud, then funding sources won’t be returned to the POS. As a result, funding source attributes can be missing in TLOG for credit card payments performed in a terminal offline state. ## Partial Payments Adyen has the concept of Partial Payments, however we aren’t using it. Insufficient funds always result in a decline. You can find the risks and limitations [here](https://docs.adyen.com/point-of-sale/partial-payments/). ## Store and Forward (SAF) For Adyen terminals with cellular capability, offline (SAF), transactions exceeding configured limits attempt to go online for processing. If the device can’t reach Adyen servers, an error message displays: “**Failed to go Online.**” For devices with 4G (ASM1, SF01), turn off 4G by asking Adyen support. Salesforce doesn’t support failover between Wi-Fi and cellular networks. # B2B Commerce Cookies B2B Commerce stores use cookies to improve functionality and accelerate processing times. By saving a user’s settings, cookies can enhance the user’s experience and the performance of the store. In addition to these Commerce-specific cookies, stores can use cookies that apply to all Experience Cloud sites. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Salesforce doesn’t currently provide functionality for end-user cookie consent management. The platform is compatible with many existing third-party solutions. We recommend that you work with your internal IT teams or consult your implementation partners to identify the right solution for your organization’s needs. Cookies are divided into required, functional, and marketing. Functional cookies include preferences and statistics. - **Required**: Strictly necessary to browse the website and to use its features. - **Functional: Preferences**: Used by the website to remember choices made previously. Language settings are an example of a preference type cookie. - **Functional: Statistics**: Used to collect information about how a website is used, including links clicked and which pages users visited. - **Marketing**: Used to track online activity for a more personalized experience, including relevant advertisement. This table describes the Commerce cookies collected by Salesforce. For additional cookies, see [Experience Cloud Cookies](https://help.salesforce.com/s/articleView?id=experience.networks_cookies.htm&language=en_US). | Cookie Name | Duration | Cookie Type | Description | | --- | --- | --- | --- | | `cqcid` | 1 year | Functional: Statistics | Provides a unique value for an unregistered buyer or shopper. Used by Commerce Einstein to track activity. For more information, see [Tracked Data](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_data.htm&language=en_US). | | `GuestCartSessionId_{storeId}` | 7 days or custom guest cart expiration time | Required | Provides a unique ID for a guest user's cart session. For more information, see [Enable Guest Access to a Store](https://help.salesforce.com/s/articleView?id=commerce.comm_config_guest_browsing.htm&language=en_US). | | `guest_uuid_essential_{siteId}` | 1 year | Required | Provides a unique ID for guest users in Experience Cloud sites. Expires one year after the user’s last visit to the site. | #### See Also - [Experience Cloud Cookies](https://help.salesforce.com/articleView?id=experience.networks_cookies.htm&type=5&language=en_US) - [Storefront Activity Tracking](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_activity_tracking_top.htm&release=264.0.0&type=5 "Storefront activity tracking captures browser-based, real-time customer activities on your storefront, unless settings are explicitly changed by the customer.") - [Enable Semantic Search for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_enable_semantic_search.htm&release=264.0.0&type=5 "Semantic search improves your search results by matching and returning items that are semantically related to a query. Semantic search requires a Content Security Policy (CSP) trusted site for the Commerce Einstein domain.") # B2B Commerce for Visualforce Review B2B Commerce for Visualforce bug fixes included in each generally available patch. Access help documentation, release notes, and developer documentation using PDFs. - **[B2B Commerce for Visualforce Patch Notes](https://help.salesforce.com/s/articleView?id=commerce.b2b_commerce_rn_patches.htm&release=264.0.0&type=5)** Salesforce B2B Commerce for Visualforce patch notes contain high-level reviews of bug fixes included in each generally available patch for a Visualforce package. We update patch notes after a new patch becomes available for a package. - **[B2B Commerce for Visualforce Resources](https://help.salesforce.com/s/articleView?id=commerce.b2b_commerce_rn_resources.htm&release=264.0.0&type=5)** Access PDF resources to view B2B Commerce for Visualforce help documentation, release notes, and developer documentation. As of Summer ’25, Salesforce maintains only patch notes for B2B Commerce for Visualforce. # B2B Commerce for Visualforce Patch Notes Salesforce B2B Commerce for Visualforce patch notes contain high-level reviews of bug fixes included in each generally available patch for a Visualforce package. We update patch notes after a new patch becomes available for a package. - **[Patch Notes for B2B Commerce for Visualforce Winter ’21 (Version 4.13)](https://help.salesforce.com/s/articleView?id=commerce.b2b_commerce_rn_2021_winter_patches.htm&release=264.0.0&type=5)** Patch notes for B2B Commerce. - **[Patch Notes for B2B Commerce for Visualforce Spring ’20 (Version 4.12)](https://help.salesforce.com/s/articleView?id=commerce.b2b_commerce_rn_2020_spring_patches.htm&release=264.0.0&type=5)** Patch notes for B2B Commerce. - **[Patch Notes for B2B Commerce for Visualforce Summer ’19 (Version 4.11)](https://help.salesforce.com/s/articleView?id=commerce.b2b_commerce_rn_2019_summer_patches.htm&release=264.0.0&type=5)** Patch notes for B2B Commerce. - **[Patch Notes for B2B Commerce for Visualforce Spring ’19 (Version 4.10)](https://help.salesforce.com/s/articleView?id=commerce.b2b_commerce_rn_2019_spring_patches.htm&release=264.0.0&type=5)** Patch notes for B2B Commerce. - **[Patch Notes for B2B Commerce for Visualforce Summer ’18 (Version 4.9)](https://help.salesforce.com/s/articleView?id=commerce.b2b_commerce_rn_2018_summer_patches.htm&release=264.0.0&type=5)** Patch notes for B2B Commerce. - **[Patch Notes for CloudCraze 4.8](https://help.salesforce.com/s/articleView?id=commerce.cloudcraze_4_8_patches.htm&release=264.0.0&type=5)** Patch notes for CloudCraze. - **[Patch Notes for CloudCraze 4.7](https://help.salesforce.com/s/articleView?id=commerce.cloudcraze_4_7_patches.htm&release=264.0.0&type=5)** Patch notes for CloudCraze. - **[Patch Notes for CloudCraze 4.6](https://help.salesforce.com/s/articleView?id=commerce.cloudcraze_4_6_patches.htm&release=264.0.0&type=5)** Patch notes for CloudCraze. - **[Patch Notes for CloudCraze 4.5](https://help.salesforce.com/s/articleView?id=commerce.cloudcraze_4_5_patches.htm&release=264.0.0&type=5)** Patch notes for CloudCraze. # B2B Commerce for Visualforce Resources Access PDF resources to view B2B Commerce for Visualforce help documentation, release notes, and developer documentation. As of Summer ’25, Salesforce maintains only patch notes for B2B Commerce for Visualforce. - [B2B Commerce for Visualforce Help](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/b2b_commerce_visualforce.pdf) Implement your B2B solution with a set of Visualforce pages and components. - [B2B Commerce for Visualforce Release Notes and Upgrade Guide](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/b2b_commerce_release_notes.pdf) Check out what’s new in each release of the B2B Commerce for Visualforce managed package, and learn how to upgrade your implementation. - [B2B Commerce for Visualforce Developer Guide](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/b2b_commerce_dev_guide.pdf) Implement your B2B solution with the default configuration options, or extend the managed package’s code architecture to meet your organization’s requirements. # B2B Commerce Permission Sets Permissions determine the information users can access and the actions they can take when configuring or shopping at a store. Salesforce provides preconfigured permission sets, which define multiple permissions for internal and external users. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Guidelines for Assigning Permission Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_perm_set_guidelines.htm&release=264.0.0&type=5)** We recommend that you assign permission sets to users that grant them only the required permissions to carry out their jobs. - **[View Permission Set Overviews](https://help.salesforce.com/s/articleView?id=commerce.comm_perm_set_overviews.htm&release=264.0.0&type=5)** The permission set overview page gives detailed information about permission set functionality. From there, view settings such as Object Settings, Flow Access, and System Permissions. - **[Preconfigured Permission Sets for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_preconfigured_perm_sets.htm&release=264.0.0&type=5)** Preconfigured permission sets provide B2B users, from customers to admins, with access to required features and functionality. An admin can customize a preconfigured permission set by cloning it and then modifying the individual permissions in the permission set. - **[B2B Integrator Permissions](https://help.salesforce.com/s/articleView?id=commerce.comm_integrator_perms.htm&release=264.0.0&type=5)** Salesforce provides several system permissions that enable users to integrate their B2B and D2C stores with third-party applications. - **[Default Object CRUD Permissions for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_crud_perms.htm&release=264.0.0&type=5)** You can perform Create, Read, Update, and Delete (CRUD) operations on objects in your org depending on your permissions. Users assigned to preconfigured permission sets receive CRUD permissions according to their persona’s required functionality. # B2B Commerce Search and Auto-Correction Management Auto-correction, or typo tolerance, helps customers find the products that they’re looking for when they inadvertently enter incorrect search terms. Typo tolerance corrects suggestions by matching and returning terms similar to the terms entered in a query. For example, if a customer mistypes shert in the search bar of a site that sells apparel, typo tolerance can suggest terms like shirt. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Commerce Search matches prefixes against standard fields to return results. Prefix matching is enabled by default for all stores starting in Summer’25, and it can be disabled by contacting Salesforce support. Typo correction is enabled by default for Commerce Search, but it’s executed as a secondary search function. The secondary search updates the search phrase to include candidate corrections and then repeats the search. You can’t disable typo tolerance. When a customer initiates a term search: - The initial filter and search phrase execution occur simultaneously, and then Commerce Search determines if the term exists in the catalog. - If Commerce Search finds the original search term, it returns the results. The results are based on the match between the prefix entered and an existing prefix in the standard fields. Prefix matching is applied only for terms that are three to seven characters long. - Typo tolerance isn’t applied when a user searches for a SKU. - If no results are found for a search term, Commerce Search internally initiates a typo correction search and finds the closest match to the original term in the catalog. - Using the corrected term, Commerce Search runs the search again and returns any results. - To improve search efficiency, the language analyzer filters out certain common words, known as stop words. For example, in the search phrase “the best pizza in New York,” the language analyzer filters out the stop words “the” and “in,” allowing the search engine to focus on “best,” “pizza,” and “New York.” Stop words vary from language to language. Keep these considerations in mind for Commerce Search, typo tolerance, auto-correction, and Einstein Search suggestions. - Stemming is supported. Commerce Search delivers results for any matches to a word’s stem, for example, coffees finds coffee and running returns run. - Commerce Search provides typo tolerance and auto-correction only when it finds terms that differ by one or two letters or numbers from the original term. For example, searching for coff results in the corrected term coffee. But searching for cof provides no results because it takes more than two letter corrections to reach coffee. - Typo tolerance looks for the closest match within two corrections of the original term that returns results. - Typo tolerance applies to tokens with three or more characters. For example, if a customer query for XY-1234 doesn’t return an exact match, typo tolerance searches for the closest match to the second token, 1234, but not the first, XY. - Typo tolerance looks for replacement terms before filters or entitlements are applied. Typo tolerance thus doesn’t guarantee a specific replacement for a misspelled or not found term, even when candidate terms are within the two correction distance. - Search uses the exact one or two correction distance from the original term only when looking for corrections in non-localized terms. - When searching localized terms, the original term is first analyzed using regular search functions. Depending on the localization language, analysis can include stemming searched terms and potential corrections, resulting in terms of shorter length. - If a localized, misspelled term can’t be properly stemmed, the distance between the term and the stem of its corrected spelling can be greater than two corrections. This scenario can result in some longer misspelled words not getting corrected. - Einstein Search suggestion uses different algorithms from Commerce Search typo tolerance or auto-correction. Einstein Search suggests type-ahead options only after the site builds up enough search history to use as a reference input. #### See Also - [Considerations for Product Searchability](https://help.salesforce.com/s/articleView?id=commerce.comm_search_considerations.htm&release=264.0.0&type=5 "As you configure search for your B2B Commerce storefront, keep these considerations in mind.") # B2B Integrator Permissions Salesforce provides several system permissions that enable users to integrate their B2B and D2C stores with third-party applications. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) The B2B Integrator and Commerce Entitlements Integrator permissions are disabled by default for all users. A Salesforce admin can enable these permissions for specific users by cloning the Commerce Admin permission set and then modifying it.
System Permission Description Included in These Permission Sets
B2B Integrator Process integrations and export and import orders from external order management systems.
  • Commerce Admin (disabled by default)
Commerce Entitlements Integrator Receive “Modify All Records” permissions for Buyer Group, Buyer Group Member, Entitlement Buyer Group, Entitlement Policy, and Entitlement Product objects to integrate entitlement data from a third-party system.
  • Commerce Admin (disabled by default)
Commerce Shipment Integrator Access shipment information. A user’s access to order summaries controls the user’s access to shipments.
  • Merchandiser (enabled by default)
  • Commerce Admin (enabled by default)
#### See Also - [B2B Commerce Permission Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_perm_sets.htm&release=264.0.0&type=5 "Permissions determine the information users can access and the actions they can take when configuring or shopping at a store. Salesforce provides preconfigured permission sets, which define multiple permissions for internal and external users.") - [Preconfigured Permission Sets for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_preconfigured_perm_sets.htm&release=264.0.0&type=5 "Preconfigured permission sets provide B2B users, from customers to admins, with access to required features and functionality. An admin can customize a preconfigured permission set by cloning it and then modifying the individual permissions in the permission set.") # B2B Licenses and Allocations A B2B license is based on your anticipated gross merchandise volume (GMV) or the number of orders placed to your store (PPO). You can purchase as many licenses as you need, but you can’t mix and match licenses, for example, a standalone and standalone plus license or a PPO and GMV license. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) This table lists the licenses for B2B. Some limits shown in the table are per license. For example, one B2B Commerce Standalone - PPO license includes 1,000 store orders. If you buy six B2B Commerce Standalone - PPO licenses, you get 6,000 store orders. However, the number of stores and number of permission sets for internal users is per purchase. No matter how many B2B Commerce Standalone - PPO licenses you buy, you get 2 stores and 1,000 permission sets for internal users. GMV that must be converted to your contract currency converts by using the average exchange rate in effect on the day the order processes. What's Included in Each License | License | B2B Commerce Standalone - ppo | B2b commerce standalone plus - ppo | B2b commerce standalone - Gmv | B2b commerce standalone plus - gmv | Additional Store | | --- | --- | --- | --- | --- | --- | | Number of Store Orders | 1,000 per license | 1,000 per license | NA | NA | NA | | GMV Amount | NA | NA | 1,000 per license | 1,000 per license | NA | | Number of Stores | 2 | 10 | 2 | 10 | 1 | | Permission Sets for Internal Users | 1,000 | 1,000 | 1,000 | 1,000 | NA | | Extra Platform Cache Space per Org | 20 MB | 80 MB | 20 MB | 80 MB | NA | | Extra Data Storage per Org | NA | 10 GB | NA | 500 MB | NA | | Extra File Storage per Org | NA | 50 GB | NA | 20 GB | NA | | Extra API Calls per Day, per Org | NA | 2,000 | NA | 20 | NA | | Number of Unmanaged Order Summaries | 1,000 per license, store orders only | 4,000 per license, can include store orders and multichannel orders | 10 per license, store orders only | 40 per license, can include store orders and multichannel orders | NA | ## Definitions That Affect Licenses Order A record of the activated Order Summary object that’s created, modified, and processed in B2B before entering your order fulfillment system. Any order created from the store user interface, B2B Commerce APIs, or other related services must be created by using this object. Multichannel Order An order record that originates from a system outside of B2B and is imported into an Order Summary object. For example, a multichannel order can originate from an electronic data interchange (EDI) system and can be uploaded to an Order Summary object by using Data Loader. Multichannel orders count towards the number of Unmanaged Order Summaries. Active Store A store in a production org created with B2B Commerce. Platform Cache Memory layer in Salesforce that helps improve performance when querying certain org and session data. Your org provides a certain amount of space in the platform cache. A B2B license provides extra space. You can allocate the extra space for caching certain types of storefront data. B2B External User A buyer who logs in to an account on your storefront or store and browses and purchases products. An external user can’t be personnel from your company. ## Licenses for Internal Users For internal users, assign a Salesforce standard license or an Identity license paired with either the Commerce Admin or the Merchandiser permission set. You can also use a Sales Cloud or Service Cloud standard user license paired with the Commerce Admin or the Merchandiser permission set. ## Licenses for External Users Purchase enough licenses for external users to support the authentication and purchasing activity that you expect on your storefront. B2B External User License (Member-Based) - For buyer users—An External Apps license gives users the minimum access to use B2B Commerce features. - For buyer managers or buyers who need access to other buyers—B2B Commerce requires a Customer Community Plus or higher license to access other buyers, role-based sharing, reports, and other objects beyond B2B objects. B2B External Login License (Login-Based) - For buyer users—An External Apps Login licenses gives users the minimum access to use B2B features. Obtain the External Apps login license via the Registered Shopper SKU. - For buyer managers or buyers who need access to other buyers—B2B Commerce requires a Customer Community Plus Login or higher license to access other buyers, role-based sharing, reports, and other objects beyond B2B objects. For information about B2B External Logins (Per Month) licenses for the Enterprise, Performance, and Unlimited Editions, see the Customer Community Plus Login license at [Experience Cloud User Licenses](https://help.salesforce.com/s/articleView?id=platform.users_license_types_communities.htm&language=en_US). You can also apply any licenses that you’ve already purchased toward your B2B activity. For more information about which licenses to purchase to support your storefront activity or disabling a license that youʼve purchased, contact your Account Executive. #### See Also - [D2C Commerce Licenses and Allocations](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/comm_b2c_licenses.pdf) - [Connected Commerce Licenses and Allocations](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/comm_connected_commerce_licenses.pdf) - [Commerce Personas and Permissions](https://help.salesforce.com/s/articleView?id=commerce.comm_personas.htm&release=264.0.0&type=5 "A typical B2B implementation involves several task-based personas, such as commerce administrator, merchandiser, developer, and shopper.") # B2B Store Setup Considerations The Commerce Setup Assistant and the Store Setup Assistant work together to create a guided path for store creation. This path is simplified to get you up and selling as fast as possible. However, you can customize a store for your specific needs by configuring locales, languages, and currencies. If you haven’t configured these before creating your store, only the default options configured for your Salesforce org show. You can update these values after creating your store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Locale Information To configure the list of available countries, see [Enable State and Country Picklists](https://help.salesforce.com/s/articleView?id=commerce.commerce_picklists.htm&release=264.0.0&type=5 "Stores based on the LWR (Lighting Web Runtime) template accept only ISO codes for country and state or province. To minimize user entry errors, we recommend enabling state and country picklists, so that users select values from a list instead of typing them in. The picklists ensure that ISO codes are used consistently throughout the entire organization."). Configure additional languages in the [Translation Workbench](https://help.salesforce.com/s/articleView?id=commerce.comm_translation_workbench.htm&type=5&language=en_US). When you create a store using the Commerce Setup Assistant, the default language that you selected becomes the default language in Experience Builder. If you change the default language later, you can manually update the default language in Experience Builder. The currencies available at store creation are the currencies that are enabled in your org. See [Enable Currencies](https://help.salesforce.com/s/articleView?id=commerce.comm_currency_considerations.htm&type=5&language=en_US). ## Site and URL Naming Conventions Consider these best practices for your store's name and URL. - If you’re creating more than one selling channel, differentiate the beginning of each name by business unit, region, or other distinction. - Users can see up to 32 characters of the name in the global header dropdown menu. - The URL for your store is a string added to your Salesforce domain name for digital experiences. For example, if your domain is MyDomainName.my.site.com, and you enter jewelry in the URL field, your store URL is MyDomainName.my.site.com/jewelry. You can also [create a custom URL](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_url.htm&release=264.0.0&type=5 "The default URL for a Commerce store includes a temporary path you specified when creating the store. The default URL is suitable for testing pre-production stores during development. However, before you launch a B2B store created with an LWR template into live production, we recommend that you configure a custom URL for the store. Associate the custom URL with a custom domain served by the Salesforce CDN, with Cloudflare as the CDN partner. For B2B stores created with an Aura template, a custom URL is optional. However, we recommend using a custom domain and corresponding CDN if broad access and high security are required."). ## Default Entities After you finish the guided store setup, your store is created with these default entities. - A store catalog with one product category - A store buyer group with an entitlement policy - A store price book and store strikethrough price book - An enhanced CMS workspace and a public channel that connects the store to that CMS workspace You can create and assign different records, but you can’t delete the default entities, except for the product category. If something goes wrong during store creation, the default entities aren't created and you must create them manually. #### See Also - [Create a Buyer Group or Store Price Book for B2B Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_assign_pricebooks.htm&release=264.0.0&type=5 "To display prices to your customers, create a buyer group or store price book. You can assign a price book to buyer groups, stores, or both, but you must have at least one. When you assign a price book to a store, any customer who can access the store is eligible for prices within that price book. When you assign a price book to a buyer group, the accounts associated with that buyer group are eligible for prices within that price book.") - [Create a Catalog and Assign It to a Store](https://help.salesforce.com/s/articleView?id=commerce.comm_catalog_create_assign.htm&release=264.0.0&type=5 "Before you can make products available to buyers and shoppers, your B2B Commerce store must have a catalog. A catalog is the entire collection of products that you offer through your store. When you create a store, a default catalog is assigned to the store. You can use the default catalog or assign a different catalog to the store. You can assign a catalog to more than one store, but a store can have only one catalog at a time.") - [Create a CMS Workspace to Import Images to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_cms_workspace.htm&release=264.0.0&type=5 "When you use a CSV file to import images, you must specify a CMS workspace where the imported images are linked. If you don’t have a CMS workspace, create one before you begin the import process.") - [Commerce Store Setup Tasks](https://help.salesforce.com/s/articleView?id=commerce.comm_store_setup_tasks.htm&release=264.0.0&type=5 "To get your store running, complete the guided tasks on the store home page. You can complete the recommended tasks after you activate your store.") - [LWR and Aura Store Templates](https://help.salesforce.com/s/articleView?id=commerce.comm_lwr_aura_comps.htm&release=264.0.0&type=5 "Starting with Summer ’23, all new B2B stores are built on the Lightning Web Runtime (LWR) platform. Some B2B stores still use the Aura platform and, in some places, the Commerce App UI and documentation still refer to Aura features and components. If you’re using a new LWR store, you can ignore the Aura information.") - [B2B Commerce Aura to LWR Migration Guide](https://developer.salesforce.com/docs/commerce/lwr-migration/guide) # B2C Commerce 2026 Deployment Schedule To uphold our commitment to customer trust and to make sure that our B2C Commerce releases meet our rigorous standards, we deploy the B2C Commerce major releases to customers in four phases. See the Deployment table for information about which instances are included in each major release phase. B2C Commerce deployment dates are subject to change, but deployment typically happens within 1-2 weeks of the published date. We update these dates as soon as we’re aware of changes. Production releases occur between 2:00 AM - 7:00 AM local Point of Delivery (POD) time. On-Demand Sandbox releases occur in 2:00 AM - 7:00 AM windows: - ODS-US - EST - ODS-AP - JST - ODS-EU - BST B2C Commerce 2026 Deployment Schedule–Releases 26.1 - 26.10 | Deployment | 26.1 | 26.2 | 26.3 | 26.4 | 26.5 | 26.6 | 26.7 | 26.8 | 26.9 | 26.10 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Included in Salesforce Release Notes | Spring ’26 | Spring ’26 | Spring ’26 | Spring ’26 | Spring ’26 | Summer ’26 | Summer ’26 | Summer ’26 | Summer ’26 | Winter ’27 | | Preview | Dec-04 (Thu) | Jan-27 (Tue) | Feb-24 (Tue) | Mar-24 (Tue) | Apr-21 (Tue) | May-19 (Tue) | Jun-23 (Tue) | Jul-21 (Tue) | Aug-18 (Tue) | Sep-29 (Tue) | | Preview Update | Dec-18 (Thu) | Feb-03 (Tue) | Mar-03 (Tue) | Mar-31 (Tue) | Apr-28 (Tue) | May-28 (Thu) | Jun-30 (Tue) | Jul-28 (Tue) | Aug-25 (Tue) | Oct-06 (Tue) | | Major: AUS PODs | Jan-06 (Tue) | Feb-10 (Tue) | Mar-10 (Tue) | Apr-07 (Tue) | May-05 (Tue) | Jun-09 (Tue) | Jul-07 (Tue) | Aug-04 (Tue) | Sep-01 (Tue) | Oct-13 (Tue) | | Major: JAPAN PODS & PODS 283/282, 290/291, 293/292, 295/294 | Jan-13 (Tue) | Feb-12 (Thu) | Mar-12 (Thu) | Apr-09 (Thu) | May-07 (Thu) | Jun-11 (Thu) | July-09 (Thu) | Aug-06 (Thu) | Sep-03 (Thu) | Oct-15 (Thu) | | Major: EMEA PODs **Excluding** PODs 284/285, 270/271, 240/241, 330/331 | Jan-22 (Thu) | Feb-19 (Thu) | Mar-19 (Thu) | Apr-16 (Thu) | May-14 (Thu) | Jun-18 (Thu) | Jul-16 (Thu) | Aug-13 (Thu) | Sep-24 (Thu) | Oct-22 (Thu) | | Major: **Remaining** AMER PODs & EMEA PODs 284/285, 270/271, 240/241, 330/331 | Jan-29 (Thu) | Feb-26 (Thu) | Mar-26 (Thu) | Apr-23 (Thu) | May-21 (Thu) | Jun-25 (Thu) | Jul-23 (Thu) | Aug-20 (Thu) | Oct-01 (Thu) | Oct-29 (Thu) |
Deployment Instances
Deployment Instances Impact
Preview; Preview Update

All On-Demand Sandboxes

Subscribe to your ODS Instance in Trust (for example: ODS-AP01, ODS, EU-01, ODS-US01, etc.)

15 minutes of downtime for all sandboxes.
Major Releases New features and enhancements and defect fixes

Typically doesn’t exceed 15 minutes of downtime for a storefront.

Maintenance page is displayed.

Jobs and replications are interrupted.

# B2C Commerce Announcements Archive Review past B2C Commerce announcements. - **[Get Holiday Ready with B2C Technical Solutions](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_10_get_holiday_ready_je.htm&release=264.0.0&type=5)** Read our latest technical guides to learn how to efficiently build scalable solutions that perform through any sales season. - **[Use the Einstein B2C Experiences Learning Map](https://help.salesforce.com/s/articleView?id=commerce.rn_einstein_learning_map_b2c_21_5_w9167581_mjb.htm&release=264.0.0&type=5)** Want to learn more about how to create compelling customer experiences? Chart a course for success using the Einstein B2C Experiences learning map. - **[Inclusive Terms Are Replacing Legacy Language](https://help.salesforce.com/s/articleView?id=commerce.b2c_inclusive_terms.htm&release=264.0.0&type=5)** As part of our efforts to refine language in our products to more accurately reflect inclusivity, Salesforce is replacing terms deemed noninclusive. APIs and older API documentation aren’t included because changing terms in our code can break current implementations. - **[Change of Identity Management for Commerce Cloud GitHub Repositories](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_idm_change_for_github_repos.htm&release=264.0.0&type=5)** We're simplifying how users access the Commerce Cloud GitHub repository. Access is now direct via Commerce Cloud Account Manager. Previously, access required users to register a GitHub account. This change only affects resources that require Commerce Cloud accounts. Any resources that are publicly available can still be accessed using any GitHub account. - **[Get Ready for Multi-Factor Authentication Enforcement in May](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_mfa_enforcement_je.htm&release=264.0.0&type=5)** The requirement to use multi-factor authentication (MFA) when accessing Salesforce products went into effect on February 1, 2022. To help customers satisfy this requirement, MFA is soon to be a permanent part of the B2C Commerce login experience. Starting May 1, 2022 and continuing on a rolling basis through the end of May, Salesforce is enabling and enforcing MFA for all users who log in directly to B2C Commerce applications. - **[Protect Against Bots and Malicious Attacks](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_origin_shielding_phase2_je.htm&release=264.0.0&type=5)** To help you protect your B2C Commerce environments from bots and malicious attacks, Commerce Cloud is restricting external sources from directly accessing the demandware.net hostname. - **[Commerce Cloud Order Management Retirement](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_order_management_retirement.htm&release=264.0.0&type=5)** Salesforce B2C Commerce retired the Commerce Cloud Order Management product on July 31, 2022. There are no further updates or access to the Commerce Cloud Order Management documentation including the Infocenter and Release Notes. - **[Get More Commerce Partner Apps on AppExchange](https://help.salesforce.com/s/articleView?id=commerce.rn_app_migration_to_appexchange.htm&release=264.0.0&type=5)** By March 2023, more than 250 Commerce Partner apps are migrated from the Commerce Cloud LINK Marketplace and made available on AppExchange - reducing costs, increasing efficiency, and driving Commerce Cloud customer success. Use Commerce Partner apps to deliver digital and composable experiences faster, easier, and with less cost. Streamline operations while increasing revenue, and create personalized customer moments with dynamic shopping experiences. - **[LINK Marketplace Retirement](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_link_retirement.htm&release=264.0.0&type=5)** The LINK Marketplace is now retired. To help you extend B2C Commerce, we’ve migrated all apps from the LINK (B2C Commerce) marketplace to AppExchange – made up of cartridges and headless integrations. The AppExchange is now the sole Salesforce marketplace for B2C Commerce Integrations. B2C Commerce independent software vendor (ISV) partner cartridge code has been removed from Salesforce GitHub repositories, and the LINK Program has officially concluded. - **[B2C Commerce Infocenter Retirement](https://help.salesforce.com/s/articleView?id=commerce.rn_infocenter_retirement.htm&release=264.0.0&type=5)** The Salesforce B2C Commerce Infocenter is being retired on July 15, 2023. Between June 15 and July 15, B2C Commerce documentation will be available in both the Infocenter and its new locations to help ensure a smooth transition for users. This change applies to all versions of Salesforce B2C Commerce. # B2C Commerce API Release Notes Keep track of the new features and functionality that the B2C Commerce APIs offer. The following summarizes new features and updates by month. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The latest and most comprehensive release notes are published to Salesforce Developers. See [Salesforce Developers](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). - **[December 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_dec_2025.htm&release=264.0.0&type=5)** SCAPI Release - **[October 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_oct_2025.htm&release=264.0.0&type=5)** SCAPI and SLAS - **[September 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_sept_2025.htm&release=264.0.0&type=5)** SCAPI and SLAS - **[August 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_aug_2025.htm&release=264.0.0&type=5)** SCAPI and SLAS - **[July 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_july_2025.htm&release=264.0.0&type=5)** SCAPI and SLAS - **[June 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_june_2025.htm&release=264.0.0&type=5)** SCAPI and SLAS - **[May 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_may_2025.htm&release=264.0.0&type=5)** SCAPI Release - **[April 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_april_2025.htm&release=264.0.0&type=5)** SCAPI Release - **[March 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_march_2025.htm&release=264.0.0&type=5)** SCAPI and SLAS - **[February 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_feb_2025.htm&release=264.0.0&type=5)** SCAPI, OCAPI, and SLAS - **[January 2025](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_jan_2025.htm&release=264.0.0&type=5)** SCAPI and SLAS - **[October 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_oct_2024.htm&release=264.0.0&type=5)** SCAPI release, SCAPI fixes, and SLAS Release with the B2C Commerce 24.10 release: - **[September 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_sept_2024.htm&release=264.0.0&type=5)** SCAPI release, SCAPI fixes, and SLAS Release with the B2C Commerce 24.9.1 release: - **[August 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_aug_2024.htm&release=264.0.0&type=5)** SCAPI release, SCAPI fixes, and SLAS Release with the B2C Commerce 24.9 release: - **[July 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_july_2024.htm&release=264.0.0&type=5)** SCAPI release, SCAPI fixes, and SLAS Release with the B2C Commerce 24.8 release: - **[June 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_june_2024.htm&release=264.0.0&type=5)** SCAPI release, SCAPI fixes, and SLAS Release with the B2C Commerce 24.7 release: - **[May 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_may_2024.htm&release=264.0.0&type=5)** Deprecation Notification, SCAPI Features, SLAS Features - **[April 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_april_2024.htm&release=264.0.0&type=5)** SCAPI Features - **[March 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_march_2024.htm&release=264.0.0&type=5)** SCAPI Features - **[February 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_feb_2024.htm&release=264.0.0&type=5)** SCAPI Features - **[January 2024](https://help.salesforce.com/s/articleView?id=commerce.b2c_com_api_jan_2024.htm&release=264.0.0&type=5)** SLAS - **[B2C Commerce API Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.sf_commerce_api_release_notes_archive.htm&release=264.0.0&type=5)** Review the features and functionality from past B2C Commerce API releases. # B2C Commerce API Release Notes Archive Review the features and functionality from past B2C Commerce API releases. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The latest and most comprehensive release notes are published to Salesforce Developers. See [Salesforce Developers](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). - **[Salesforce Commerce API 1.0 Release](https://help.salesforce.com/s/articleView?id=commerce.sf_commerce_api_rn_1_0_release.htm&release=264.0.0&type=5)** The Salesforce Commerce API 1.0. release. - **[Initial 1.0 General Availability Release](https://help.salesforce.com/s/articleView?id=commerce.sf_com_api_w7858177_ga_release.htm&release=264.0.0&type=5)** The Salesforce Commerce API is generally available as of July 22, 2020. # B2C Commerce Business Manager Available in German The language pack for Business Manager is now localized into 8 languages including French, Italian, Portuguese, Spanish, Japanese, Simplified Chinese, Korean and for the first time German. In addition, the B2C Commerce release notes and the release highlights in the Message Center are also available in German. # B2C Commerce Connections When you use a Salesforce B2C Commerce storefront, you can provision or deactivate integrated features, such as Omnichannel Inventory, Order Self-Service, Order Integration, and Cart and Checkout Data. - **[Provision a B2C Commerce Connection](https://help.salesforce.com/s/articleView?id=commerce.om_provision_a_b2c_commerce_connection.htm&release=264.0.0&type=5)** Set up and activate the B2C Commerce storefront integration or related features. - **[Deactivate a B2C Commerce Connection](https://help.salesforce.com/s/articleView?id=commerce.om_deactivate_a_b2c_commerce_connection.htm&release=264.0.0&type=5)** Deactivate the B2C Commerce storefront integration or a related feature. Before refreshing or running DBInit on a B2C Commerce instance, deactivate all of its connections. - **[Order Self-Service](https://help.salesforce.com/s/articleView?id=commerce.om_order_self_service.htm&release=264.0.0&type=5)** Create a customer portal using the SFRA Order Management Self-Service plug-in to let customers manage their orders. Customers can track orders, view order history, and manage cancellations and returns. Order Self-Service supports the RMA return flow, which lets customers return products on their own, but requires that the store validates the return before issuing the refund. # B2C Commerce Global Release Overview Do you have questions about the B2C Commerce global release process? Look for answers in the [Commerce Cloud B2C Global Release Overview](https://help.salesforce.com/articleView?id=000352370&type=1&mode=1&language=en_US). # B2C Commerce Infocenter Retirement The Salesforce B2C Commerce Infocenter is being retired on July 15, 2023. Between June 15 and July 15, B2C Commerce documentation will be available in both the Infocenter and its new locations to help ensure a smooth transition for users. This change applies to all versions of Salesforce B2C Commerce. Where: Documentation originally hosted on the Infocenter is published in three new locations, as appropriate. - [Salesforce Help](https://help.salesforce.com/s/products/commerce?language=en_US) is the new home for administrator and merchandiser content. - [Commerce Cloud Developer Center](https://developer.salesforce.com/developer-centers/commerce-cloud) is the new home for most developer-focused content. - [Salesforce B2C Commerce Developer Documentation Resources](https://salesforcecommercecloud.github.io/b2c-dev-doc/) is the new home for the B2C Commerce API and other developer-focused content, including legacy developer documentation. | Links to documentation in Salesforce B2C Commerce Infocenter | Audience | Links to documentation in new location | | --- | --- | --- | | [B2C Commerce Release Notes](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/ReleaseNotes/b2c_rn_release_notes.html) | Administrator and Developer | [B2C Commerce Release Notes](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes.htm&type=5&language=en_US) in Salesforce Help | | [Get Started](https://help.salesforce.com/s/articleView?id=cc.b2c_getting_started.htm&language=en_US) | Administrator & Merchandiser | [Get Started](https://help.salesforce.com/s/articleView?id=cc.b2c_getting_started.htm&language=en_US) in Salesforce Help | | [B2C Commerce Videos](https://help.salesforce.com/s/articleView?id=cc.b2c_videos.htm&language=en_US) | Administrator & Merchandiser | [B2C Commerce Videos](https://help.salesforce.com/s/articleView?id=cc.b2c_videos.htm&language=en_US) in Salesforce Help | | [Data Protection and Privacy](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/DataProtectionAndPrivacy/DataProtectionAndPrivacy.html) | Administrator & Merchandiser | [Data Protection and Privacy](https://help.salesforce.com/s/articleView?id=cc.b2c_data_protection_and_privacy.htm&language=en_US) in Salesforce Help | | [Merchandising Your Site](https://help.salesforce.com/s/articleView?id=cc.b2c_merchandising_your_site.htm&type=5&language=en_US) | Administrator & Merchandiser | [Merchandising Your Site](https://help.salesforce.com/s/articleView?id=cc.b2c_merchandising_your_site.htm&type=5&language=en_US) in Salesforce Help | | [Administering Your Organization](https://help.salesforce.com/s/articleView?id=cc.b2c_administering_your_organization.htm&type=5&language=en_US) | Administrator & Merchandiser | [Administering Your Organization](https://help.salesforce.com/s/articleView?id=cc.b2c_administering_your_organization.htm&type=5&language=en_US) in Salesforce Help | | [Developing Your Site](https://help.salesforce.com/s/articleView?id=cc.b2c_getting_started.htm&type=5&language=en_US) | Developer | [Get Started](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/get-started.html) in Commerce Cloud Developer Center | | Developing Your Site > [Legacy Developer Documentation](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/LegacyDevDoc/LegacyDevDoc.html) | Developer | [Legacy Developer Documentation (PDF)](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/LegacyDeveloperDocumentation.pdf) in Salesforce B2C Developer Documentation Resources | | [B2C Commerce Security Guide](https://help.salesforce.com/s/articleView?id=cc.b2c_commerce_security_guide.htm&type=5&language=en_US) | Administrator & Developer | [B2C Commerce Security Guide](https://help.salesforce.com/s/articleView?id=cc.b2c_commerce_security_guide.htm&type=5&language=en_US) in Salesforce Help | | [Commerce Cloud Einstein](https://help.salesforce.com/s/articleView?id=cc.b2c_commerce_cloud_einstein.htm&type=5&language=en_US) | Administrator & Merchandiser | [Commerce Cloud Einstein](https://help.salesforce.com/s/articleView?id=cc.b2c_commerce_cloud_einstein.htm&type=5&language=en_US) in Salesforce Help | | [Commerce Cloud Endless Aisle 2.5.4](https://help.salesforce.com/s/articleView?id=cc.b2c_getting_started.htm&type=5&language=en_US) | Administrator & Developer | N/A. This documentation is being retired because the app is no longer supported. | | [Account Manager](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_overview.htm&type=5&language=en_US) | Administrator & Merchandiser | [Account Manager](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_overview.htm&type=5&language=en_US) in Salesforce Help | | [Log Center](https://help.salesforce.com/s/articleView?id=cc.b2c_log_center.htm&type=5&language=en_US) | Administrator & Merchandiser | [Log Center](https://help.salesforce.com/s/articleView?id=cc.b2c_log_center.htm&type=5&language=en_US) in Salesforce Help | | [Control Center](https://help.salesforce.com/s/articleView?id=cc.b2c_cc.htm&type=5&language=en_US) | Administrator & Merchandiser | [Control Center](https://help.salesforce.com/s/articleView?id=cc.b2c_cc.htm&type=5&language=en_US) in Salesforce Help | | [Customer Service Center](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-customer-service-center.html) | Developer | [Customer Service Center](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-customer-service-center.html) in Commerce Cloud Developer Center | | [Salesforce Payments](https://help.salesforce.com/s/articleView?id=cc.b2c_salesforce_payments.htm&type=5&language=en_US) | Administrator | [Salesforce Payments](https://help.salesforce.com/s/articleView?id=cc.b2c_salesforce_payments.htm&type=5&language=en_US) in Salesforce Help | | [Storefront Toolkit](https://help.salesforce.com/s/articleView?id=cc.b2c_sftk_container.htm&type=5&language=en_US) | Administrator | [Storefront Toolkit](https://help.salesforce.com/s/articleView?id=cc.b2c_sftk_container.htm&type=5&language=en_US) in Salesforce Help | | [Open Commerce API (OCAPI)](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/usage/OpenCommerceAPI.html) | Developer | [Get Started with OCAPI](https://developer.salesforce.com/docs/commerce/b2c-commerce/references/b2c-commerce-ocapi/get-started-with-ocapi.html) in Commerce Cloud Developer Center | | [Script Debugger API (SDAPI)](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/ScriptDebuggerAPI/latest/usage/ScriptDebuggerAPI.html) | Developer | [Script Debugger API (PDF)](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/sdapi_2_0.pdf) in Salesforce B2C Developer Documentation Resources | | [Glossary](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/Glossary/aGlossary.html) |   | N/A. This documentation has been retired. | | [B2C Commerce API](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/DWAPI/compareapi/html/whatsnew/overview.html) | Developer | [Salesforce B2C Developer Documentation Resources](https://salesforcecommercecloud.github.io/b2c-dev-doc) | | [Storefront Reference Architecture (SFRA) JavaScript](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/sfrajsdoc/index.html) | Developer | [Storefront Reference Architecture (SFRA) JavaScript](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/sfrajsdoc/index.html) in Salesforce B2C Developer Documentation Resources | | [SiteGenesis Server-side JavaScript](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/jsdoc/dist/js/server/index.html) | Developer | [SiteGenesis Server-Side JavaScript](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/jsdoc/dist/js/server/index.html) in Salesforce B2C Developer Documentation Resources | To find new and changed topics for features that are available in the Preview release in Salesforce Help, see [New and Changed in the Upcoming Release](https://help.salesforce.com/s/articleView?id=cc.b2c_new_and_changed_in_upcoming_release.htm&language=en_US). To find new and changed topics for features that are available in the Preview release in Commerce Cloud Developer Center, see [New and Changed in the Upcoming Release](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-new-and-changed-in-upcoming-release.html). # B2C Commerce Intelligence JDBC Driver Now Generally Available Access your B2C Commerce Intelligence data lakehouse directly through SQL queries with the new Commerce Intelligence JDBC Driver. This driver enables seamless connectivity to your B2C Commerce data for advanced analytics, reporting, and custom integrations to third-party Business Intelligence tools of your choice. **Where:** This change applies to B2C Commerce. #### See Also - [B2C Commerce Intelligence JDBC Driver](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/jdbc_intro.html) # B2C Commerce Inventory Modes B2C Commerce can be in one of three inventory modes: Commerce Platform Inventory, OCI Cache Enabled, Omnichannel Inventory. - **Commerce Platform Inventory**: B2C Commerce handles availability and reservations internally. The Omnichannel Inventory integration isn’t active. - **OCI Cache Enabled**: Omnichannel Inventory populates the availability data cache. However, B2C Commerce still handles availability and reservations internally. - **Omnichannel Inventory**: The integration is active and B2C Commerce exclusively uses availability data in the cache and sends reservation requests to Omnichannel Inventory. Initially, B2C Commerce is in Commerce Platform Inventory mode. When you first activate the integration with Omnichannel Inventory, B2C Commerce changes to OCI Cache Enabled mode. When the cache is ready, it can change to Omnichannel Inventory mode. The current mode is shown on the Omnichannel Inventory Integration page in Business Manager. # B2C Commerce On-Demand Sandboxes 1.0 The B2C Commerce On-Demand Sandboxes 1.0 release. ## Release Highlights - **[Use Flexible On-Demand Sandboxes](https://help.salesforce.com/s/articleView?id=commerce.b2c_commerce_19_9_sandboxes_ga_la.htm&release=264.0.0&type=5)** B2C Commerce on-demand sandboxes, an alternative to traditional POD-based sandboxes, are generally available as of August 21, 2019. On-demand sandboxes can be acquired quickly, have improved performance, and can be used as part of a CI/CD process. You control how many sandboxes you use and when you use them. A usage-based pricing model allows you the flexibility to keep just a few sandboxes running for an extended period or create many short-term sandboxes. # B2C Commerce On-Demand Sandboxes 1.1 The B2C Commerce On-Demand Sandboxes 1.1 release. ## Release Highlights - **[Increased Storage Available for On-Demand Sandboxes](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_w6850359_storage_la.htm&release=264.0.0&type=5)** On-demand sandboxes now have access to 10 GB of shared realm data. All on-demand sandboxes in a realm can access data uploaded to the shared volume. You can use the shared space for import and export processes initiated through Business Manager or WebDAV uploads. In addition, storage space for each individual on-demand sandbox has increased from 5 GB to 10 GB. - **[Support for DNS CNAMEs Now Available](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_1_1_w6874320_cnames_la.htm&release=264.0.0&type=5)** You can use a Domain Name Server (DNS) Canonical Name (CNAME) to map an alias to an on-demand sandbox URL. The DNS CNAME allows you to do SEO, site path, and locale setting testing. # B2C Commerce On-Demand Sandboxes 1.1.1 The B2C Commerce On-Demand Sandboxes 1.1.1 release. - **[Find New Static IP Addresses](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandbox_w8193648_ods_static_ips_mjb.htm&release=264.0.0&type=5)** The On-Demand Sandboxes platform now has three new static IP addresses. # B2C Commerce On-Demand Sandboxes 1.1.2 The B2C Commerce On-Demand Sandboxes 1.1.2 release. - **[Use New Access Token Format for API Clients](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_sandbox_w8442373_ods_access_token_mjb.htm&release=264.0.0&type=5)** API Client ID configuration for On-Demand Sandbox clients now uses JSON Web Token (JWT) as the Access Token Format. # B2C Commerce On-Demand Sandboxes 1.1.3 The B2C Commerce On-Demand Sandboxes 1.1.3 release. - **[Create an Operation Scheduler for On-Demand Sandboxes](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_sandbox_w8977816_ods_op_schlr_mjb.htm&release=264.0.0&type=5)** Administrators can now use the Operation Scheduler to start and stop sandboxes in realms that have their `autoScheduled` parameter set to true. Previously, they stopped each sandbox manually. Sandboxes that are running consume more uptime credits than when they’re stopped. - **[Assign Resource Profiles to On-Demand Sandboxes](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_sandbox_w8978426_ods_resource_prof_mjb.htm&release=264.0.0&type=5)** When your create a new On-Demand Sandboxes, you can assign one of three discrete resource profiles to define sandbox disk, CPU, and memory allocation. Sandbox resources are expensive, so it's important to use them wisely. Resources profiles enable customers to create the right size sandbox for their specific needs. In addition, resource profiles enable developers to more easily maintain sandbox content, ensuring configuration is aligned with the production environment. # B2C Commerce On-Demand Sandboxes 1.1.4 The B2C Commerce On-Demand Sandboxes 1.1.4 release. - **[Create a Unique Host Name Alias for On-Demand Sandbox SEO Testing](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_sandbox_w10128719_ods_unique_alias_mjb.htm&release=264.0.0&type=5)** You can now use the On-Demand Sandbox aliases API to create a unique, global host name alias. Previously, to access a sandbox globally, you had to use an already existing DNS CNAME record that points to the sandbox origin. To access a sandbox locally, you can still create a reusable host name using a non-unique alias and generate a registration link to access the sandbox. # B2C Commerce On-Demand Sandboxes 1.1.5 The B2C Commerce On-Demand Sandboxes 1.1.5 release. - **[Scale Development and Testing with XXL On-Demand Sandboxes](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_xxl_on_demand_sandboxes.htm&release=264.0.0&type=5)** On-demand sandboxes for B2C Commerce stores now support Extra Extra Large (XXL) instances, designed for the most demanding commerce development and testing needs. # B2C Commerce On-Demand Sandboxes Release Notes Release Notes for the Salesforce B2C Commerce On-Demand Sandboxes releases. Check out the latest features and updates from B2C Commerce On-Demand Sandboxes. - **[B2C Commerce On-Demand Sandboxes 1.1.5](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_rn_1_1_5_release.htm&release=264.0.0&type=5)** The B2C Commerce On-Demand Sandboxes 1.1.5 release. - **[B2C Commerce On-Demand Sandboxes 1.1.4](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_rn_1_1_4_release.htm&release=264.0.0&type=5)** The B2C Commerce On-Demand Sandboxes 1.1.4 release. - **[B2C Commerce On-Demand Sandboxes 1.1.3](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_rn_1_1_3_release.htm&release=264.0.0&type=5)** The B2C Commerce On-Demand Sandboxes 1.1.3 release. - **[B2C Commerce On-Demand Sandboxes 1.1.2](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_rn_1_1_2_release.htm&release=264.0.0&type=5)** The B2C Commerce On-Demand Sandboxes 1.1.2 release. - **[B2C Commerce On-Demand Sandboxes Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_release_notes_archive.htm&release=264.0.0&type=5)** Release Notes for past Salesforce B2C Commerce On-Demand Sandboxes releases. # B2C Commerce On-Demand Sandboxes Release Notes Archive Release Notes for past Salesforce B2C Commerce On-Demand Sandboxes releases. Review the features and updates from past B2C Commerce On-Demand Sandboxes releases. - **[B2C Commerce On-Demand Sandboxes 1.1.1](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_rn_1_1_1_release.htm&release=264.0.0&type=5)** The B2C Commerce On-Demand Sandboxes 1.1.1 release. - **[B2C Commerce On-Demand Sandboxes 1.1](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_rn_1_1_release.htm&release=264.0.0&type=5)** The B2C Commerce On-Demand Sandboxes 1.1 release. - **[B2C Commerce On-Demand Sandboxes 1.0](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_rn_1_0_release.htm&release=264.0.0&type=5)** The B2C Commerce On-Demand Sandboxes 1.0 release. # B2C Commerce Release Notes Review B2C Commerce release notes for the 26.2 release and earlier. To access B2C Commerce release notes for the 26.3 release and later, visit the B2C Commerce section of the [Salesforce Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_commerce.htm&language=en_US&type=5). - **[B2C Commerce 2026 Deployment Schedule](https://help.salesforce.com/s/articleView?id=commerce.b2c_deploy_schedule_26.htm&release=264.0.0&type=5)** To uphold our commitment to customer trust and to make sure that our B2C Commerce releases meet our rigorous standards, we deploy the B2C Commerce major releases to customers in four phases. See the Deployment table for information about which instances are included in each major release phase. - **[B2C Commerce Global Release Overview](https://help.salesforce.com/s/articleView?id=commerce.b2c_global_release_overview.htm&release=264.0.0&type=5)** Do you have questions about the B2C Commerce global release process? - **[B2C Commerce Release Notes](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes.htm&release=264.0.0&type=5)** Check out the latest features and updates from B2C Commerce. - **[Account Manager Release Notes](https://help.salesforce.com/s/articleView?id=commerce.b2c_account_manager_release_notes.htm&release=264.0.0&type=5)** Check out the latest features and updates from B2C Commerce Account Manager. - **[B2C Commerce API Release Notes](https://help.salesforce.com/s/articleView?id=commerce.sf_commerce_api_release_notes.htm&release=264.0.0&type=5)** Keep track of the new features and functionality that the B2C Commerce APIs offer. The following summarizes new features and updates by month. - **[Composable Storefront Release Notes](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_release_notes.htm&release=264.0.0&type=5)** Keep track of new features and updates for the Progressive Web App (PWA) Kit and Managed Runtime. - **[B2C Commerce On-Demand Sandboxes Release Notes](https://help.salesforce.com/s/articleView?id=commerce.b2c_sandboxes_release_notes.htm&release=264.0.0&type=5)** Release Notes for the Salesforce B2C Commerce On-Demand Sandboxes releases. - **[SFRA Release Notes](https://help.salesforce.com/s/articleView?id=commerce.b2c_sfra_release_notes.htm&release=264.0.0&type=5)** Release Notes for Salesforce B2C Commerce Storefront Reference Architecture (SFRA) releases. - **[Endless Aisle Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.ea__release_notes.htm&release=264.0.0&type=5)** Release Notes for Salesforce B2C Commerce Endless Aisle releases. - **[B2C Commerce UX Studio Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_ux_studio_release_notes.htm&release=264.0.0&type=5)** Release Notes for the Salesforce B2C Commerce UX Studio releases. # B2C Commerce Release Notes Check out the latest features and updates from B2C Commerce. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Starting with release 26.3, find B2C Commerce release notes in the [Salesforce Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_b2c.htm&language=en_US). - **[Use SCAPI, the New Standard for API Integration](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_use_scapi.htm&release=264.0.0&type=5)** Salesforce suggests using the B2C Commerce API (SCAPI) instead of the Open Commerce API (OCAPI) for all new projects or any major refactoring work. For details, refer to Why Use SCAPI Instead of OCAPI. - **[26.3 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_3_release.htm&release=264.0.0&type=5)** The B2C Commerce 26.3 release occurs between February 24 and March 26, 2026. - **[26.2 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_2_release.htm&release=264.0.0&type=5)** The B2C Commerce 26.2 release occurs between January 27 and February 26, 2026. - **[26.1 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_26_1_release.htm&release=264.0.0&type=5)** The B2C Commerce 26.1 release occurs between December 4, 2025 and January 29, 2026. - **[25.10 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_10_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.10 release occurs between September 23 and November 04, 2025. - **[25.9 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_9_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.9 release occurs between August 19, 2025 and September 25, 2025. - **[25.8 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_8_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.8 release occurs from July 22, 2025 through August 21, 2025. - **[25.7 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_7_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.7 release occurs June 24, 2025 through Jul 24, 2025. - **[25.6 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_6_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.6 release occurs May 15, 2025 through Jun 28, 2025. - **[25.5 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_5_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.5 release occurs April 22, 2025 through May 22, 2025. - **[25.4 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_4_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.4 release occurs March 25, 2025 through April 24, 2025. - **[25.3 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_3_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.3 release occurs February 25, 2025 through March 20, 2025. - **[25.2 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_2_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.2 release occurs January 23, 2025 through February 27, 2025. - **[25.1 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_25_1_release.htm&release=264.0.0&type=5)** The B2C Commerce 25.1 release occurs December 05, 2024 through January 28, 2025. - **[B2C Commerce Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_archive.htm&release=264.0.0&type=5)** Review the features and updates from past B2C Commerce releases. # B2C Commerce Release Notes Archive Review the features and updates from past B2C Commerce releases. - **[B2C Commerce Announcements Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_release_notes_general_announcements.htm&release=264.0.0&type=5)** Review past B2C Commerce announcements. - **[24.10 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_24_10_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.10 release occurs October 01, 2024 through October 31, 2024. - **[24.9 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_24_9_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.9 release occurs August 20, 2024 through October 03, 2024. - **[24.8 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_24_8_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.8 release occurs July 23 , 2024 through Aug 22, 2024. - **[24.7 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_24_7_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.7 release occurs June 25 , 2024 through July 25, 2024. - **[24.6 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_24_6_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.6 release occurs May 21 , 2024 through June 27, 2024. - **[24.5 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_24_5_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.5 release occurs April 23 , 2024 through May 30, 2024. - **[24.4 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_24_4_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.4 release occurs March 26 , 2024 through April 25, 2024. - **[24.3 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_24_3_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.3 release occurs February 27 , 2024 through March 28, 2024. - **[24.2 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_24_2_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.2 release occurs January 30 , 2023 through February 29, 2024. - **[24.1 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_24_1_release.htm&release=264.0.0&type=5)** The B2C Commerce 24.1 release occurs December 05, 2023 through February 01, 2024. - **[23.10 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_10_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.10 release occurs September 28, 2023 through Oct 31, 2023. - **[23.9 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_9_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.9 release occurs Aug 17, 2023 through Oct 03, 2023. - **[23.8 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_8_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.8 release occurs July 20, 2023 through August 22, 2023. - **[23.7 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_7_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.7 release occurs June 15, 2023 through July 25, 2023. - **[23.6 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_6_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.6 release occurs May 11, 2023 through June 20, 2023. - **[23.5 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_5_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.5 release occurs April 7, 2023 through May 16, 2023. - **[23.4 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_4_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.4 release occurs March 9, 2023 through April 4, 2023. - **[23.3 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_3_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.3 release occurs Feb 9, 2023 through March 7, 2023. - **[23.2 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_2_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.2 release occurs Jan. 17, 2023 through Feb. 21, 2023. - **[23.1 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_23_1_release.htm&release=264.0.0&type=5)** The B2C Commerce 23.1 release occurs Nov. 29, 2022 through Jan. 26, 2023. - **[22.10 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_10_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.10 release occurs Sept. 29, 2022 through Oct. 27, 2022. - **[22.9 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_9_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.9 release occurs August 18, 2022 through October 4, 2022. - **[22.8 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_8_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.8 release occurs July 21, 2022 through August 23, 2022. - **[22.7 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_7_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.7 release occurs June 16, 2022 through July 26, 2022. - **[22.6 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_6_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.6 release occurs May 12, 2022 through June 21, 2022. - **[22.5 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_5_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.5 release occurs April 7, 2022 through May 17, 2022. - **[22.4 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_4_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.4 release occurs March 17, 2022 through March 29, 2022. - **[22.3 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_3_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.3 release occurs February 17, 2022 through March 22, 2022. - **[22.2 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_2_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.2 release occurs January 25, 2022 through February 22, 2022. - **[22.1 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_22_1_release.htm&release=264.0.0&type=5)** The B2C Commerce 22.1 release occurs December 2, 2021 through January 25, 2022. - **[21.10 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_10_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.10 release occurs September 30 through October 28, 2021. - **[21.9 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_9_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.9 release occurs August 19 through September 28, 2021. - **[21.8 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_8_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.8 release occurs July 22 through August 24, 2021. - **[21.7 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_7_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.7 release occurs June 17 through July 27, 2021. - **[21.6 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_6_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.6 release occurs May 13 through June 22, 2021. - **[21.5 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_5_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.5 release occurs April 15 through May 18, 2021. - **[21.4 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_4_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.4 release occurs March 18 through April 20, 2021. - **[21.3 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_3_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.3 release occurs February 18, 2021 through March 23, 2021. - **[21.2 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_2_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.2 release occurs January 21, 2021 through February 23, 2021. - **[21.1 Release](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_1_release.htm&release=264.0.0&type=5)** The B2C Commerce 21.1 release occurs December 8, 2020 through January 21, 2021. - **[20.10 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_10_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.10 release occurs September 22, 2020 through October 20, 2020. - **[20.9 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_9_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.9 release occurs August 18, 2020 through September 24, 2020. - **[20.8 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_8_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.8 release occurs July 21, 2020 through August 20, 2020. - **[20.7 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_7_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.7 release occurs June 23, 2020 through July 23, 2020. - **[20.6 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_6_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.6 release occurs May 18, 2020 through June 25, 2020. - **[20.5 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_5_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.5 release occurs April 16, 2020 through May 28, 2020. - **[20.4 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_4_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.4 release occurs March 19, 2020 through April 21, 2020. - **[20.3 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_3_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.3 release occurs February 25, 2020 through March 24, 2020. - **[20.2 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_2_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.2 release occurs January 21, 2020 through February 20, 2020 - **[20.1 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_20_1_release.htm&release=264.0.0&type=5)** The B2C Commerce 20.1 release occurs December 5, 2019 through January 20, 2020. # B2C Commerce Release Notes Are Now Included with Salesforce Release Notes The B2C Commerce Release Notes are now published as part of the standard Salesforce Release Notes for a unified experience. **How:** To access the release notes for the B2C Commerce 26.3 release and later, visit the B2C Commerce section of the [Salesforce Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_commerce.htm&language=en_US). To access B2C Commerce release notes for previous releases, go to [B2C Commerce Release Notes](https://help.salesforce.com/s/articleView?id=commerce.b2c_parent.htm&language=en_US&type=5). # B2C Commerce Reports and Dashboards Technical Report Enhancements Identify performance and scalability issues with metrics added to the Reports and Dashboards Technical reports tab. Why: The additional metrics help customers to identify any problem areas. These new metrics include: - Total processing time per controller - Total processing percent per controller - Main Controller Requests view: number of average includes per individual main pipeline - Total own time and average own time - Usage for remote includes - Total processing time and percent for includes - Remote-include only view - Uncached pipeline view # B2C Commerce UX Studio 20.10 The B2C Commerce UX Studio 20.10 release. ## Release Highlights - **[UX Studio 20.10 Release](https://help.salesforce.com/s/articleView?id=commerce.b2c_w8125298_ux_studio_20_10_release_je.htm&release=264.0.0&type=5)** UX Studio release 20.10.0 is now available for download. This version of UX Studio contains a fix to allows UX Studio to work with OpendJDK8 and a Security enhancement to guard against Man in the Middle exploits. # B2C Commerce UX Studio Release Notes Archive Release Notes for the Salesforce B2C Commerce UX Studio releases. Check out the latest features and updates from B2C Commerce UX Studio. - **[B2C Commerce UX Studio 20.10](https://help.salesforce.com/s/articleView?id=commerce.b2c_ux_studio_20_10_release.htm&release=264.0.0&type=5)** The B2C Commerce UX Studio 20.10 release. # Barcode Recognition in the POS app Scan barcodes quickly and efficiently with POS. By default, the POS application uses Apple's built-in tools. If you want to scan a barcode, you'll see a screen that shows you where the bar code needs to be to be recognized. By default, the area of focus is centered on the screen. For the fastest experience, place the bar code as close to the _center of the red line_ as possible. Without any configuration, the POS application will use built-in tools provided by Apple to facilitate barcode scanning. ![The barcode scanner on the iOS device screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_red_line_barcode.png) ## Scandit Integration _Version 7.8.5 and later_ If the time to recognize a barcode with the built-in barcode scanning tool isn't meeting your expectations, you have the option to leverage [Scandit](https://www.scandit.com/). Scandit provides improved performance for all your scanning requirements. The scannable area is larger and scanning recognition will be faster. For more information, see [Barcode Scanning.](https://www.scandit.com/products/barcode-scanning/) To configure, obtain a license from Scandit and add it to the CMS by going to **Modules > Barcode > Scandit License Key**. Scandit will automatically be enabled for barcode scanning. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Scandit is a commercial license and has to be paid for by the merchant. ## EPC Scanning To turn on EPC scanning: 1. In CMS, go to **Store Management > Stores**. 2. Create or edit an existing store. 3. Under **Location Settings**, select if the app will allow GTIN, EPC scanning, or both. 4. Go to your **{app configs} > Modules > Barcode**. 5. Turn on **Enable EPC Scanning** to be on. 6. Go to **Store Management > Store Settings > OMS > Advanced (select to expand)**. 7. Under **Regex for Electronic Product Code**, add a value. For more information, refer to . 8. Turn on **Treat Each Item As Separate Line Item**. 9. Save your changes. _What does the system know about EPC-to GTIN mapping?_ Depending on your merchant's system, the associate can scan the EPC and this looks up the GTIN. Then it'll add the item to the cart or shows an interstitial to add the item to the cart. An error will be shown if the same EPC is scanned multiple times as only a single EPC exists for each item in the sale. _Is there any mandatory information needed in the product feed for enabling EPC?_ We aren't taking in any data at the product level for EPC. The data is captured at the time of sale and added to the product line item. _How does EPC get managed for returns—In Store and BORIS?_ Currently, this is a gap as for serial number returns, so scan the serial number to make sure of a match. For EPC, logic was added to search the EPC in the sale to find the particular item to mark to return. ## EPC Code Filtering _Version 7.10.5 and later_ EPC codes can be filtered out for unwanted characters if scanning. This can be configured in the CMS: 1. Go to **Store Config > Modules > OMS**. 2. Look for the setting **Regex for Electronic Product Code (epcRegex)**. 3. Type a regex expression of the allowed characters. ![A regex of the allowed characters for EPC code filtering](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_epc_code_filtering.png) After an EPC code is scanned, any character that doesn't match the epcRegex will be removed from what is scanned. This will prevent issues if importing and exporting orders. Any nonASCII characters will be removed automatically from the app. # Barcode Scanning Known Issues and Troubleshooting Troubleshoot common issues with barcode scanning, such as camera permissions and license errors. ## Device Camera Permissions in Web View On devices with iOS/iPadOS < 15 using the barcode scanner within a web view, the user will be requested camera permission access every time they attempt to scan. ## Troubleshooting - License Errors Error 13: Barcode SDK license validation failed. Your license key has expired. 1. Log into the barcode scanning provider dashboard. 2. Navigate to **Dashboard > License Keys**. 3. Make sure your license keys and expiry date are valid. If not, request a new key. 4. With your new license key, go to **CMS > Apps > All > App Config > MODULES > Barcode > License Key**. # Barcode Scanning with Device Camera in the POS app Use barcode scanning in the Point of Sale (POS) app to quickly process sales and create a smooth, contactless experience. ## Prerequisites - Modern POS App build: 6.4.2 and later - Platform Support: iPad, iPhone - Offline Support: N/A ## Scanning Functionality and Supported Code Types Special uses like pairing Adyen Terminal IDs, setting up Merchants, and others are set up only for QR codes because this is the only accepted symbology. We will update the list in the future if there are changes. Other use cases like product scans, gift cards, and so on can be configured via Point of Sale CMS. | Functionality | Barcode Types | | --- | --- | | Product Scan | CMS Configured List | | Order Receipt Scan | All Supported Barcode Types | | Coupon Codes | CMS Configured List | | Gift Card Codes | CMS Configured List | | Adyen Terminal ID Pairing Scan | QR | | Merchant Setup Scan | QR | | Cash Drawer URL Scan to Pop Open | QR | | Cash Drawer IP Pairing Scan | All Supported Barcode Types | ## CMS - Configuration & Setup You can find Supported Barcode Types by navigating to **App Config > Modules > Barcode > Supported Barcode Types**. You can set up a group of all the barcode types needed by the functions listed in the table. The Barcode Types will be CMS Configured List. We auto-select UPC-E, UPC-A, and EAN-13 as they're common product codes used by our merchants. If none are configured, we will fall back to the full list of barcode types supported. See below for the full list. ![A complete list of supported barcode types, with four selected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_supported_barcode_types.png) ## Barcode Duplicate Filter Delay Version 7.8.5 and later. Scandit Only. This field allows the configuration of a delay if a duplicate bar code is captured. The duplicate barcode filtering time window resets at the end of a barcode detection. That is to say, after a barcode is detected, the same barcode won't be detected again until the time delay expires. If you manually turn on detection, like for inventory management, the time interval is reset right away if you release the button. You can find this setting by navigating to **App Config > Modules > Barcode > Barcode Duplicate Filter Delay**. The default is 1 second. ## Scandit License Key Version 7.8.5 and later If you use Scandit as your recognition solution, enter your license key by navigating to **App Config > Modules > Barcode > Scandit License Key**. ## Barcode Scan Replacement JSON If scanning a UPC-A barcode offline, you can encounter an error indicating the product wasn't found, often because the barcode number begins with "0". To resolve this issue, you can add the regex below. This regex will also be used to format scans for both product IDs and case pack IDs in various inventory processes, including ASN case pack receivings, store-to-store receivings, inventory adjustments, cycle counts, and blind receivings. In CMS, go to **Store Management > Store Settings > Feed > Product**. Under Barcode Scan Replacement JSON, add the regex: ``` "regex":"^0+(?!$)","replace":"" ``` ## Full List of Supported Barcode Types - Aztec - Code 128 - Code 39 - Code 39 Mod 43 - Code 93 - Data Matrix - EAN 13 - EAN 8 - Interleaved 2 of 5 - ITF14 - PDF 417 - QR - UPC E - **[Barcode Recognition in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_barcode_recognition.htm&release=264.0.0&type=5)** Scan barcodes quickly and efficiently with POS. By default, the POS application uses Apple's built-in tools. - **[Barcode Scanning Known Issues and Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_barcode_scanning_issues.htm&release=264.0.0&type=5)** Troubleshoot common issues with barcode scanning, such as camera permissions and license errors. # Basket Review the new B2C Commerce Basket feature in the 20.8 release. - **[Basket Product Duplication Considers Product Lists](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_w7741897_basket_duplicate_products_as.htm&release=264.0.0&type=5)** When basket settings are configured to disallow or merge duplicate product line items, the system now considers product lists, such as wishlists, in addition to SKUs and inventory lists. When a shopper adds a product from a list to a basket, the system can only duplicate an existing product line item that was added from the same list. # Basket Product Duplication Considers Product Lists When basket settings are configured to disallow or merge duplicate product line items, the system now considers product lists, such as wishlists, in addition to SKUs and inventory lists. When a shopper adds a product from a list to a basket, the system can only duplicate an existing product line item that was added from the same list. #### See Also - [Basket Preferences](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/ordering/b2c_configure_basket_preferences.html) # Before You Begin Other features in your B2B Commerce store and in your Salesforce org can affect whether a product is discoverable. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) As part of the import process, or after the import is complete, make sure these conditions are met. - All products in your store are associated with a category. - All categories are associated with the store catalog. - The catalog is associated with the store. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important If a shopper searches for a product that isn’t in the store’s catalog, the search returns an empty page. Also review the requirements in this table. | Requirement | More Information | | --- | --- | | Confirm that your products are marked searchable and active. | [Mark Products as Searchable](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_products.htm&release=264.0.0&type=5 "After you create your initial search index, all products in the catalog are searchable by default. If you want to make a product not searchable, you can exclude it from search. You can change whether a product is searchable at any time.") | | To match search terms with searchable fields, mark product fields as searchable. | [Mark Product Fields as Searchable](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_fields.htm&release=264.0.0&type=5 "Marking fields as searchable helps the search engine index more content, improving search accuracy and relevance in you B2B Commerce store. Avoid marking fields as searchable if the fields contain sensitive information or provide generic data.") | | Ensure that shoppers have CRUD read access to products and to the catalog. | [Create Permission Sets for Shoppers](https://help.salesforce.com/s/articleView?id=commerce.comm_personas.htm&release=264.0.0&type=5 "A typical B2B implementation involves several task-based personas, such as commerce administrator, merchandiser, developer, and shopper.") | | Check Field-Level Security (FLS) restrictions on searchable or filterable product fields to ensure no shopper limitations. | [Field-Level Security](https://help.salesforce.com/articleView?id=platform.users_profiles_field_perms.htm&type=5&language=en_US) | | Update your search index to include the latest catalog updates. | [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") | #### See Also - [Commerce Administrator Considerations for Product Searchability](https://help.salesforce.com/s/articleView?id=commerce.comm_search_comm_admin_cons.htm&release=264.0.0&type=5 "Commerce administrators must ensure that certain conditions are met to search for products in storefronts.") # beforePOST\_v2 replaces the dw.ocapi.shop.basket.beforePOST Hook With the OCAPI 22.10 release, `dw.ocapi.shop.basket.beforePOST_v2` replaces the nonfunctional `dw.ocapi.shop.basket.beforePOST` hook. Why: The original hook had these issues: - Using an incorrect input type (created basket, which isn’t available before the basket creation instead of the basket request document). - Using an incorrect execution order (hook was executed after the creation of the basket, which is too late for a before hook to function). Use the new beforePOST customization hook, as using the original hook is highly discouraged. # Benchmarks and Best Practices for Orders and Transaction Export Exporting orders and transactions from POS to an external system can be done in multiple ways. Learn about the various export options available, and understand the specific artifacts that can be exported. You can integrate POS data with other systems. Having the flexibility to export orders and transactions ensures comprehensive data management. ## Orders and Transactions 1. Orders - Any Sale, Return, Refund, or Exchange is an Order in POS. 2. Transactions - All events on POS Login, Logout, Void, Till Open, etc are referred as Transactions and logged in Electronic Journal. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Export files can be XML files in NRF POSLog 6.0 or JSON ## Export Options **Orders** 1. **API** with JSON payload - As Orders are placed on POS, an API is call out is made with the JSON payload of the current order. Point of Sale API spec can be found [here](https://app.swaggerhub.com/apis/PredictSpring1/POSAPI_SPEC/1.3.0)**.** This would require a web server on the customer side that would accept incoming orders and provide an SLA of 99.99% uptime. Replay options are available on CMS. Out of the box, Point of Sale supports real-time order export into Salesforce Commerce, Salesforce OMS, and NetSuite. 2. **Real-time Exports flat files**\- As orders as placed on POS, a TLog file in POSLog 6.0 format is created and published to an SFTP site. 3. **Scheduled Batch Jobs with Compressed** files - Scheduled jobs set to run at a set frequency, pick up the orders that were placed since the last export run, create individual TLog files for each order, and then create a compressed bundle to be exported to SFTP site. 4. **Scheduled Batch Jobs with individual files** - Scheduled jobs set to run at a set frequency picks up the orders that were placed since the last export run, create individual TLog files for each order, and send them to the SFTP site. Recommended frequency is hourly. Anything more aggressive than this can cause delays in publishing orders. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If API export is enabled Real Time export will only export orders via API. Flat files will not be transmitted in real-time. If flat files are needed then it needs to be as a scheduled Job. As of July 2022, only one mode of order export is supported with API being the recommended and preferred option. **Transactions** 1. **Scheduled Batch Job** with 1 file in CSV / TSV format on selected fields ## Export Throughput numbers **Orders** 1. **API** with JSON payload - **60,000** orders an hour on steady state. This is a horizontally scalable model and can scale up to **85,000** orders an hour 2. **Real-time Exports with XML files** in NRF POSLog 6.0 format - **8,000** orders an hour on steady state with Point of Sale SFTP provider Exavault. The bottleneck here is the number of connections Exavault can handle. Customers can use another FTP provider of their choice. 3. **Scheduled Batch Jobs with Compressed XML** files in NRF POSLog 6.0 format - **40,000** orders an hour on steady state. As the number of FTP connections are now reduced the throughput goes up. 4. **Scheduled Batch Jobs with individual XML** files in NRF POSLog 6.0 format - **3000** orders an hour as each file has to be generated and exported out. **Known Limitation** of this approach is with every run at max 1000 orders can be exported. So if a customer expects 20,000 orders in a day, then the job needs to be set to run at least every 20 minutes to be able to export all orders out. **Transactions** 1. **Scheduled Batch Job** with 1 file in CSV / TSV format on selected fields ## Recommended Setup 1 **Orders** **API** with JSON payload - **60,000** orders an hour on steady state. This is a horizontally scalable model and can scale up to **85,000** orders an hour. ## Recommended Setup 2 **Orders** 1. **Real-time Exports with files** - As orders are placed and files are shipped out in real-time 2. **Scheduled Batch Jobs with Compressed** files - This is a fallback that ships out the remaining orders that were not exported in real-time. # Best Practices for Wi-Fi and 3G/LTE Setup on the POS App Confirm compatibility with Store LAN peripherals so your Cellular iPad connects, regardless of the network. Select LTE as the backup network mode to provide a failover mechanism for continuous connectivity if Wi-Fi fails. ## Maintain Compatibility with Store LAN Peripherals Users employing both Wi-Fi and cellular connections, particularly with cellular iPads, confirm integration with Store LAN peripherals. It's crucial to verify that the Cellular iPad can still establish connections with these peripherals, regardless of the network mode in use. ## Choosing Between LTE Backup and 3G As the backup network mode, we suggest LTE because it can help if Wi-Fi fails. It maintains your connection even if the Wi-Fi network fails. To facilitate this, users can set up a Cellular hotspot with an LAN cable connection to the Wi-Fi router. However, this process can cause a temporary glitch in the POS app during the switch-over period. ## Optimizing LAN Component Usage Consider the necessity of using all physically connected or Bluetooth devices for dual connectivity. Bluetooth connections are still working even if the network is down. However, be aware of possible interference problems, especially if many devices use Bluetooth connections. Depending solely on Bluetooth connectivity can also restrict mobility, especially in scenarios involving no fixed registers. # Billing Objects Learn about the Billing objects and fields available for reporting in Order Management. - **[Credit Memo Fields](https://help.salesforce.com/s/articleView?id=commerce.om_credit_memo_fields.htm&release=264.0.0&type=5)** The Credit Memo object represents an amount to be refunded after an invoice has been generated. This object can be associated with one or more change orders. - **[Credit Memo Line Fields](https://help.salesforce.com/s/articleView?id=commerce.om_credit_memo_line_fields.htm&release=264.0.0&type=5)** The Credit Memo Line object represents a portion of the amount of a credit memo. One credit memo line can represent the full amount of a credit memo. - **[Invoice Fields](https://help.salesforce.com/s/articleView?id=commerce.om_invoice_fields.htm&release=264.0.0&type=5)** The Invoice object represents an amount to be paid. This object is associated with one fulfillment order. - **[Invoice Line Fields](https://help.salesforce.com/s/articleView?id=commerce.om_invoice_line_fields.htm&release=264.0.0&type=5)** The Invoice Line object represents a portion of the amount of an invoice. One invoice line can represent the full amount of an invoice. # Block Unauthorized Access to Orders The Order Preferences Storefront Order Access Allowlist, released in 24.5 in test mode, is fully functional and available to your storefront in Production. When enabled, storefront access to orders without a matching customer ID is now blocked unless the accessing controller is included on the Allowlist. If you aren’t yet limiting Storefront Order Access at all, enable the Allowlist feature on the Limit Storefront Order Access setting. **When:** Starting with B2C Commerce 24.8 release. **Why:** This feature enhances security, ensuring that the customer ID of the current session is identical with the customer ID used for the creation of the order being accessed. **How:** In **Business Manager** | **Orders** | **Order Preferences**. Set the Limit Storefront Order Access dropdown to Allowlist. Enter the allowed storefront controllers as a comma-separated list. Attempts to fetch order information by controllers or hooks that aren’t on the Allowlist are blocked from storefront access, if the customer ID of the current session isn’t identical to the customer ID used for the creation of the order. Controllers and hooks not listed on the Allowlist are blocked from storefront order access. If you don’t change the Limit Storefront Order Access setting to Allowlist, you won’t experience any change from this feature. #### See Also - [Limit Storefront Order Access](https://help.salesforce.com/s/articleView?id=cc.b2c_limit_storefront_order_access_settings.htm&language=en_US) # Boost Security with Content Security Policy Reporting To improve monitoring capabilities, we’re adding the capability to monitor JavaScript dependencies on ecommerce websites. When: Rollout across the security grid begins March 1, 2022 and is expected to be completed March 14, 2022. How: Salesforce Commerce Cloud uses the Content Security Policy (CSP) report data for internal visibility and enhancements. Monitoring uses CSP reporting that is native to browser API technology. Commerce Cloud adds a Content-Security-Policy-Report-Only header to web pages as they pass through our edge. When JavaScript files attempt to execute on a webpage, browsers send a report to our reporting endpoint–the report doesn’t contain customer data. The report is sent to a non-customer domain and doesn’t impact customer traffic. No customer action is required for the additional CSP report header. # Boost Web Store Speed with Argo Smart Routing Salesforce now makes your web store even faster with Argo Smart Routing. Argo uses real-time global network data to route traffic around issues like brownouts, cable cuts, and packet loss, and move traffic along faster routes. This reduces HTTP time to first byte (TTFB) by an average of 30%, making your web store faster and more reliable for users. Argo is implemented for you. No action is required from you. #### See Also - [Configure a Zone for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_configuring_a_zone.htm&type=5&language=en_US) - [Enhance Site Speed](https://help.salesforce.com/s/articleView?id=cc.b2c_enhance_site_speedxml.htm&type=5&language=en_US) # BOPIS/Store Fulfillment Deep Links Explore a detailed list of Point of Sale BOPIS/store fulfillment deep links, each with a clear description and supported context. Links include features for order status, fulfillment, history, packing, and pickup. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.
Deep LinkDescriptionSupported Context
Canceled / Damaged Store OrdersDisplays canceled and damaged BOPIS store orders"Hamburger Menu, Layouts"
Store Fulfill Orders Ready to ShipDisplays the BOPIS store fulfill orders ready to ship screen"Hamburger Menu, Layouts"
Store Fulfill Orders to PackDisplays the BOPIS store fulfill orders that are yet to be packed"Hamburger Menu, Layouts"
Store Fulfilled Order HistoryDisplays the fulfilled BOPIS orders"Hamburger Menu, Layouts"
Store Fulfilled Order to UnpackDisplays the BOPIS store fulfilled orders to unpack"Hamburger Menu, Layouts"
Store Picked Up Order HistoryDisplays the BOPIS store picked-up order history"Hamburger Menu, Layouts"
Store Pickup Order to UnpackDisplays the BOPIS store pick-up orders to unpack"Hamburger Menu, Layouts"
Store Pickup Order to be PackedDisplays the BOPIS store pick-up orders that are yet to be packed"Hamburger Menu, Layouts"
Store Ready to Pickup OrderDisplays the BOPIS store ready to pick-up orders"Hamburger Menu, Layouts"
# Breaking Changes Introduced in SFRA 5.0 SFRA 5.0 is a major release that introduces changes that are not backwards-compatible. The breaking changes in SFRA 5.0 are as follows: - The Checkout Services controller no longer requires the shopper to specify a credit card payment when the `SubmitPayment` method is called. Previously, the `SubmitPayment` method always required a credit card to be specified, even if the order balance could be paid off in full using another payment instrument, such as a gift card. - For improved security, the `Order-Track` endpoint in the [app\_storefront\_base cartridge (requires login)](https://github.com/SalesforceCommerceCloud/storefront-reference-architecture/tree/master/cartridges/app_storefront_base) now uses POST instead of GET. - For improved security, the `Wishlist-Results` and `Wishlist-MoreResults` endpoints in the [plugin\_wishlists cartridge (requires login)](https://github.com/SalesforceCommerceCloud/plugin_wishlists/tree/master/cartridges/plugin_wishlists) now use POST instead of GET. # Brotli Compression Enabled Brotli compression is now enabled for all environments. Browsers that support Brotli experience smaller download sizes for pages and static assets, resulting in improved performance. To learn more, see [Brotli compression](https://en.wikipedia.org/wiki/Brotli). # Build Feature Summaries For past releases, get details of what it includes, what each new or updated features does, and how to configure it in Retail Coud CMS. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In 2024, Salesforce acquired PredictSpring, a provider of modern retail point-of-sale (POS) software built natively in the cloud. PredictSpring was renamed Retail Cloud and is now called Point of Sale. You may still see references to Modern, POS, PredictSpring or Retail Cloud in the Point of Sale app and in our documentation. Customer support for PredictSpring on Zendesk retired in February ‘26. Salesforce Help is the new home for the Point of Sale support experience. POS releases features more frequently than three times per year. See [Release Notes for Features Released Monthly](https://help.salesforce.com/s/articleView?id=release-notes.rn_features_released_monthly.htm&release=260&type=5&language=en_US). - **[January Build Summary (11.6.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_6_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 11.56.1, including what new features and changes it contains. - **[October Build Summary (11.5.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_5_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 11.5.1, including what new features and changes it contains. - **[September Build Summary (11.4.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_4_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 11.4.1, including what new features and changes it contains. - **[August Build Summary (11.3.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_3_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 11.3.1, including what new features and changes it contains. - **[July Build Summary (11.2.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_2_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 11.2.1, including what new features and changes it contains. - **[June Build Summary (11.1.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 11.1.1, including what new features and changes it contains. - **[May Build Summary (11.0.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_0_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 11.0.1, including what new features and changes it contains. - **[April Build Summary (10.9.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_9_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 10.9.1, including what new features and changes it contains. - **[March Build Summary (10.8.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 10.8.1, including what new features and changes it contains. - **[February Build Summary (10.7.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_7_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 10.7.1, including what new features and changes it contains. - **[January Build Summary (10.6.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 10.6.1, including what new features and changes it contains. Version 10.5.1 was an internal-only release for work done during code freeze, intentionally skipped number for public release 10.6.1. Access all new features and enhancements in 10.6.1. - **[September Build Summary (10.4.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_4_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 10.4.1, including what new features and changes it contains - **[August Build Summary (10.3.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_3_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 10.1.1, including what new features and changes it contains - **[July Build Summary (10.2.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 10.1.1, including what new features and changes it contains - **[June Build Summary (10.1.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 10.1.1, including what new features and changes it contains - **[May Build Summary (10.0.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_0_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 10.0.1, including what new features and changes it contains - **[April Build Summary (9.10.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_10_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.10.1, including what new features and changes it contains - **[March Build Summary (9.9.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_9_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.9.1, including what new features and changes it contains - **[February Build Summary (9.8.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.8.1, including what new features and changes it contains - **[January Build Summary (9.7.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.7.1, including what new features and changes it contains. - **[December Build Summary (9.6.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.6.1, including what new features and changes it contains. - **[September Build Summary (9.4.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_4_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.2.1, including what new features and changes it contains. - **[August Build Summary (9.3.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_3_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.2.1, including what new features and changes it contains. - **[July Build Summary (9.2.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.2.1, including what new features and changes it contains. - **[June Build Summary (9.1.3)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_1_3.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.1.3, including what new features and changes it contains. - **[May Build Summary (9.0.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_0_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 9.0.1, including what new features and changes it contains. - **[April Build Summary (8.10.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_10_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 8.10.1, including what new features and changes it contains. - **[March Build Summary (8.9.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 8.9.1, including what new features and changes it contains. - **[February Build Summary ( 8.8.1)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5)** Build summary for Modern POS version 8.8.1, including what new features and changes it contains. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on minor fixes and enhancements around quantity picker components, developer experience, and localization. **Where:** Available to all Salesforce B2C Commerce customers. **When:** September 27, 2021 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **New components**—The default quantity picker pattern for product detail pages and cart pages provides a friendlier user experience. - New Quantity Picker component [#102](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/102) **Developer experience enhancements**—A helpful stack trace for non-production deployments and local development shortens debugging time. - Improve error page design [#74](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/74) - Ensure that generated projects ship with a working `.gitignore` file [#95](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/95) **Performance**—Some expensive page renders are faster thanks to caching and CPU optimizations. - Add default cache-control header to home page [#103](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/103) - New Lazy Load Popover component [#134](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/134) **Localization**—As part of our gradual translation of the PWA Kit across supported languages, the cart and checkout pages are prepared to accept translated messages. - Localize cart and checkout messages [#106](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/106) **Bug fixes** - Fix wishlist bugs and provide better hooks for wishlist features [#64](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/64) - Fix pseudo-localization command to use en-XB [#101](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/101) - Remove eslint rule, which checks for Salesforce copyright [#104](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/104) - Upgrade security inquirer package [#121](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/121) Full changelog [v1.0.0...v1.1.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v1.0.0...v1.1.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** November 18, 2021 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Retail React App Localization** You can now build translation bundles using npm as well as associate locale selectors with preferred currencies. You can also keep all localization-related configurations in one place. For more information, see the [Localization README](https://github.com/SalesforceCommerceCloud/pwa-kit/blob/develop/packages/pwa/app/translations/README.md). - Use the preferred currency when switching locales [#105](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/105) - When adding a locale, minimize configuring the locale selector UI by having a list of commonly used locales [#175](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/175) - Rename the extract-messages and compile-messages commands to extract default translations and compile translations [#160](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/160) - For search engine crawlers, add hreflang links to the current page’s HTML [#137](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/137) - Allow individual Commerce API calls to pass in a different locale or currency and override the global value [#177](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/177) - Enabling pseudo locale affects only the loading of the translation messages. The rest of the app still knows about English and the other locales. [#177](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/177) - Fix regression with loading the correct translation file [#193](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/193) - Fix Missing Locale param for Commerce API calls [#174](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/174) **Retail React App Performance and Usability** A new [simplified home page](https://pwa-kit.mobify-storefront.com/) makes it easier to get started with developing your storefront. We also implemented fixes for performance and usability. - Simplified storefront home page [#201](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/201) - Add `cache-control` header to product details page [#172](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/172) **Retail React App Shopper Experience** Improvements in Einstein recommendation and wishlists enhance the shopper experience. - Ensure `cookieId` value is always sent for Einstein recommendations [#179](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/179) - Integrate wishlist with Einstein recommended products [#131](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/131) - Enable favorite icons on product tiles for guest users [#173](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/173) - Enable adding wishlist items to the cart [#158](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/158) - Renamed `CartItemVariant` to `ItemVariantProvider` to improve reuse [#155](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/155) **Fixes and Security Updates** - Removed x-powered-by HTTP response header [#165](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/165) - Upgraded chakra-ui/react to version ^1.7.1 [#204](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/204) - Upgraded copy-webpack-plugin to fix tar vulnerability [#181](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/181) - Cleared SLAS tokens when OID is changed so that when you connect to a different sandbox, the new tokens are used [#178](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/178) - Updated security package Full changelog [v1.1.0...v1.2.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v1.1.0...v1.2.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** January 6th, 2022 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Changes** - Locale-based URLs. You can include the locale in the URL path or as a query parameter using the new configuration in `pwa-kit-config.json`. [#228](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/228) [#255](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/255) - All configuration options related to the Commerce API and the Einstein API that were previously in `commerce-api.config.js` and `einstein-api.config.js` are now in one file: `api.config.js`. [#256](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/256) - The new `DynamicImage` component can transform your images by mapping an array of widths to the corresponding `sizes` and `srcSet` attributes. This component also makes it easier to use the [Dynamic Imaging Service](https://help.salesforce.com/s/articleView?id=cc.b2c_creating_image_transformation_urls.htm&type=5&language=en_US). [#186](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/186) - The query parameters `mobify_server_only` and `mobify_pretty` used for debugging are now called `__server_only` and `__pretty_print`. The old query parameters are deprecated but still work. [#250](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/250) - New `id` and `defaultMessage` parameters to enable translation for the Retail React App. [#195](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/195) [#207](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/207) [#239](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/239) [#252](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/252) [#260](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/260) - New example product scroller on the home page of the Retail React App. [#218](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/218) [#208](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/208) [#216](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/216) - The `outputDir` option for the `npx pwa-kit-create-app` script defaults to `pwa-kit-starter-project` instead of `generated-project`. [#268](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/268) - The `Seo` component now fetches the default site title from `pages/constants.js`. [#279](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/279) - The `createApp` function takes a new option called `enableLegacyRemoteProxying` that defaults to true. When set to `false`, local development proxying is disabled when running remotely. In future, local development proxying will be disabled when running remotely. [#205](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/205) - More informative error output when the locale configured in PWA kit doesn’t match the one in Business Manager. [#225](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/225) - Error messages point to the latest documentation and help topics. [#268](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/268) - New and updated tests for search pages. [#245](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/245) **Bug Fixes** - Promotion codes appear in uppercase in order summary. [#224](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/224) - Order summary prices on checkout page misaligned on mobile. [#233](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/233) - Shipping method description overflows the price section. [#232](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/232) - Stack trace data and SSR options are visible on error pages when viewing page source. [#230](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/230) [#249](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/249) - Incorrect prop warning for section subtitle. [#282](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/282) - Incorrect repository URL in the NPM registry. [#257](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/257) **Security Updates** - Set common HTTP security headers in the Retail React App. [#263](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/263) - Remove `upgrade-insecure-requests` for local development. [#270](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/270) Full changelog [v1.2.0...v1.3.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v1.2.0...v1.3.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** January 27th, 2022 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Featured Change: Project Creation Presets** You can now create a PWA Kit project using presets. Presets let you specify a template for your project files and (optionally) use preconfigured settings for connecting to a B2C Commerce instance. To create a project using the Retail React App template and connect it to our demo sandbox, run the following command in your terminal: `npx pwa-kit-create-app --preset retail-react-app-demo` With this new demo preset, anyone can try out PWA Kit in minutes! To create a project with a different preset or use custom settings for connecting to your own B2C Commerce instance, run npx pwa-kit-create-app and follow the prompts. To learn about all the available options for creating a project, run `npx pwa-kit-create-app --help`. PRs: [#285](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/285), [#325](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/325), [#322](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/322), [#357](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/357), [#358](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/358), [#361](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/361) **Other Changes** - Support for React 17. [#278](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/278) - Support for NPM 7 and 8. [#302](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/302) - Update dependencies. [#347](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/347) [#346](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/346) [#317](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/317) - Reuse proxy connections in SDK. [#306](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/306) - Fix server error handling for unrecoverable errors. [#326](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/326) - Preliminary translations for the [demo storefront](https://pwa-kit.mobify-storefront.com/). [#324](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/324) **Bug Fixes** - Add constants for `meta theme-color|apple-mobile-web-app-title`. [#287](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/287) - Hide locale selector when there’s only a single locale. [#262](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/262) - Add to Cart remains active unless the item is out of stock. [#222](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/222) - Update error link. [#303](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/303) - Deprecate `create-hash-manifest` script. [#300](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/300) - Fix redirect after account creation. [#360](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/360) **Security Updates** - Don’t send the HSTS header in local development. [#288](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/288) - \[Snyk\] Security upgrade `shelljs` from 0.8.4 to 0.8.5. [#307](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/307) - \[Snyk\] Security upgrade `nanoid` from 3.1.30 to 3.1.31. [#308](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/308) - \[Snyk\] Security upgrade `cross-fetch` from 3.1.4 to 3.1.5. [#351](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/351) Full changelog [v1.3.0...v1.4.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v1.3.0...v1.4.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** May 16th, 2022 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **What’s New in V2?** We’ve added lots of new features to PWA Kit v2, including: - 🥳 TypeScript support. The build tools now support TypeScript by default—without having to update the configuration files for Babel or Webpack. - 🧰 An updated development server that supports hot reloading on the server side and makes it possible to support hot reloading on the client side in a future release. - 🤓 An all-new command-line tool called pwa-kit-dev that bundles our recommended development tools like Webpack, Babel, and Jest to support zero-config project templates. - 🖌️ Experimental support for non-React apps for those users interested in using Managed Runtime to host other Express-based apps (not just the Retail React App). See our [Upgrade to v2 guide](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/upgrade-to-v2.html) for details on how to migrate your v1 site to v2. Full changelog [v1.5.2...v2.0.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v1.5.2...v2.0.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** July 5, 2022 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Featured Change: Hot Reloading (Client Side)** See your changes as soon as you make them! Hot reloading now works on the client side as well as the server side, thanks to hot module replacement. A page reload is still required when: - Adding syntactically invalid changes. - Adding a new `loadable` page. - Updating a `getProps` function. **Changes pwa-kit-dev** - Replace `Mobify` references/links with proper PWA Kit values. [#619](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/619) - Add support for a custom build directory to `pwa-kit-dev build`. [#628](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/628) - Introduce client-side hot module replacement. [#630](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/630) **Changes to pwa-kit-react-sdk** - Remove console logs from route component. [#651](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/651) **Full Changelog** - [v2.0.0...v2.1.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v2.0.0...v2.1.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** August 26, 2022 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Changes to template-retail-react-app** - Update zzrf-001 instance URL. [#694](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/694) - Optimize server-side performance. [#667](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/667) - Remove references to session bridging. [#684](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/684) **Changes to pwa-kit-dev** - Added option to specify where the credentials can be saved to or read from. [#647](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/647) **Full Changelog** - [v2.1.0...v2.2.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v2.1.0...v2.2.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** October 27, 2022 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Featured Change: React Query Support** The pwa-kit-react-sdk now supports data fetching with React Query on the server side. For details on how to migrate a v2.2 project to v2.3, see the Upgrade to v2.3 guide. (Coming soon). **Changes to pwa-kit-react-sdk** - Support `react-query` server-side data fetching. [#724](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/724) - Add a server-safe default configuration for `queryClientConfig` option. [#734](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/734) - Add `useServerContext` hook with the `res` response object and the `isServerSide` flag. [#737](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/737) - Handle `react-query` server-side errors. [#735](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/735) - Fix internal build script. [#706](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/706) - Add Correlation ID to SCAPI requests. [#728](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/728) **Changes to template-retail-react-app** - Fix locale `alias` by including `locale` object inside the MultiSite Context. [#716](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/716) - Updated translations. [#725](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/725) - Add new Einstein API activities. [#714](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/714) - Fix search field to recognize the `&` character. [#736](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/736) - Fix filters on search results page. [#742](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/742) - Make copyright date in footer dynamic. [#741](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/741) - Bugfix: image gallery thumbnails not working without DIS. [#786](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/786) **Changes to pwa-kit-create-app** - Fix missing required fields in the `manifest.json` file for generated projects. [#729](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/729) - Update ODS instance URL for the `retail-react-app-demo` preset. [#799](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/799) **Changes to pwa-kit-runtime** - Performance: Skip retries when flushing CloudWatch metrics and prioritize returning a response instead. [#720](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/720) - Add `correlation-id` to the header of SCAPI requests. [#728](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/728) **Changes to pwa-kit-dev** - Minimize "Module not found" errors during a webpack rebuild whenever a package dependency is being updated or built. [#722](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/722) - Update minimatch. [#793](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/793) **Full Changelog** - [v2.2.0...v2.3.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v2.2.0...v2.3.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** December 1, 2022 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Featured Change: Preview of commerce-sdk-react Library** A preview release of `commerce-sdk-react` is now available [on npm](https://www.npmjs.com/package/commerce-sdk-react-preview). The new `commerce-sdk-react` library includes ready-made React hooks for fetching data from B2C Commerce. For more information on how to use `commerce-sdk-react`, see the [README](https://github.com/SalesforceCommerceCloud/pwa-kit/tree/develop/packages/commerce-sdk-react). **Changes to pwa-kit-create-app** - Update `instanceUrl` on retail-react-app-demo preset. [#799](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/799) - Update usage of `zzrf-001` in ODS instances to the new short URL format. [#816](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/816) **Changes to pwa-kit-dev** - Add `tail-logs` command. [#789](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/789) - Upgrade `minimatch`. [#793](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/793) **Changes to pwa-kit-react-sdk** - Fix `useServerContext` returning `isServerSide=false` when on server. [#782](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/782) - Upgrade `minimatch`. [#793](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/793) **Changes to template-retail-react-app** - Dynamic footer copyright date. [#741](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/741) - Footer copyright: remove the remaining hardcoded year. [#760](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/760) - `ImageGallery` uses `image.link` when DIS is not set. [#786](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/786) - Use default locale as target if none is specified. [#788](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/788) - Password change bug fix. [#803](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/803) - Add command for tailing logs to `pwa-kit-dev`. [#789](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/789) - Update usage of `zzrf-001` in ODS instances to the new short URL format. [#816](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/816) **Full Changelog** - [v2.3.0...v2.4.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v2.3.0...v2.4.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** January 6, 2023 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Featured Change: New Preview of commerce-sdk-react Library** A new preview release of `commerce-sdk-react` is now available [on npm](https://www.npmjs.com/package/commerce-sdk-react-preview). The new `commerce-sdk-react` library includes ready-made React hooks for fetching data from B2C Commerce. For more information on how to use `commerce-sdk-react`, see the [README](https://github.com/SalesforceCommerceCloud/pwa-kit/tree/develop/packages/commerce-sdk-react). **Changes to pwa-kit-create-app** - Add `instanceType` to Einstein activity body [#858](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/858). - Do not use a proxy to call Einstein [#857](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/857). **Changes to pwa-kit-dev** - Logging cid from res header instead of req in local development [#821](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/821). **Changes to pwa-kit-react-sdk** - Replace morgan stream to use `console.log` [#847](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/847). - Do not use a proxy to call Einstein [#857](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/857). - Reuse server correlation ID when hydrating error pages [#846](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/846). **Changes to pwa-kit-runtime** - Logging cid from res header instead of req in local development [#821](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/821). - Replace morgan stream to use `console.log` [#847](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/847). **Changes to template-retail-react-app** - Add `instanceType` to Einstein activity body [#858](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/858). - Do not use a proxy to call Einstein [#857](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/857). - Einstein handle variants [#867](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/867). - Fix cc exp year [#874](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/874). **Full Changelog** - [v2.4.0...v2.5.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v2.4.0...v2.5.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** January 31, 2023 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Featured Change: Mega Menu Improvements** Performance of the mega menu used by the Retail React App has been improved. **Changes to pwa-kit-dev** - Upgrade prettier to v2. [#926](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/926) - Security package updates. **Changes to pwa-kit-runtime** - Security package updates. **Changes to template-retail-react-app** - Changes to the mega menu to improve site performance. The mega menu now accepts a configuration for initial render 'depth' and then lazy loads further submenus when the page is loaded. [#875](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/875) and [#910](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/910) - Cache SLAS callback using request processor. [#884](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/884) - Fix padding of footer drawer component. [#899](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/899) - Fix to support order data tracking for the new Einstein event tracking. [#920](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/920) - Fix PropTypes. [#924](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/924) - Remove unnecessary map statement. [#929](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/929) **New Contributors** - Thanks [@GoodNightBuddy](https://github.com/GoodNightBuddy) for your first contribution in [#899](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/899). **Full Changelog** - [v2.5.0...v2.6.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v2.5.0...v2.6.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** March 3rd, 2023 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **Featured Changes** - Initial release of Page Designer page rendering support in `template-retail-react-app`. - Support for product-set product types in `template-retail-react-app`. - Support for Node 16 across the board for PWA Kit **Changes to commerce-sdk-react-preview** - Add Page/Region/Component components for shopper experience/page designer page rendering [#963](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/963). - Namespace `Auth` storage keys with site identifier to allow multi-site support [#911](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/911). - Add Shopper Experience `usePage` and `usePages` hooks[#958](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/958). - Refactors and security package updates. **Changes to pwa-kit-dev** - Add explicit `ws` dependency [#865](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/865). - Security package updates. **Changes to pwa-kit-runtime** - Support Node 16 [#965](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/965). - Security package updates. **Changes to template-retail-react-app** - Add Page Designer ImageTile component [#967](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/967). - Add Page Designer ImageWithText component [#991](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/991). - Add Page Designer carousel component [#977](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/977). - Add Page Designer layout components [#993](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/993). - Support the product-set type [#1019](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1019). **New Contributors** - Thanks [@breadadams](https://github.com/breadadams) for your first contribution in [#950](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/950). **Full Changelog** - [v2.6.0...v2.7.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v2.6.0...v2.7.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/getting-started.html) site. # Build Modern Shopping Experiences with PWA Kit The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. This release focuses on localization updates and improvements related to SEO, performance, and shopper experience. **Where:** Available to all Salesforce B2C Commerce customers. **When:** June 15th, 2023 **Why:** Each change has a numbered link to the relevant pull request in the open-source repository. **What’s New in v3?** We’ve added lots of new features to PWA Kit v3, including: - 🔨 **Template extensibility**: Greatly reduce your project's code footprint and reduce development toil, cost of ownership, and future upgrade headaches. For more details, see the [Template Extensibility](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/template-extensibility.html) guide! - 🪝 **@salesforce/commerce-sdk-react "hooks" integration**: Decouples API calls from a project's implementation, allows API calls to be upgraded as an npm library dependency, and brings along many of the great features (including state management, and others) via [TanStack](https://tanstack.com/query/latest) Query. See the the [Commerce SDK React docs](https://salesforcecommercecloud.github.io/pwa-kit/index.html) to get started! - ⚛️ **Major vendor library updates**, including support for **React 18**, **Node 16 / 18**, **Chakra 2**, and more. For details on upgrading from PWA Kit 2.7.x, see the [Upgrade to v3](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/upgrade-to-v3.html) guide. Full changelog [v2.7.2...v3.0.0](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/v2.7.2...v3.0.0) **How:** The PWA Kit is available as an open-source project on GitHub. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/) site. # Build Modern Shopping Experiences with PWA Kit (Generally Available) The Progressive Web App (PWA) Kit is a new storefront technology for headless commerce using Salesforce Commerce APIs and React. It provides front-end developers with a more flexible and agile approach to build and maintain modern shopping experiences. **Where:** Available to all Salesforce B2C Commerce customers. **When:** September 8, 2021 **Why:** Features of PWA Kit 1.0.0 include: - Integration with Commerce APIs and Open Commerce API (OCAPI) - Cross-device shopper authentication with the Shopper Login and Access Service (SLAS) - Responsive design optimized for mobile, tablet, and desktop - Category-based navigation with breadcrumbs - Product search and product listing, including filtering - Cart and wishlist management - Account management, including saved payments, saved addresses, and order history - Handling of promotions and coupon codes - Streamlined, single-page checkout, including guest and registered shopper flows - Einstein product recommendations displayed throughout the shopper journey - Locale switching and display of localized content **How:** The PWA Kit is available as an open-source project on GitHub. To get started, go to the [Commerce Cloud Developer Center](https://developer.commercecloud.com/s/article/PWA-Kit). The underlying Commerce APIs and Open Commerce APIs don’t allow public clients, like PWA Kit, to reset passwords and look up orders for guest shoppers. Projects must use a custom API to handle guest password reset verification logic and email sending and guest order lookup. # Bulk Translation for a B2B Store To accomplish bulk translations of B2B store metadata and Product, Category, and Promotion fields, use the Translation Workbench source export option. The Translation Workbench supports the XML Localization Interchange File Format (XLIFF) and the Salesforce Translation File (STF) file formats. Salesforce recommends that you use the XLIFF format. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Bulk translations from source files speeds up the localization process and helps maintain the quality and relevance of your content. The XLIFF translation source files contain the original metadata and Product, Category, and Promotion fields from your B2B store. The standardized format of the XLIFF file makes it easy for translators to understand the context and provide accurate translations. Translations are easily imported back into the Translation Workbench. After you import XLIFF file, the localized content is added to the system. This integration makes sure that all translated content is consistent with the original context and branding. It also provides a positive experience for users across various regions. For small translation jobs, you can add metadata translations with the Translation Workbench metadata feature. You can manually add Product, Category, and Promotion field translations through the Commerce App. See [Manually Localize B2B Store Labels](https://help.salesforce.com/s/articleView?id=commerce.comm_translate_store_labels_manually.htm&type=5&language=en_US). - **[XLIFF File Format for Importing Commerce Translations](https://help.salesforce.com/s/articleView?id=commerce.comm_xliff_file_format_import_translations.htm&release=264.0.0&type=5)** The Translation Workbench supports the XML Localization Interchange File Format (XLIFF) and Salesforce Translation File (STF) file formats. - **[Structure of the Store Metadata Translation Source File](https://help.salesforce.com/s/articleView?id=commerce.comm_structure_of_store_metadata_translation_source_file.htm&release=264.0.0&type=5)** In situations where Salesforce doesn’t provide default metadata translations, you can localize your store’s metadata and the custom functionality that you build. - **[Structure of the Store Data Translation Source File](https://help.salesforce.com/s/articleView?id=commerce.comm_structure_of_store_data_translation_source_file.htm&release=264.0.0&type=5)** The XLIFF source files for products, categories, and promotions include each object’s translatable fields. Each data source file’s element structure is specific to your store’s products, categories, or promotions. To avoid missed translations, download the XLIFF source files after your products, categories, and promotions are set for your store launch. #### See Also - [Enable Translation Workbench](https://help.salesforce.com/s/articleView?id=commerce.comm_translation_workbench.htm&release=264.0.0&type=5 "To assist with localizing B2B store information, enable the Translation Workbench and add the languages that you want to use in your stores.") - [XLIFF File Format for Importing Commerce Translations](https://help.salesforce.com/s/articleView?id=commerce.comm_xliff_file_format_import_translations.htm&release=264.0.0&type=5 "The Translation Workbench supports the XML Localization Interchange File Format (XLIFF) and Salesforce Translation File (STF) file formats.") - [Structure of the Store Metadata Translation Source File](https://help.salesforce.com/s/articleView?id=commerce.comm_structure_of_store_metadata_translation_source_file.htm&release=264.0.0&type=5 "In situations where Salesforce doesn’t provide default metadata translations, you can localize your store’s metadata and the custom functionality that you build.") - [Structure of the Store Data Translation Source File](https://help.salesforce.com/s/articleView?id=commerce.comm_structure_of_store_data_translation_source_file.htm&release=264.0.0&type=5 "The XLIFF source files for products, categories, and promotions include each object’s translatable fields. Each data source file’s element structure is specific to your store’s products, categories, or promotions. To avoid missed translations, download the XLIFF source files after your products, categories, and promotions are set for your store launch.") # Business Manager Review the new B2C Commerce Business Manager feature in the 20.9 release. - **[Use Access Key for Business Manager Login](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_business_manager_je.htm&release=264.0.0&type=5)** Business Manager users using Unified Authentication can now generate access keys to log in from external applications. # Business Manager Now Shows 12 Digits of Promotion Rule Prices Business Manager now shows 12 digits of promotion rule prices. Previously, only five were visible. # Business Manager Supports Product Prices of up to 16 Digits The limit for product prices set in Business Manager is now 16 digits. Twelve of those digits are visible. Previously, the limit was 10 digits and only 8 digits were visible. # Business Manager UI in Dutch The Business Manager user interface is now available Dutch. To choose this new language, select the respective value in the dropdown in your user profile settings. # Business Manager UI in Polish The Business Manager user interface is now available in Polish. To choose this new language, select the respective value in the dropdown in your user profile settings. # Business Manager UI in Traditional Chinese for Taiwan The Business Manager user interface is now available in Traditional Chinese for Taiwan. To choose this new language, select the respective value in the dropdown in your user profile settings. # Buy Now Items Get Their Own Cart Shoppers can now use Buy Now express checkout without losing the contents of an existing shopping cart. Buy Now express checkout puts items for purchase in a separate cart. To use this feature, upgrade the Payments plug-in (plugin\_commercepayments) to the latest version. How: To determine which plug-in to upgrade to, check the plugin\_commercepayments repository for information about which releases are available and what they contain. # Buyer Group Extension Dynamically assign buyers to buyer groups for a B2B store by using a custom Apex logics. Review the considerations to understand the factors that influence how these assignments take place in your store. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Considerations for Buyer Group Extension](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_group_extensibility_considerations.htm&release=264.0.0&type=5)** As you turn on buyer group extension, keep these considerations in mind. - **[Dynamically Assign Buyer Groups by Using Apex Logics](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups_using_apex_logics.htm&release=264.0.0&type=5)** Dynamically assign guest and authenticated buyers to buyer groups for a B2B store by using custom Apex logics. When buyers visit the store pages, the Apex logic adds them to a buyer group based on the defined criteria. Assigning buyers dynamically when they visit a storefront ensures timely, personalized shopping experiences including targeted product visibility, pricing, and promotions, without manual intervention. - **[Create a Shareable URL for Your Store](https://help.salesforce.com/s/articleView?id=commerce.comm_shareableurl.htm&release=264.0.0&type=5)** Customers can use a shareable URL to access your B2B store. The shareable URL contains a special URL parameter that's associated with a buyer group that has its own price book and discounts. Customers who get to the store using the shareable URL are automatically assigned to the associated buyer group, either in addition to the buyer group the customer is already part of or instead of that buyer group, depending on how your developer set up buyer group extensions. # Buyer Groups, Entitlements, and Pricing Strategies for B2B Stores Set up buyer groups, entitlements, and price books to customize product visibility and pricing for each buyer in your store. Here are three examples of strategies you can consider for your store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Create Buyer Tiers Use the buyer tiers strategy to spur buyer incentive. Buyers in higher tiers progressively get access to more products or deeper discounts. For each tier, set up one entitlement policy, one price book, and one buyer group. ![Different buyer tiers](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/strategies_buyer_groups1.png) ## Offer Buyer-Specific Pricing When your goal is to maximize profits, create one buyer group and entitlement policy for all buyers. Then, for each buyer, assign one price book and one buyer group. This strategy lets you set up buyer-specific pricing. This setup also works for use cases with different pricing tiers or groups. ![One group and policy for all then each](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/strategies_buyer_groups2.png) ## Steer Customers to Specific Products You can steer customers to specific products by controlling their access. Each buyer can see different groups of products based on their negotiated contract. For each group of products, create one buyer group and one entitlement policy. Then associate each buyer to the buyer group for each group of products that you want the buyer to have access to. A single account can have membership in up to 20 buyer groups. ![One group per each product group](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/strategies_buyer_groups3.png) #### See Also - [Associate a Buyer Group with a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups.htm&release=264.0.0&type=5 "Product prices and the products that buyers can access depend on the price books and the entitlement policies assigned to the buyer group. When you create a store, a default buyer group is assigned to the store.") - [Entitlement Policies for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_entitlement_policies_intro.htm&release=264.0.0&type=5 "Entitlement policies make it easy to manage buyer groups and products. You can use entitlement policies to decide which products a buyer group can see, and whether the buyers can see the product prices. When you create a store, the system automatically creates a default buyer group and a default entitlement policy. You can create additional buyer groups and entitlement policies as needed.") - [Pricing for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricebooks.htm&release=264.0.0&type=5 "You can set up pricing for your B2B store by configuring a standard strategy and pricing procedure, or enable advanced pricing for more complex pricing use cases.") # Cancel a Managed or Unmanaged RMA Return Order If the shopper or buyer doesn’t return the expected items, you can cancel an RMA return order. ### Required Editions
View supported editions.
Quantity fields don’t display automatically on the Return Order Line Item page. Because you use the quantity fields to verify and update item quantities before canceling a managed or unmanaged RMA return order, add these quantity fields to the Return Order Line Item default page layout. - Quantity Expected - Quantity Received - Quantity Rejected - Reason for Rejection You can only cancel an activated return order. 1. From the Navigation bar, open the Return Orders list view page. 2. Select the return order number to cancel, and open the corresponding return order record. You can also open the return order directly from the associated order summary. 3. On the Related tab, open each return order line item and change the Quantity Expected to 0. 4. Save your changes, and go back to the return order. 5. On the Details tab, change the status of the return order to **Canceled**, and save your changes. When you cancel a managed RMA return order, Order Management updates the order item quantities and financial information for you. When you cancel an unmanaged RMA return order, you must manually update the order item quantities and financial information. #### See Also - [Managed and Unmanaged RMA Return Orders](https://help.salesforce.com/s/articleView?id=commerce.om_managed_unmanaged_return_orders.htm&release=264.0.0&type=5 "Return merchandise authorization (RMA) return orders support both managed and unmanaged orders, so whatever degree of service you provide for orders, you can still keep a tight level of control over returns and refunds.") - [View Return Orders](https://help.salesforce.com/s/articleView?id=commerce.om_view_return_orders.htm&release=264.0.0&type=5 "A return order record contains details about the returned items and related records, including the associated order summary.") # Cancel an Order Item You can cancel order items that aren’t allocated or fulfilled. ### Required Editions
View supported editions.
Launch the Cancel Items flow from the console app. If you launch Cancel Items from outside the console app, the progress bar is displayed at both the top and bottom of the Cancel Item window. 1. From the Navigation bar, open the Order Summaries list view page. 2. Select the order number that contains the items to cancel, and open the corresponding order summary record. You can also open the order summary directly from the customer’s account in the Service Console. 3. From the Actions & Recommendations list, select your cancel item flow. - To cancel up to 100 selected items, select **Cancel Item**. - To cancel all eligible items in the order, select **Cancel All**. 4. If you selected **Cancel Item.** select the items to cancel, and click **Next**. Only eligible items are listed. If you select a product bundle, all child products are selected. You can manually select or deselect child products, but a refund is processed only if the bundle item is selected. We recommend reviewing your store’s bundle policy. 5. Enter the required cancellation details. To apply details in bulk, use the Apply to All Items row. If you’re canceling all eligible order items, the details apply to all items. If you’re processing a bundle, you can modify the quantity of child products, but the refund isn't prorated even if only some child products are canceled. 6. Click **Next**. 7. Review the cancel information and submit the cancellation. 8. Click **Finish**. A change order is created, and the totals on the order summary are updated accordingly. If you’ve already captured payment for the canceled items, the excess funds are refunded, but a credit memo isn’t generated. The quantities on the order product summary are updated to reflect the canceled items. If the ordered quantity for an item is reduced to 0, the item’s status changes to Canceled. Otherwise, the status reflects the quantity that’s still part of the order. #### See Also - [Order Servicing](https://help.salesforce.com/s/articleView?id=commerce.om_service.htm&release=264.0.0&type=5 "Order servicing lets your customer service representatives (CSR) provide shoppers with order-related services, such as returns, exchanges, and cancellations. Order Management uses flow templates to help automate the these tasks. A Salesforce Admin can copy and customize these templates and then make the process flows available in the Actions & Recommendations section on the Order Summary page. Service agents can then quickly respond to requests for cancellations, reshipments, discounts, exchanges, and returns.") # Cancel Cycle Counts in CMS Cancel a cycle count in Point of Sale CMS if you acidentally create one. This action isn't reversible, so you'll be asked to confirm the cancellation. ## Cancel in CMS To cancel in CMS, select VIEW DETAILS as noted in the previous section. Select Cancel under Status. ## Cancel in POS App Go into a cycle count and select Cancel in the upper right. A canceled cycle count will still display variances in the Cycle Counts Report for the scanned items even after cancellation. However, the inventory count won't be affected. # Canceling Batches Manage and organize inventory data in the Point of Sale (POS) app by removing batches. Batches can be deleted by tapping the trash icon in the upper right. Deleted batches will update their status to "Cancelled". # Cap Safety Stock Safety stock acts as a buffer to control a location’s inventory and reduce the risk of running out of stock. Although safety stock works on a location level, it aggregates up to the group level and can impact other locations in the group. A safety stock quantity that exceeds a location’s on-hand stock can limit the available stock across the network when it aggregates to the group. Prevent underselling by capping your safety stock to prevent it from exceeding on-hand counts. Safety stock caps apply to existing inventory counts within the service and to future inventory updates. If you enable safety stock caps after importing your inventory, the location-level safety stock adjusts to the on-hand amount for each product at each location. Enabling safety stocks to an existing inventory is a resource-intensive process. We recommend enabling the feature only after you’ve considered all potential impacts of bulk-editing safety stock. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/inv_omnichannel_inventory/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, find and select **Omnichannel Inventory**. 3. Enable **Location Aggregation Safety Stock Cap**. Because of the resource-intensive nature of enabling safety stock caps, you can’t manually disable the feature after you’ve enabled it. To disable safety stock caps, contact Salesforce Customer Support. # Capture and Refund Payments from the Payments Workspace Capture and refund credit card purchases from the Payments workspace, instead of going to the payment gateway's dashboard. For example, you can manually capture payments, or process courtesy refunds outside of the return time frame. The available action is determined by the payment status. You can only take actions on payments processed by Stripe or Adyen. ### Required Editions
View supported editions.
User Permissions Needed
To perform tasks in the Payments app: Payments administrator permissions
1. In the Payments app, select **Payments Workspace**. 2. Select an action from the dropdown menu at the end of the entry, or click the payment intent number and select Capture or Refund on the record page. Capture is available only if you enabled manual capture for your store, and the payment status is Authorized. ![Capture a payment in the Payments workspace](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_capture_action.png) Refund is available only if the payment status is Succeeded. ![Refund a payment in the Payments workspace](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_refund_action.png) 3. Complete the action from the confirmation page that opens. ![Capture and refund confirmation pages](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_action_modals.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_note.png) Note Captures and refunds from the Payments workspace are not automatically synced to downstream systems, like order management systems, including Salesforce Order Management, or enterprise resource systems. To keep these systems synchronized, subscribe to [Salesforce Payments Event Notifications,](https://help.salesforce.com/s/articleView?id=commerce.payments_event_notifications.htm&language=en_US) and use them to build custom business logic. #### See Also - [Payments Timeline to Track Processing](https://help.salesforce.com/s/articleView?id=commerce.payments_timeline.htm&language=en_US) # Capture Customer Information From Payment Terminal Allow customers to directly enter information, such as email addresses, on Adyen and Verifone terminals, streamlining data collection. Reduce the need for store associates to verbally collect information. Configure custom layouts in Point of Sale CMS and designate text input or checkbox fields for terminal input to tailor the data collection process. - Modern POS App Build: 8.5.1; 9.5.1 for Verifone - Platform Support: iPhone, iPad - Offline Support: yes - Supported Devices: All Adyen terminals\* and Verifone PSDK (for best results, the larger M400 is recommended) \* _Adyen AMS1 terminals are supported for app builds 10.5.1 or greater._ ## Terminal Input Layout To initiate input on the terminal for a layout form, store associates can tap any button whose Button Action is set to "**Terminal Input**". The terminal cycles through all the designated fields and collect the appropriate data for each one. Point of Sale provides an out-of-the-box layout featuring this button, or for more customization, users can create a custom layout with additional configuration. ![The Terminal Input button on the Add New Customer screen in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_term_input.png) To use the preconfigured layout, go to **Layouts > Layout Pages > Add From Template** and select **Sign-up With Terminal Input**. To create a custom layoout: 1. Go to **Layouts > Layout Pages > Add Blank Layout**. 2. Add or select into a cell. 3. On the right toolbar menu, go to **Form Element > Button**. 4. Under **Button Action**, select **Terminal Input**. 5. As shown below, this button action type can be selected from the **Button Action** dropdown for any button element while editing any layout in the CMS. 6. Fill in the rest of the fields and configure the rest of the custom layout. 7. Save the changes. ![The Terminal Input button in the Form Element - Button section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_term_input_form_button.png) ## Layout Form Fields To select which form fields show on the terminal, turn on the Enable Terminal Input switch while editing the form elements in a layout on the CMS. This is shown next. Any form element of type "**Text Input**" or "**Checkbox with Terminal Input**" has this option.![The Add New Customer screen on the POS app with the Email field highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_new_cust_terminal_email.png) To turn on terminal input: 1. On your layout, ‌select a field. The **Form Element** screen appears. 2. Under **Field Type**, select the type of field. 3. Under **Input Type**, select the type of input for the field. For example, Input type of "**Phone**" displays a phone number capture screen. All other input types show a simple text field with a keyboard. 4. Turn on **Enable Terminal Input**. ![The Enable Terminal Input toggle in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_terminal_input_flag.png) To set up legal agreements on the terminal (that is, Terms & Conditions), make sure that aside from toggling the **Enable Terminal Input** option, you also select "**Checkbox with Terminal Input**" as the designated Field Type. If selected, this form element has the additional four fields: - Terminal Prompt Title - Terminal Prompt Body - Terminal Prompt Cancel Button Title - Terminal Prompt Confirm Button Title ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important For Verifone terminals, the Terminal Prompt, Cancel, and Confirm Button Titles have a limit of nine characters. These values are used to show a confirmation screen on the terminal. At a minimum, provide either a Title or Body, otherwise, the confirmation screen won’t show. If no value is provided for the "**Cancel**" Button Title, the default string "**Cancel**" is used. Likewise, if no value is provided for the "**Confirm**" Button Title, the default string "**Confirm**" is used. ![The Terms and Conditions checkbox turned on with the Placeholder Text in the CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_checkbox_term_input.png)![The Terminal Prompt body showing in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_terms_conditions_term_input.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note While the JSON key is set to "consents.terms" in the example provided under **Field**, it's possible to assign any value to correspond with the form in which it is displayed. ## View Customer Information From Payment Terminal in the POS App Permit customers to quickly populate Point of Sale (POS) form fields by initiating terminal input. The terminal collects data from text inputs and checkboxes with terminal input enabled. As customers complete each field on the terminal, the associated POS field is automatically populated. Customers can also cancel the entire input sequence if needed. ### Initiating Terminal Input If a Terminal Input button is tapped on a given form, the terminal first cycles through all the Text Inputs that have **Enable Terminal Input** toggled on and collects the appropriate data for each one. Then the terminal will cycle through all the Checkboxes with Terminal Input that have **Enable Terminal Input** turned on. ### Adyen Terminal ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note for Adyen M450 terminals, tapping a key dismisses the terminal's on-screen keyboard. Tap the text field again to enter the next character. ![Enter your email address in Ayden terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pay_term_ayden_1.png)![Enter your phone number in Ayden terminal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pay_term_ayden_2.png)![Decide whether to redeem your loyalty points in Ayden terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_hardware_pay_term_ayden_3.png) ### Verifone M400 Terminal ![Enter your first name in the Verifone terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pay_term_verifone_1.png)![Enter your phone number in the Verifone terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pay_term_verifone_2.png)![Agree to terms and conditions in the Verifone terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pay_term_verifone_3.png) ### Cancelling Terminal Input By tapping the "X" button on the terminal, the customer can cancel the entire sequence of input collection for all fields. ## Capturing Customer Information Known Issues Be aware that input types other than "Text Input" and "Checkbox with Terminal Input" aren't supported for capturing customer information. If the Point of Sale (POS) device navigates away from the input screen, the terminal continues to cycle through the fields. Also note that calls to the terminal overrides the current screen, and the "Checkbox with Terminal Input" can't be longer than nine characters if using Verifone Terminals. ### Adyen Terminals The information in the proceeding sections describes known issues and restrictions for Ayden terminals. ### Input Types Other input types aside from "Text Input" and "Checkbox with Terminal Input" (for example dropdowns, checkboxes, and so on) won't be supported with this feature. ### POS Navigation If the POS device navigates away from the screen with inputs that are currently being shown on the terminal, the terminal will continue to cycle through the fields for that form, but there's no corresponding action on the POS given that the associate is no longer on the appropriate screen. The customer can exit this flow on the terminal at any time by tapping the X. ### Overriding Calls to Terminal If any calls are made to the terminal while a customer is entering their information for a given field (for example if the associate initiates payment collection while the user is entering their email), the most recent call made overrides the current screen, and the customer sees the appropriate screen for the new call (for example the email screen is replaced by the payment collection screen). ### 1:N Topology It isn't recommended to use this feature from a register whose card reader topology is set to 1:N. If this is true and the POS is only connected to a single reader, the inputs show on that reader. If there's more than one reader connected, there's currently no way to manage which reader the inputs appear on. ### Verifone Terminals The information in the proceeding sections describes known issues with Verifone terminals. ### Input Buttons The input type "Checkbox with Terminal Input" can't be longer than nine characters. # Capturing Customer Information for Returns with Point of Sale View and manage customer information for returns, both online and offline. Customize a layout so that Point of Sale (POS) app users can see the information during the return process, including customer name and email address. Merchants can select whether capturing customer information is mandatory for receipted, and nonreceipted returns. This feature is solely for capturing customer information on returns, not related to Clienteling SPI or SFOMS. For details on capturing customer information, see [sales](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customer_info_sales.htm&release=264.0.0&type=5 "Configure a layout to show customer information such as name, email address, address, and other details to show associates in the Point of Sale (POS) app during a sale."). ## Prerequisites - Modern POS App Build: 10.3.1 and later - Platform Support: iPad & iPhone - Offline Support: yes ## Configure Point of Sale CMS for Customer Information Layouts Set up Point of Sale CMS to manage customer information layouts and view customer information for returns in the Point of Sale (POS) app. ### Create Customer Information Layout Create a layout for capturing customer information in the CMS. For more information, see [layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_intro.htm&release=264.0.0&type=5 "Layouts in Point of Sale offer flexible and modular design options, enabling seamless customization for a variety of user needs. By leveraging Layouts, customers can easily adapt and enhance their digital experiences, ensuring a tailored and efficient solution."). 1. Go to **Layouts > Layout Pages > Add Blank Layout**. 2. Add fields for customer information capture. For a list of common fields and their recommended values under Form Elements, refer to this [section](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customer_return_info.htm&release=264.0.0&type=5). 3. Add a CTA button with an action of "**Save Customer Info on Return**" to save the customer information to the cart. 4. (Optional) For any Form Element that you don't want users to edit after it is entered and saved for a transaction, turn on “**Disable Default Value Edits**." 5. (Optional) For fields like lottery code, where the input is typically through an external scanner, turn on '**Allow Barcode Input**.'![Return Customer Info in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_return_customer_info.png) #### Common Customer Information Fields | Customer Information | Form Element - Field | | --- | --- | | First Name | firstName | | Last Name | lastName | | Phone Number | phone | | Email Address | email | | Personal ID | personalId.value | | Personal ID expiration | personalId.expiry | | Personal ID Issued State | personalId.issuedBy | | Personal ID Issued Type | personalId.type | | Tax ID | taxInfo.taxId | | Address Line 1 | address.addressLine1 | | Address Line 2 | address.addressLine2 | | City | address.city | | State | address.state | | Postal Code | address.postalCode | | Country | address.country | ### Customize Customer Information Layout Mappings 1. Go to **Store Management > Store Settings > Clienteling**. 2. Edit **Customer Information Capture Configuration (customerInfoConfig)**. 3. Select a layout for the **Transaction Type of Return**. This store setting functions similarly to the app configuration setting "**Customer Info Layout (CustomerInfoLayoutID).**" From app builds 10.3.1 and later, use **Customer Information Capture Configuration (customerInfoConfig)** instead. 4. Optionally, turn on **Customer Info Required for Receipt Return** to mandate customer information for receipted returns. Select a return layout to turn on this setting. 5. Optionally, turn on **Customer Info Required for No-Receipt Return (NRR)** to mandate customer information for nonreceipted returns. Select a return layout to turn on this setting.![The Customer Information Layout Mappings Configuration in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_customer_info_layout.png) ## View Customer Information Layouts and Reports in the POS app Access and configure customer information layouts in the Point of Sale (POS) app. For returns with a receipt, the Customer Information layout only shows if a layout is chosen in the layout mappings and "**Customer Info Required for Receipted Returns**" is turned on. The layout appears as soon as the user selects **Return** in the shopping cart. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If editing an order, even if an item is canceled (deleted) and the order is completed, the Customer Information layout still appears if "**Customer Info Required for Receipted Returns**" is turned on. This is because such cases are still considered returns, requiring customer information. ![The Return Customer Info window in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_return_customer_info_layout.png) Similarly, nonreceipted returns show the layout if a layout is chosen in the layout mappings and "**Customer Info Required for No Receipt Returns**" is turned on. ### Reporting Customer information is logged in the TLogs at the transaction level. Note that the format differs between XML and JSON. In XML, the first and last names are merged into a single field, "`OfficialName`". ``` John Doe ``` In JSON, they are stored as separate fields: "`firstName`" and "`lastName`". ``` { "person": { "firstName": "John", "lastName": "Doe" } } ``` ### Known Issues & Restrictions - We don't support integration with Fraud Check Processors (for example, Kount). - It isn't possible to configure the policy based on the tender type returned. - Returnee details aren't displayed in the Order History or kept outside of the export. - Filling out the return customer info doesn't update the customer's profile on the app. # Capturing Customer Information for Sales in Point of Sale Configure a layout to show customer information such as name, email address, address, and other details to show associates in the Point of Sale (POS) app during a sale. For details on capturing customer information for returns, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_require_info_cust_returns.htm&release=264.0.0&type=5 "Collect customer information for all return types in the POS app and increase clienteling opportunities. Store associates can search for existing customer profiles and automatically prefill the return form with the customer’s information. If no profile is found, the store associate can create one for the customer. Additionally, if the original sales order included customer details, those fields also prefill the return form."). ## Prerequisites - Modern POS App Build: 7.14.5 or greater; 10.2.1 or greater for offline support - Platform Support: iPad, iPhone - Offline Support: yes ## Configure Point of Sale CMS for Customer Information Layouts for Sales Set up Point of Sale CMS to manage customer information layouts and view customer information for sales in the Point of Sale (POS) app. ### Creating Customer Information Layout Create a layout for capturing customer information in the CMS. For more information, see[layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_intro.htm&release=264.0.0&type=5 "Layouts in Point of Sale offer flexible and modular design options, enabling seamless customization for a variety of user needs. By leveraging Layouts, customers can easily adapt and enhance their digital experiences, ensuring a tailored and efficient solution."). 1. In the CMS, go to **Layouts > Layout Pages > Add Blank Layout**. 2. Add fields for customer information capture. For a list of common fields and their recommended values under **Form Elements**, refer to this [section](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customer_info_sales.htm&release=264.0.0&type=5). 3. Add a CTA button with a Button Action of "**Save Customer Info to Cart**" to save the customer information to the cart. 4. (Optional) For any Form Element that you don't want users to edit after it is entered and saved for a transaction, turn on “**Disable Default Value Edits**." 5. (Optional) For fields like lottery code, where the input is typically through an external scanner, turn on '**Allow Barcode Input**.'![The Customer Info section in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_sales_cust_info.png) #### Common Customer Information Fields | Customer Information | Form Element - Field | | --- | --- | | Salutation | salutation | | Suffix | suffix | | First name | firstName | | Last name | lastName | | Second name | secondName | | Customer ID | customerId | | Alternate customer ID | alternateCustomerId | | Loyalty ID | loyaltyId | | Email address | email | | Phone number (business) | phoneBusiness | | Phone number (home) | phoneHome | | Phone number (mobile) | phoneMobile | | Fax number | fax | | Tax ID | taxInfo.taxId | | Address Line 1 | address.addressLine1 | | Address Line 2 | address.addressLine2 | | City | address.city | | State | address.state | | Postal Code | address.postalCode | | Country | address.country | Capturing customer information online can be done through a deep link. For offline capture, both the deep link and clienteling icon can be used. ### Customize Customer Information Layout Mappings 1. In CMS, go to **Store Management > Store Settings > Clienteling**. 2. Edit **Customer Information Capture Configuration (customerInfoConfig)**. 3. Select a layout for the **Transaction Type of Sale**. This store setting functions similarly to the app configuration setting "Customer Info Layout (CustomerInfoLayoutID)." From app builds 10.3.1 onwards, **use the Customer Information Capture Configuration (customerInfoConfig)** instead. 4. Optionally, turn on **Allow Customer Info Modification** to permit editing of customer information after an order is placed.![The Customer Information Layout Mappings Configuration section of Point of Sale CMS with the No Receipt Return setting turned on.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_cust_info_sales_nrr.png) ### Configuring Layout Accessibility Capturing customer information online can be done through a deep link. For offline capture, both the deep link and clienteling icon can be used. #### Configure Deep Link 1. Edit a layout or hamburger menu. 2. Using the deep link picker, go to **Layout > Get Customer Info Layout**. 3. Select a layout.![The Select a Deep Link section of Point of Sale CMS, where you go to Get Customer Info Layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_setting_cust_sales_deep_link.png) #### Configure Clienteling Icon ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Turn off **Disable Clienteling Search in Checkout (HideClienteling)** to show the clienteling icon. 1. In CMS, go to **Apps**. 2. Edit ‌app configuration. 3. Turn on **Show Clienteling Icon (ClientelingVisibility)**. ### Configuring Receipts Customer information can be printed on both print and email receipts. #### Configure Print Receipts 1. In CMS, go to **Apps**. 2. Edit ‌app configuration. 3. Go to **Modules > POS**. 4. Edit **Receipt Configuration**. 5. Configure print tags for printing customer information by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_print.htm&release=264.0.0&type=5 "Print tags are placeholder strings that dynamically display data in Point of Sale layouts. Add print tags to native or HTML text overlays to display information such as order totals, customer names, or store details. You can also use print tags in certain app-level settings."). #### Configure Email Receipts 1. In CMS, go to **Store Management > Email & Print Templates**. 2. Select **Transaction Print Receipt**. 3. Configure email tags for printing customer information by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_email.htm&release=264.0.0&type=5 "Email tags in Point of Sale are placeholders for email and print templates that pull specific information from data that are then shown instead of the actual placeholder."). ## View Customer Information Layouts and Reports for Sales in the POS app Access and configure customer information layouts for sales in the Point of Sale (POS) app. ### Capture Customer Information Online Add products to the cart and tap the **Get Customer Info Layout** deep link. Add the customer's information and save it. If **"Disable Clienteling Search in Checkout" (HideClienteling)** is turned off, the Clienteling icon updates to show the customer's first name and indicate that this is a guest order. ![The Customer Info window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_cust_info_sales_pos_app.png) ### Capture Customer Information Offline Add products to the cart and tap either the Clienteling icon or the **Get Customer Info Layout** deep link. Add the customer's information and save it. If "**Disable Clienteling Search in Checkout (HideClienteling)**" is turned off, the Clienteling icon updates to show the customer's first name and indicate that this is a guest order. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important In addition to disabling the "**Disable Clienteling Search in Checkout" (HideClienteling)** setting, make sure that a layout is configured and linked under "**Customer Info Layout" (CustomerInfoLayoutID)** in your app configs for the clienteling icon to be visible. ![The POS app offline and in Guest Mode, with an item in the cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_cust_laoyout_id_pos.png) ### Edit Customer Information If **Allow Customer Info Modification** is turned on, the customer's information can be edited in the cart and on the order details screen. To do this, tap the **Order History**deep link and search for an order. Then, tap the customer's name to show the **Customer Information** window, allowing you to edit the customer's information. ![The Customer Info window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_cust_info_sales_pos_app.png) ### Reporting Customer information is logged in the TLogs at the transaction level. Note that the format differs between XML and JSON. In XML, the first and last names are merged into a single field, "`OfficialName`". ``` John Doe ``` In JSON, they are stored as separate fields: "`firstName`" and "`lastName`". ``` { "person": { "firstName": "John", "lastName": "Doe" } } ``` ### Known Issues and Restrictions - Without a cart created, the POS app won't permit you to enter customer information using this feature. - If customer information is added to a cart as a guest and then an existing or new customer is chosen to link to the cart, the previously captured information is erased. - If customer information is added to a cart as a guest and then a suspended cart with another customer is linked, the previously captured information is erased and replaced by the customer from the suspended cart. - If customer information is captured in online mode and the same cart is used in offline mode, the app won't port the customer information as customer login is not supported in offline mode. The user has to add the information again before submitting the order. - If customer information is captured in offline mode and the same cart is used in online mode, the app ports the customer information as customer login is supported in online mode. - Federal ID collection as part of checkout is still not part of customer properties and can't be moved to the customer info layout. - If Save Address to User's Profile (**App > Modules > Cart**) is set to "**Always Save Address**," then the customer's profile address is linked to the shipping address in the cart. Every time a shipping address is added to the cart, it also updates the customer's profile address. # Card Payment Method Fields The Card Payment Method object represents a credit card or debit card. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Card Payment Method object.
Field Label Description
Account The customer account for the card payment method.
Audit Email The email address of the card payment method owner.
Auto Card Type The card network type, derived from the card number.
Card BIN The first six digits of the card number.
Card Category

Indicates whether the card is a credit card or debit card.

Possible values are:

  • CreditCard—Credit card
  • DebitCard—Debit card
Card Last Four The last four digits of the card number.
Card Type

The name of the credit card bank.

Possible values are:

  • AmericanExpress
  • DinersClub
  • JCB
  • Maestro
  • MasterCard
  • Visa
Cardholder First Name The first name of the cardholder.
Cardholder Last Name The last name of the cardholder.
Cardholder Name The full name of the cardholder.
Comments Comments about the card payment method.
Company Name The company name of the cardholder.
Display Card Number The card number. The digits are masked, except the last four digits.
Expiry Month The card’s expiration month.
Expiry Year The card’s expiration year.
Gateway Date The date that the card payment method interacted with the payment gateway.
Gateway Result Code The result of the card payment method’s interaction with the payment gateway during a transaction request.
Gateway Result Code Description Additional information about the gateway result code. Descriptions vary between payment gateway providers.
Gateway Token The unique token ID generated by the payment gateway to represent the card payment method for future transactions. This version isn’t encrypted.
Gateway Token Details Additional information about the gateway token.
Gateway Token Encrypted The encrypted version of the unique token ID generated by the payment gateway to represent the card payment method for future transactions.
Input Card Number Input field for the card number. This field doesn’t store the card number directly, but instead populates Card BIN, Last Four, and Display Card Number fields based on the value entered.
IP Address The IP address of the card payment method holder.
MAC Address The MAC address of the user who initiated the payment.
Nickname The nickname for the card payment method.
Payment Gateway The payment gateway used to create a gateway token. For transactions with a saved payment method in Salesforce, this field stores the payment gateway record used in the transaction.
Payment Method Address The address related to the card payment method. Also known as the billing address.
Phone The phone number of the card payment method owner.
Processing Mode

Indicates whether the card payment method is used for transactions made inside or outside the payment platform.

Possible values are:

  • External—Transaction occurred outside of the Salesforce payment platform.
  • Salesforce—Salesforce made and recorded an external call to the payment platform.
Registered Card Email The email address of the card payment method owner.
Salesforce Result Code

The Salesforce result code for the card payment method’s interaction with the payment gateway. This value can be mapped to one or more gateway result codes.

Possible values are:

  • Decline—The gateway call failed, but it may still work if the transaction is attempted again. For example, the customer had insufficient funds or briefly lost their connection.
  • Indeterminate—The gateway didn’t respond to the call. This response usually happens when Salesforce times out while waiting for a response from the gateway.
  • Permanent Fail: The gateway call failed and won’t work even if tried again. Gateway calls fail permanently for one of two reasons:
    • Hard Decline—The customer’s payment account has been closed or terminated.
    • Fraud—The gateway recognized the payment or payment method as known fraud
  • Requires Review—The customer’s bank requires more information before completing the payment.
  • Success—The gateway call succeeded.
  • System Error—Salesforce ended the payment request before receiving a response. For example, Salesforce lost credentials or access to its server. Salesforce ends payment calls if it doesn’t receive a response from the gateway within two minutes.
  • Validation Error—Customer payment data was incorrect. For example, the payment was submitted with a misspelling in the credit card address or an incorrect CVV.
Start Month Start month of the card.
Start Year Start year of the card.
Status

The status of the card payment method.

Possible values are:

  • Active—The payment platform can use the card payment method to make payments. Active card payment methods can’t be deleted.
  • Canceled—The payment platform can’t use the card payment method to make payments. A value of Canceled can’t be changed to Active or Inactive.
  • InActive—The payment platform can’t use the card payment method to make payments. A value of InActive can be changed to Active or Canceled.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Cart Checkout Review the new B2C Commerce Cart Checkout feature in the 20.3 release. - **[Fail Order Process Optimization](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_w7122617_fail_order_optimization_as.htm&release=264.0.0&type=5)** The order failure process is optimized to reduce inventory lock times. This improvement increases order throughput in high-load situations by up to 400%. # Cart Import and Export Allow buyers to import products into a cart or export cart contents in B2B Commerce by uploading or downloading a CSV file. Buyers can use a CSV file to quickly add multiple line items to a cart without manual entry, or export a cart’s contents to a CSV file for offline review, editing, or record-keeping. Import and export uses the Cart Details component. Cart exports are subject to a daily limit of 1,000 data exports per account. To upload a CSV file for import into a new cart, buyers navigate to the Carts page and click **New Cart**, where an optional import using CSV option lets them upload a file to import. To import items into an existing cart instead, buyers go to the Carts page, click **View Options**, and then click **Import**. This opens a window, where the buyer uploads the file, maps the fields in the CSV file, and click **Start Import**. When buyers import cart items to an existing cart using a CSV file. If the cart Item ID maps to a product in the cart, then the quantity of that product in the cart is updated. If the Cart Item ID doesn’t map to a product in the cart, then the cart items are added to the cart. For imports, SKU and Quantity are mandatory fields, and products being imported and added to carts must be active on the storefront. Buyers can import up to 15 carts every 48 hours. To export the items in a cart, buyers click **View Options** and then select **Export**. They must specify an Export Name for the file, select the fields to include in the CSV file, and then click **Confirm and Export**. As with import, SKU and Quantity are mandatory export fields, and buyers can choose up to 10 additional fields to include in the export. To track exports, buyers navigate to the My Account page and click **Cart Exports** in the left navigation pane, where all exports are listed. From the page, buyers can download CSV files of exported carts, or click **Delete All Exports** to remove all cart exports at once. To remove a single export, buyers can click **Options** for a specific cart, and then **Delete Export**. Cart exports are available for 48 hours. If you turn off Export Cart, buyers can still view recent exports but can't create new exports. - **[Enable Cart Import and Export in Your B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_enablecartimportexport.htm&release=264.0.0&type=5)** Quickly import or export cart items in bulk by using a CSV file. Enable this feature for your buyers from your store settings. - **[Add Cart Import and Export Components to Your B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_addimportexportcomp.htm&release=264.0.0&type=5)** Cart import and export use the Cart Details component. If you created your B2B store before Summer ‘26, and aren’t using advanced cart management, then add the Cart Details component to the Cart page in your B2B store. #### See Also - [Enable Advanced Carts for B2B Buyers](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_enablemulticart.htm&release=264.0.0&type=5 "Configure your store to allow buyers to organize their purchases into independent project-based carts. After the advanced cart feature is enabled in your store, use Experience Builder to add advanced cart management components to your store.") - [Cart Sharing in B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_sharecartsetup.htm&release=264.0.0&type=5 "With the advanced cart management feature, B2B Commerce buyers can share a cart with other people on their account and control what each person can do with the cart. Cart sharing helps teams collaborate on an order and route it for internal approval before anyone buys.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") # Cart Options Deep Links Explore a detailed list of Point of Sale cart options deep links, each with a clear description and supported context. These links include cart, order, payment methods, transaction, product, and tender management along with discounts and rewards, loyalty programs, and payment flows. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.
Deep Link Description Supported Context
Add Product Not on File Adds products that are not on file Layouts
Custom Order Displays the custom order screen "Layouts, Hamburger Menu"
Employee Discount It will open an interstitial that allows the user to add an employee discount Layouts
Loyalty Lookup Displays the Loyalty lookup screen Layouts
Override Tax Displays the override tax screen Layouts
Product Lookup Displays the product lookup screen Layouts
Sales Attribution Displays the sales attribution screen Layouts
Set Cash Tender Displays the cash tender configuration screen "Layouts, Hamburger Menu, Notification"
Set Check Tender Displays the check tender configuration screen Layouts
Set Credit Card Tender Displays the credit card configuration screen Layouts
Set Finance Tender Displays the finance configuration screen Layouts
Set Gift Card Tender Displays the gift card configuration screen Layouts
Set Miscellaneous Tender Displays the miscellaneous configuration screen Layouts
Set Reward Tender Displays the reward configuration screen Layouts
Set Store Credit Tender Displays the tender type to store credit Layouts
Set Transaction Discount Displays the transaction discount configuration screen Layouts
Set WeChat Pay Tender Displays the WeChat pay tender configuration screen "Layouts, Hamburger Menu"
Start Redeemable Reward Payment Applies the Redeemable Reward payment Layouts
Start In Store Pay By Link Sends the in-store pay by link Layouts
Start Loyalty Reward Payment Displays the interface for the Loyalty rewards screen Layouts
Start Multi Tender Flow Starts the multi-tender flow Layouts
Start Remote Pay By Link Starts the remote pay by link Layouts
Start Standalone Transaction

Starts the standalone transaction.

Note
Note If the app configuration has a custom Cart Options layout, you must add a cell for the Standalone Transaction in that layout. Then you must set the deep link to 'Start Standalone Transaction'. Go to: CMS | Apps | Edit App | Modules | Cart | CartOptionsLayout. If the app configuration does not have a custom Cart Options layout, then go to Modules | Payments and enable Has Standalone Option to get the standalone option on the cart screen.
"Layouts, Hamburger Menu, Notification"
Switch Payment Hardware Allows switching between Tap to Pay and a peripheral card reader "Layouts, Hamburger Menu"
Tax Exempt Displays the tax exemption screen Layouts
Void Cart Before Tendering Voids cart before tendering Layouts
# Cart Sharing in B2B Commerce With the advanced cart management feature, B2B Commerce buyers can share a cart with other people on their account and control what each person can do with the cart. Cart sharing helps teams collaborate on an order and route it for internal approval before anyone buys. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note To share carts, buyers must have the Customer Community Plus license or a license with a higher level of privileges. Cart sharing is supported only when all collaborators share the same currency and pricing. Multiple currencies and user-specific pricing aren't supported. The cart owner is the buyer who creates the cart. Only the owner can share the cart, add or remove collaborators, change a collaborator's permission level, and delete the cart. These actions stay with the owner even sharing the cart. The cart owner assigns one of three permission levels to each collaborator, so reviewers can view carts, contributors can edit the cart, and purchasers can complete the purchase. - View Only: View the cart's products, pricing, and activity history. Collaborators with View Only access can't change the cart. - Edit: Add and remove items, update quantities, and edit the cart's name and description, in addition to View Only access. - Checkout: Complete the purchase, apply promo codes, and select shipping, in addition to Edit access. When a collaborator with checkout access completes a purchase, that collaborator becomes the owner of the resulting order. The order appears in the collaborator's order history, not the cart owner's. The order owner manages cancellations, returns, and reorders. The cart owner sees a cart activity entry that records who checked out the cart. The checkout URL includes the cart ID. ## Considerations - The shared cart feature is available for buyers with Buyer and Account Switcher permission sets and not the Buyer Manager permission set. - While a collaborator proceeds to checkout, the cart is locked for everyone. Other collaborators can see who's checking out and that the cart is temporarily locked. The lock releases automatically when the checkout session expires, after 48 hours. To release the lock early, the collaborator who started checkout can edit the cart or add items to a cart. - When a cart owner removes access, the cart no longer appears in the collaborator's cart list. - **[Enable Cart Sharing](https://help.salesforce.com/s/articleView?id=commerce.comm_enablecartsharing.htm&release=264.0.0&type=5)** Enable buyers to share carts in your B2B Commerce store from the store settings. Turn on this setting to ensure that buyers can share carts with other collaborators. You can also view shared cart history and track collaborator actions using the Shared Cart Activity component. #### See Also - [Enable Advanced Carts for B2B Buyers](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_enablemulticart.htm&release=264.0.0&type=5 "Configure your store to allow buyers to organize their purchases into independent project-based carts. After the advanced cart feature is enabled in your store, use Experience Builder to add advanced cart management components to your store.") - [Cart Import and Export](https://help.salesforce.com/s/articleView?id=commerce.comm_cartimportexport.htm&release=264.0.0&type=5 "Allow buyers to import products into a cart or export cart contents in B2B Commerce by uploading or downloading a CSV file. Buyers can use a CSV file to quickly add multiple line items to a cart without manual entry, or export a cart’s contents to a CSV file for offline review, editing, or record-keeping. Import and export uses the Cart Details component. Cart exports are subject to a daily limit of 1,000 data exports per account.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") # Case Sensitivity in Coupon Data API for OCAPI 21.9 The Coupon Data API allows the `case_insensitive` property to be set during coupon creation, and the `multiple_codes_per_basket` property to be set during coupon creation and update. # Cash Register Deep Links Explore a detailed list of Point of Sale cash register deep links, each with a clear description and supported context. Links include features for cash management, reporting, transactions, and cash register operations. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. ## Cash Register
Deep Link Description Supported Context
Bank Deposit History Displays a list of completed bank deposits "Hamburger Menu, Layouts"
Current Cash Drawer Opens a cash drawer session or views the cash drawer details, Pick up cash from active cash drawer, Cash audit of a till "Hamburger Menu, Layouts, Tab"
Drawer History Views the drawer sessions initiated from the device "Hamburger Menu, Layouts, Tab"
Fiscal X Report Displays a mid-shift snapshot of the sales, returns, voids, discards, and other register activity that occurred on the register from the beginning of a register shift until the present moment "Hamburger Menu, Layouts"
Fiscal Z Report Displays an end-of-shift overview of the sales, returns, voids, discards, and other register activities that took place during a register shift, from open to closing "Hamburger Menu, Layouts"
No Sale Transaction Opens the cash drawer and records a "No Sale" transaction in the backend "Hamburger Menu, Layouts"
Open Drawer Opens the cash drawer "Hamburger Menu, Layouts"
Reconcile Till Solely used for Voice Command and should not be used as a deep link. Please use 'Reconcile mPOS Tills' for deep link usage. Voice Command
Reconcile mPOS Tills

Reconciles all mPOS tills.

Note
Note This can only be used by a role on the manager level.
"Hamburger Menu, Layouts"
Safe Management Takes the user to the 'Safe Management' screen "Hamburger Menu, Layouts"
Sales History For Cash Register Displays the sales history of the cash register based on a particular date and time "Hamburger Menu, Layouts, Tab"
# Catalogs for a Store A B2B Commerce store must have only one catalog that represents the entire collection of products offered through your store. To make it easier for shoppers and buyers to find products, you can group them into categories. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Create a Catalog and Assign It to a Store](https://help.salesforce.com/s/articleView?id=commerce.comm_catalog_create_assign.htm&release=264.0.0&type=5)** Before you can make products available to buyers and shoppers, your B2B Commerce store must have a catalog. A catalog is the entire collection of products that you offer through your store. When you create a store, a default catalog is assigned to the store. You can use the default catalog or assign a different catalog to the store. You can assign a catalog to more than one store, but a store can have only one catalog at a time. - **[Verify That a Catalog Is Assigned to the Store](https://help.salesforce.com/s/articleView?id=commerce.comm_store_catalog_verify.htm&release=264.0.0&type=5)** Your B2B store must have an associated catalog. - **[Use External Product Media URLs in B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_productmediaurls.htm&release=264.0.0&type=5)** Add external URLs for product media instead of uploading them to Salesforce CMS. This feature is useful for large catalogs, where adding media for every product to Salesforce CMS individually can take days. This setting applies to all stores in your org, affects only product media (not category media, which continues to use Salesforce CMS), and takes effect immediately. After you enable the feature, add media URLs directly on the product. - **[Product Readiness](https://help.salesforce.com/s/articleView?id=commerce.comm_product_readiness.htm&release=264.0.0&type=5)** Improve your customers’ shopping experience with a comprehensive, consistent level of detail for all products on your B2B storefront. Use Product Readiness to find any products that are missing important elements that can make the product difficult for a customer to understand and purchase. Ensure that all the products in a catalog are storefront ready before you set the catalog to live. - **[Manage Product Readiness for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_product_readiness.htm&release=264.0.0&type=5)** Product Readiness is available in the Product Workspace. Anytime a custom rule set is enabled or disabled, build an initial score for your catalogs. - **[Prepare Your B2B Store Catalog with Product Readiness](https://help.salesforce.com/s/articleView?id=commerce.comm_prepare_catalog_product_readiness.htm&release=264.0.0&type=5)** Before activating your catalog, run Product Readiness. After checking all products in the catalog against the default rule set, Product Readiness displays which products still need some attention. # Categorize Products for Discoverability in Your B2B Stores Categories make products easier to discover in searches and through navigation. Build a category structure that shows product relationships and makes products easier to find. When you create a store, a default catalog with one Products category is assigned to the store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Build your category structure using these elements: - Categories - Filters - Values Map out your structure before you create it. Keep it as simple as possible without sacrificing product discoverability. ## Categories A category represents the top-level classification of your products or services, for example, furniture, tools, and garden. You can create up to 15,000 categories, and up to five levels of categories and subcategories. You can also assign one of the categories as primary. A store uses the primary category to construct paths for breadcrumbs on the Product Detail page. When you create a category, you can choose whether to include it in menus and in which order it appears on the navigation menu and in filters. You can assign a product to more than one category. For example, a buyer who navigates your store can find chairs and tables under both Furniture and Garden. ## Filters A filter represents an attribute of a product in the category. For example, the chairs subcategory has filters for maker, style, and fabric. A filter is derived from the fields on a product record. You choose which product fields act as filters. ![Diagram of filters on a subcategory](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/categories_2.png) ## Values A value describes a filter’s available options. For example, the chair fabric options include brocade, broadcloth, and leather. A value is derived from the fields on a product record. If a filter has values, the values appear under the parent filter on the results page. ![Diagram of values under a filter](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/categories_3.png) #### See Also - [Create Product Categories and Subcategories in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_create.htm&release=264.0.0&type=5 "Organize products into categories and subcategories to enhance product discoverability. Providing a structure improves search and navigation, making it easier for customers to find what they’re looking for.") # Category Search Pipeline Redirects to SEO-Friendly Category URL A category search pipeline URL with the "cgid" parameter now automatically redirects to the SEO-friendly URL defined in the URL Rules module or category URL override. The change results in a new behavior for URL redirect, while retaining and improving the SEO value of URLs. For example: A request for Womens category `https://localhost/s/SiteGenesis/search?cgid=womens&lang=en_US` redirects to the SEO-friendly URL `https://localhost/s/SiteGenesis/womens/?lang=en_US` as defined in Business Manager URL Rules. # Cell Configuration in Layouts Learn about the different ways that cells can be configured in Point of Sale layouts with content and interactive behavior. Before reading this topic, it's recommended that you review the related articles. - For information on how to create and edit rows and cells within a layout, refer to [Layout Editor](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_editor.htm&release=264.0.0&type=5 "Easily manage and customize your layout in Point of Sale with powerful editing tools. Add, insert, resize, and delete rows and cells, and adjust cell padding for precise control. Enhance user experience with features like Paginate for full-screen views, override app config settings for tailored UI options, and Snap to Grid for accurate overlay alignment."). - For information on creating and publishing layouts, refer to [Create and Publish Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_process.htm&release=264.0.0&type=5 "Learn how to create and publish layouts using the Point of Sale Layout Editor, including starting from a blank layout or a template, and managing live versions, drafts, and scheduling. Discover how to edit, save, publish, and restore layouts, ensuring your content is always up-to-date and tailored to your needs."). After you've finished reading this article, see [Create a Category Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_category.htm&release=264.0.0&type=5 "Learn how to design a visually engaging category page in Point of Sale that contains six images and product search deep links.") for information on creating a category layout with six images and product search deep links. ## Deep Links Deep links launch specific views within an app, enabling customized rendering options. For instance, a product search deep link can set the search query and a layout deep link can control the visibility of the tab bar, enhancing user navigation and experience. To set a deep link inside the Layout Editor: 1. Select a cell. 2. Click **Deep link** in the toolbar.![The Layout Editor shows the toolbar with the deep link option highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_cell_config_deep_link_in_toolbar.png) ## Product Search Deep Link A product search deep link takes the user to the search screen (aka PLP) and performs a product search. For more details about the configuration, refer to [Product Search Deep Link](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_product_search.htm&release=264.0.0&type=5 "The Point of Sale product search deep link lets users initiate a product search from multiple access points. Users can launch product searches from a layout, a tab, the hamburger menu, a notification, or even an Instagram post. With a configurable search, users can quickly find the products they need, enhancing their shopping experience."). ![Two POS app renderings in an iPhone show navigation from a tops category to search results for tops.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_cell_config_prod_search_dl.png) ## Layout Deep Links A layout deep link takes the user to a layout. There are options to customize the user experience, e.g., hiding the tab bar or specifying how the layout should transition into the current view. For more details on the available deep links, refer to [Deep Links Comprehensive List](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_layout.htm&release=264.0.0&type=5 "Explore a detailed list of Point of Sale layout deep links, each with a clear description and supported context. Links include features for customer information and general layouts. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations."). ![Two screenshots of the POS app on an iPhone show the transition to a layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_cell_config_layout_dl.png) ## Video Deep Link This feature can present a static image and transition to a video if "Play In Place" is checked in the video deep link. To set a video deep link inside the Layout Editor: 1. Select a cell. 2. Select **Deep link** | **Media** | **Video URL**. 3. Fill out the URL. 4. Check or uncheck **Play In Place**. 5. Click **Set**. When the video is present, it behaves like this in a scroll view: - If the user scrolls away, the video pauses. - If the user scrolls back, the video continues playing. - If the user goes to a different screen and comes back, the initial static image it displayed. - When the video ends, the initial static image is displayed. The attributes of Play in Place: - Audio control - Muted, but the user has the option to unmute. - Muted, there's no option to unmute. - Unmutes when the video is fully visible. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important A video deep link with unchecked Play In Place full-screens the video on another screen. ## All Other Deep Links For information on other deep link types, refer to [Create Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links.htm&release=264.0.0&type=5 "Quickly navigate Point of Sale with a detailed list of deep links and their supported uses, empowering users to access specific features and streamline retail tasks. By using these direct links, retailers can enhance efficiency and provide customers with faster access to key functionalities within their accounts. Explore how each link simplifies navigation and improves the overall user experience."). The section is organized similarly to the menu in the deep link picker. ## Inline Deep Links A deep link takes the user to another view, an inline deep link renders content inside the current view. To create an inline deep link in the Layout Editor: 1. Select a cell. 2. Expand Cell Content. 3. Click **Inline Deeplink.** 4. Select a deep link type from the dropdown. 5. Configure the deep link and click **SET**. ## Product Search Inline Deep Link This inline deep link performs a product search and shows the search results in a horizontally scrollable row. ![Example of an inline product search in the POS app on an iPhone.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_cell_config_prod_search_inline_dl.png) ## All Other Inline Deep Links For details on the different types of inline deep links, refer [Add Inline Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_inline.htm&release=264.0.0&type=5 "Use inline deep links in Point of Sale to render content inside the current screen. This capability keeps users engaged by providing relevant information without navigating away from their current task. Enhance user experience and streamline workflows by embedding content directly within the interface. Boost productivity and provide seamless access to essential resources."). ## Product The product list inlines a product into the layout. However, if the product changes (e.g., after a new feed runs) the layout will still have the old product information. To inline a single product inside the Layout Editor: 1. Select a cell. 2. Expand Cell Content. 3. Click **Product**. 4. Select a product and click **Save.** ## Promotion This feature shows an image that calls out a promotion that the user can tap to see additional information about the promotion (e.g., a barcode to redeem). First, make a promotion in the CMS: 1. In the CMS, go to **Promotions**. 2. Select a type of promotion. 3. Complete all required fields and click **SAVE**. Next, add the promotion in the Layout Editor: 1. Select a cell. 2. Expand Cell Content. 3. Click **Promotion.** 4. Select a promotion and click **Save**. ## Form Element Form elements are used to create custom forms for pages, e.g., sign up and log in. To add a form element: 1. Select a cell. 2. Select **Cell Content** | **Form Element** from the toolbar. 3. Select the type of form element. 4. Complete the required fields and click **SET**. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip To edit a form element, double-click the cell. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important The login layout template includes several form elements.![The Layout Editor shows an example of the login layout template.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_cell_config_form_element.png) These form elements are configurable in the Layout Editor: - Button: Used as a CTA to trigger events, e.g., log in or sign up. Buttons are usually configured with a Button Action that corresponds with an API request and a Deep Link that specifies where the user is taken after the API request finishes. Refer to the table for the use cases of the Button Actions. - Checkbox: Used for checkboxes in forms, e.g., opting into a newsletter. - Date Picker: Used for birthdays or other date inputs. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Don't make the birthday field mandatory in sign-up forms or the app build will get rejected by Apple. - Age verification value may be used to validate the birth date. For more information, go to [Age Verification](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_cell_config.htm&release=264.0.0&type=5). - Dropdown List: Used for lists, e.g., states. If creating a lengthy dropdown list it is best to prepare a CSV of the options to upload. Refer to the [States.csv](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/states.csv) file. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Key and Display Name values must be configured to view this field on the app. - Password Field: Used on account creation and login pages. - Phone Number Field: Used on customer sign-up page. - Text Input: Used to enter first name, last name, address, city, and other text inputs. - Username Field: Used on the log-in page. - Enable Terminal Input - When enabled, this field will allow user input from the terminal device. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This is only applicable to app versions greater than or equal to 8.5.1.
Button Action Description
Accept Finance Agreement Customer agrees and accepts finance agreements. See Processing Synchrony Credit Card Purchases via Adyen.
Check Current Order Status Checks the order status.
Clear Form Clears the form.
Complete Profile Completes the customer's profile.
Decline Finance Agreement Customer declines finance agreements and returns the user to the cart. See Processing Synchrony Credit Card Purchases via Adyen.
Email Sign Up Signs up the customer with their email.
Forgot Password Gets the forgotten password.
Get Loyalty Identifier Gets the Loyalty Identifier.
Get Profile Gets the customer's profile.
Inventory Panel Gets the inventory panel.
Login Logs the customer in.
Loyalty Enroll Enrolls the customer in the Loyalty tier.
None (Configure Deep link Below) The configured deep link action.
Notify Me Notifies the customer of a certain product or collection.
Quiz Continue Continues the quiz.
Quiz Submit Submits the quiz.
Redeem Points Redeems points.
Resend Payment Link Resends the payment link.
Reset Password Resets the password.
Save Customer Info to Cart Saves the customer's information to the cart.
Save Not on File Product Saves a product that is not on file.
Save Profile Saves the profile so that the customer may go back to make changes before completing it.
Select Profile Picture Selects the profile picture that is chosen.
Share Quiz Shares the quiz.
Signup Signs up the customer.
Signup Without Auto Login Signs up the customer without auto logging in.
Start Chat From Quiz Starts a chat from the quiz.
Store Associate Clienteling Gets the associate's clientele.
Store Associate Login Logs the associate in.
Submit Review Submits the review.
Submit Product Form Submits the Product Form answers.
Terminal Input

Launches inputs on the terminal. When this is tapped, the terminal will cycle through all the fields with Enable Terminal Input on and collect the appropriate data for each one.

Note
Note This is only applicable to app versions greater than or equal to 8.5.1.
Update Loyalty Preferences Updates the Loyalty preferences.
Skip Customer Login

Continues the checkout flow when launched from Unified Cart tendering flow. From other screens, it will behave as a back button. Button action is only applicable in the context of Client Search Layouts.

Note
Note This is only applicable to app versions 8.9.1 and above.
## Age Verification This type of form element can be added to a layout to verify the age of, for example, a new customer. When the minimum age requirement is provided, the POS app will check that the date entered by the customer meets the age requirement from the current date. If the customer does not meet the age requirement, then an error message will display (also configured in CMS). - In CMS, go to **Layouts Pages** | **All Layouts.** - Select the layout to add the field to and click **Edit**. - Add or select a cell. - In the tool menu, go to **Cell Content** | **Form Element**. - Under Form Element Type, select **Date Picker**. - Under **Age Verification**, enter the minimum age requirement for a new customer. - Under **Validation Error Message**, enter a message to display if the date entered does not meet the age requirement. - Click **Set** and **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note By default, under Date Format, mm-dd-yyyy is the only allowed format. This means that it will automatically update the date format to mm-dd-yyyy when configuring the Age Verification field.![A screenshot shows an example of the age verification dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_cell_config_age_verification.png) ## Effects ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important You must have an iOS version greater than 5.9.2r19155 for these features to work. ## Layering of Images and Text Overlay Cells (images and text) can be layered via the CMS. To Layer Images and Text: 1. Select an overlay cell. 2. Select **Cell Operations**. 3. Select **Send Backwards** or **Send Forward** from the toolbar. ## Parallax Overlay Cells (Images and Text) can have a parallax effect added to them. Parallax is an optical illusion of different layered elements moving faster or slower than another layer. Note, since the views start the parallax effect when they become visible the distance traveled on the phone will be different between different screen sizes. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Cell overlays do not support hyperlinks. If a URL must be included in a layout, use [URL deep links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_url.htm&release=264.0.0&type=5 "Discover the Point of Sale URL deep link. Use this link to help users open a URL, enhancing their experience and streamlining retail operations.") instead. To add parallax to an overlay cell: 1. Select an overlay cell. 2. Select **Cell Overlays** | **Parallax** from the toolbar.![The Layout Editor showing values for the definition of parallax animation.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_cell_config_parallax.png) 3. Y Value is the top of the overlay's cell Y position. 4. Speed is how fast the overlay cell will get to the Y Destination. 5. Y Destination must be less than the current Y Value. It is the max Y position the cell overlay will end up. The minimum Y Value is 0. You will see the values and inputs as the following: - Current Y Value: - Inputs - Speed - Y Destination In this example, you can see the overlay cell in the left image is lower and as the user scrolls down the page the image moves higher in the parent cell.![The start and end of a parallax animation.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_cell_config_parallax_demo.png) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Rather than the first layer moving at a different speed one can make the background images move at different speeds using overlay cells. ## Scroll-base Effects To add a fade-out/fade-in effect to a cell: 1. Select a cell. 2. Select **Cell Overlays** | **Scrollbase** from the toolbar. You see these inputs: End Media Cell and Animation Trigger Point. - End Media Cell is the final image the cell will transition to. - Animation Trigger Point has the following values: TOP, MIDDLE, BOTTOM. See the table to understand the values. | Trigger flag | Behavior (scroll down) | Counter Behavior (scroll up) | | --- | --- | --- | | TOP | When the cell's top reaches the top of the viewport it triggers the animation. | When the cell's top moves off the top of the viewport it triggers the animation. | | MIDDLE | When the cell's top will reach the middle of the viewport it triggers the animation. | When the cell's top moves off of the middle of the viewport it triggers the animation. | | BOTTOM | When the full cell is visible in the viewport it triggers the animation. | When the full cell is visible in the viewport it triggers the animation. | In this example, the trigger flag is set to the middle and the end media cell is the lion wallpaper for the overlay cell.![The start and end of a scroll based animation.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_cell_config_scroll_demo.png) ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Example feeds: [States.csv](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/states.csv) # Certify Legacy Card Reader Conduct validation tests to certify a legacy card reader for a supported vendor for the POS app. Verify if the new model is from one of the existing supportec vendors (e.g., Adyen, Verifone, Elavon, Fiserv). Refer to the appropriate [Configure and Manage Barcode Scanners](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_barcode_scanners.htm&release=264.0.0&type=5 "Setup barcode scanners to capture and enter data into the Point of Sale (POS) app. Improve data accuracy, save time, and increase productivity.") article for setup instructions. Please note that introducing a brand-new vendor requires a significant effort, including the development of a detailed project plan to ensure feature parity. Files: [Card Reader Test Cases](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/PaymentTerminalTestCases.pdf) # Certify Legacy Cash Drawers Conduct validation tests to certify a legacy cash drawers for a supported vendor for the POS app. For cash drawers setup details, refer to appropriate article in [Configure and Manage Cash Drawers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_cash_drawers.htm&release=264.0.0&type=5 "Connect a supported cash drawer to the Point of Sale (POS) app to manage transactions and track cash flow. Streamline the checkout process and reuce errors.").Test against product from all the supported printer vendors. For a comprehensive list of test cases, refer to [Files](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_legacy_cash_drawers.htm&release=264.0.0&type=5). For standalone IP cash drawers, such as APG, a printer connection is not required. 1. Confirm that the setup process is correct. 2. Test the printer using the vendor’s app ([TM Utility](https://apps.apple.com/us/app/epson-tm-utility/id726122574) for Epson and [StarQuickSetup](https://apps.apple.com/us/app/star-quick-setup-utility/id1549088652) for Star) available on the App Store. 3. Connect to the printer and perform printer operations followed by opening the cash drawer. If the setup is correct but problems persist, verify whether there is an open POS bug. If the issue remains unresolved, contact Salesforce Customer Support. Files: [Cash Drawer Test Cases](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/CashDrawerTestCases.pdf) # Certify Legacy Hardware for POS App To use legacy hardware from one of the supported manufacturers with the Point of Sale POS app, self-certify printers, scanners, cash drawers, and card reader terminals. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Contact Salesforce Customer Support if attempting to certify a device that requires additional SDK integrations. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Introducing a new vendor requires a significant effort, including the development of a detailed project plan to ensure feature parity. - **[Certify Legacy Printers](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_legacy_printers.htm&release=264.0.0&type=5)** Conduct validation tests across all supported interfaces (IP, Bluetooth, and USB) to certify a supported vendor's legacy printer for the POS app. - **[Certify Legacy Scanners](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_legacy_scanners.htm&release=264.0.0&type=5)** Conduct validation tests to certify a supported vendor's legacy scanner for the POS app. - **[Certify Legacy Cash Drawers](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_legacy_cash_drawers.htm&release=264.0.0&type=5)** Conduct validation tests to certify a legacy cash drawers for a supported vendor for the POS app. - **[Certify Legacy Card Reader](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_legacy_card_readers.htm&release=264.0.0&type=5)** Conduct validation tests to certify a legacy card reader for a supported vendor for the POS app. - **[Troubleshoot Legacy Hardware Certification in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_legacy_troubleshooting.htm&release=264.0.0&type=5)** Take these steps if you're unable to certify hardware before contacting the hardware vendor. #### See Also - [_Salesforce Help:_ Supported Hardware for Point of Sale on iOS](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") # Certify Legacy Printers Conduct validation tests across all supported interfaces (IP, Bluetooth, and USB) to certify a supported vendor's legacy printer for the POS app. To certify new printer models, first verify if the model is from a supported vendor (Epson or Star). For existing documentation on printer setups and troubleshooting, refer to the relevant [Configure and Manage Printers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_printers.htm&release=264.0.0&type=5 "Configure printers to produce customer documents from the Point of Sale (POS) app. Show the printer name instead of the MAC address.") articles. Create separate test cases for each interface. For a comprehensive list of test cases, refer to [Files](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_legacy_printers.htm&release=264.0.0&type=5). If you encounter issues while setting up the printer, follow these steps. 1. Confirm that the setup process is correct. 2. Test the printer using the vendor’s app ([TM Utility](https://apps.apple.com/us/app/epson-tm-utility/id726122574) for Epson and [StarQuickSetup](https://apps.apple.com/us/app/star-quick-setup-utility/id1549088652) for Star) available on the App Store. 3. Connect to the printer and check printer operations, including receipt printing. If the setup is correct but problems persist, verify whether there is an open POS bug. If the issue remains unresolved, contact Salesforce Customer Support. Files: [Printer Test Cases](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/PrinterTestCases.pdf) # Certify Legacy Scanners Conduct validation tests to certify a supported vendor's legacy scanner for the POS app. Conduct validation tests across all supported interfaces (Bluetooth and USB). Create separate test cases for each interface. For a comprehensive list of test cases, please refer to [Files](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_legacy_scanners.htm&release=264.0.0&type=5). If a scanner require a USB connection using Star or Epson printers, validate compatibility with both printer brands. 1. Confirm that the setup process is correct. 2. For USB scanners requiring a printer connection. 1. Test the printer using the vendor’s app ([TM Utility](https://apps.apple.com/us/app/epson-tm-utility/id726122574) for Epson and [StarQuickSetup](https://apps.apple.com/us/app/star-quick-setup-utility/id1549088652) for Star) available on the App Store. 2. Connect to the printer and perform printer operations followed by a scan test. 3. If using an Epson printer and the scanner beeps upon scanning but the barcode does not appear in the app, perform the following: - Locate the Quick Start Guide for the Zebra scanner model (search online if necessary). - Scan the Set Defaults or Set Factory Defaults barcode. - Scan the USB Keyboard HID barcode. - Scan the Add Enter Key, CR/LF, or Carriage Return / Line Feed barcode (depending on the model, this could be one barcode or a sequence for setting the Enter Key). 3. For non-USB scanners 1. Test the scanner using the vendor app ([SocketMobileCompanion](https://apps.apple.com/us/app/socket-mobile-companion/id1175638950) for Socket and [Zebra Scanner Control](https://apps.apple.com/us/app/zebra-scanner-control/id6499543371) for Zebra) available on the App Store. 2. Connect to the scanner and check scanning operation. If the setup is correct but problems persist, verify whether there is an open POS bug. If the issue remains unresolved, contact Salesforce Customer Support. Files: [Zebra Barcode Scanner Test Cases](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/ZebraBarcodeScannerTestCases.pdf), [Socket Barcode Scanner Test Cases](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/SocketBarcodeScannerTestCases.pdf) # Change Customer Passwords with the Headless Commerce API To provide this functionality, we updated the OCAPI Shop API `PUT customers/{customer_id}/password` endpoint to change the password in the PUT call instead of in the afterPUT hook. The Headless Commerce API doesn’t allow hooks. Also, the `dw.ocapi.shop.customer.password.afterPUT_v2` extension point replaces the `dw.ocapi.shop.customer.password.afterPUT` extension point. If you have customizations for this resource, update your code accordingly. #### See Also - [Shop API Customers Resource](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/OCAPI/current/shop/Resources/Customers.html) # Change Inventory Allocation with `dw.catalog.ProductInventoryRecord` With compatibility mode 21.7, you can change inventory allocation and prevent undesired allocation changes during storefront and shopper calls. How: The `dw.catalog.ProductInventoryRecord` class has these updates. - The already-deprecated method `getOnHand()` has been removed. - The allocation amount now requires a reset date. For this reason, the `setAllocation(allocationAmount, allocationResetDate)` method has replaced `setAllocation(allocationAmount)`, which has been removed. - Product inventory records are now read-only in a storefront context, so you can no longer call these methods within a storefront context: - `setAllocation(allocationAmount, allocationResetDate)` - `setBackorderable(boolean)` - `setInStockDate(Date)` - `setPerpetual(boolean)` - `setPreorderable(boolean)` - `setPreorderBackorderAllocation(double)` # Change Logs Show Executing User's Email Address The change log now display the executing user's email address. Change logs can be found on the user detail page, API client detail page, organization detail page, and account information page. # Change of Identity Management for Commerce Cloud GitHub Repositories We're simplifying how users access the Commerce Cloud GitHub repository. Access is now direct via Commerce Cloud Account Manager. Previously, access required users to register a GitHub account. This change only affects resources that require Commerce Cloud accounts. Any resources that are publicly available can still be accessed using any GitHub account. How: As of June 30, 2020, we encourage all users to log in via SSO to ensure that your account does not get removed. To do so, find the link on the Salesforce Commerce Cloud repository homepage or see [Single sign-on to Salesforce Commerce Cloud](https://github.com/orgs/SalesforceCommerceCloud/sso). On July 31, 2020, members who have not authenticated via Commerce Cloud Account Manager will receive an email from GitHub notifying them about account removal, with a link to authenticate. When it’s authenticated, all previous permissions are restored. # Change Shipping Details for a Fulfillment Order You can change the shipping method and shipping address at any time before an order is fulfilled. ### Required Editions
View supported editions.
1. From the Navigation bar, open the Fulfillment Orders list view page. 2. Select a fulfillment order number, and open the corresponding fulfillment order record. You can also open a fulfillment order directly from the associated order summary. 3. On the upper right of the Fulfillment Order page, click ![The Action menu drop-down arrow.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/actions_button.png) and select **Edit**. 4. Enter the new shipping details. 5. Save your changes. By default, the fulfillment order and order product summary aren’t updated to reflect changes to shipping costs and tax amounts that result from the shipping updates. You can use customization to update shipping costs, but tax updates to the fulfillment order aren't supported. #### See Also - [Order Fulfillment](https://help.salesforce.com/s/articleView?id=commerce.om_order_fulfillment.htm&release=264.0.0&type=5 "The order fulfillment process streamlines the allocation, assignment, picking, packing, and shipment of order items.") # Change the Status of a Fulfillment Order Typically, the status of a fulfillment order updates automatically as the order moves through the fulfillment workflow. If needed, you can also update the status manually if the order hasn’t yet been fulfilled. However, you can’t go back to a status that’s already been passed in the workflow. ### Required Editions
View supported editions.
1. From the Navigation bar, open the Fulfillment Orders list view page. 2. Select the fulfillment order number, and open the corresponding fulfillment order record. You can also open a fulfillment order directly from the associated order summary. 3. On the upper right of the Fulfillment Order page, click ![The Action menu drop-down arrow.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/actions_button.png) and select **Edit**. 4. Select a new status for the fulfillment order. 5. Save your changes. #### See Also - [Order Fulfillment](https://help.salesforce.com/s/articleView?id=commerce.om_order_fulfillment.htm&release=264.0.0&type=5 "The order fulfillment process streamlines the allocation, assignment, picking, packing, and shipment of order items.") - [Fulfillment Processes and Flows](https://help.salesforce.com/s/articleView?id=commerce.om_fulfillment_processes_and_flows.htm&release=264.0.0&type=5 "Order Management includes an unmanaged package containing sample flows and processes. The samples demonstrate how you can create a fulfillment process to allocate order items to a fulfillment location and generate a fulfillment order.") # Changes to AI Credit Consumption AI usage for certain Salesforce B2C Commerce features no longer consumes credits. Previously, AI usage for this feature consumed Einstein Requests. - Commerce Concierge (Shopper Copilot) Although AI usage for this features no longer consumes Einstein Requests, other services such as Data Cloud services can still consume other types of credits. **Where:** This change applies to B2C Commerce. **When:** This change is available starting in October 2025. # Changes to eCDN WAF Log Updates The eCDN WAF log delivers more comprehensive data to provide additional insights into WAF rules that are triggered. We added fields about the firewall type and any actions performed by WAF and removed fields made obsolete. The new WAF fields enable you to self-diagnose your environment and investigate the reason a WAF rule triggered. In addition, we added a field that indicates whether assets were cached on the eCDN. The following table lists the new and removed eCDN WAF log fields. | New Fields | Removed Fields | | --- | --- | | FirewallMatchesSources | WAFMatchedVar | | FirewallMatchesActions | WAFRuleMessage | | FirewallMatchesRuleIDs | WAFFlags | | cacheStatus | WAFAction | |   | WAFRuleID | |   | WAFProfile | For your convenience, both versions of the eCDN WAF log are available in this release. You can access the new log format using either Business Manager or OCAPI. - Business Manager—Using the eCDN Settings window in Business Manager to generate logs provides links in two separate emails. One email provides the download link to the new log version. Another email provides the download link to the older log version. - OCAPI—Include new\_log\_fields: true in the OCAPI request body section. ```javascript POST https//.demandware.net/s/-/dw/data/v18_8/log_requests/ecdn HEADER Authorization: Bearer aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa REQUEST BODY {zone_name: "redcliff.de", start_time: "2018-10-04T10:00:00.000Z", end_time: "2018-10-04T11:00:00.000Z", new_log_fields: true} ``` ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Both versions of the eCDN WAF log are available in this release. We will phase out the older log file version in a future release. # Changes to eCDN WAF Log Updates We modified the eCDN WAF log in the 20.1 B2C Commerce release to deliver more comprehensive data and provide added insights into WAF rules that are triggered. We provided a legacy and a new version of the eCDN-WAF log. In this release, we phased out access to the legacy eCDN-WAF Log version. For additional information, see [eCDN-WAF Log OCAPI References](https://help.salesforce.com/s/articleView?id=cc.b2c_waf_log_ocapi_references.htm&type=5&language=en_US). # Charge Return and Cancel Fees You can charge fees for an order item being returned or canceled. Create one or more products to represent the fees, then implement a return or cancel process that handles them. - **[Create Return and Cancel Fee Products](https://help.salesforce.com/s/articleView?id=commerce.om_create_return_fee_products.htm&release=264.0.0&type=5)** For each type of fee that you want to charge, create a product record and one price book entry for each supported currency. The actual price doesn’t matter, because you specify the fee amount when you create a return order or process a simple return or cancel. - **[Return and Cancel Fee Processes](https://help.salesforce.com/s/articleView?id=commerce.om_return_fee_process.htm&release=264.0.0&type=5)** To charge a fee on a return order line item during an RMA return, include the fee when creating the return order and process it when returning the return order line item. To charge a fee on a simple return or cancel, include it when submitting the return or cancel. # Chat Deep Links Explore a detailed list of Point of Sale chat deep links, each with a clear description and supported context. Links include bold and live chat. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.
Deep LinkDescriptionSupported Context
Bold ChatBrings the user to the bold chat page"Layouts, Hamburger Menu, Notification, Tab"
Live ChatBrings the user to the live chat page"Layouts, Hamburger Menu, Notification, Tab"
# Check Configuration for Secure Code Uploads Two-factor authentication (2FA) for code uploads to the staging instance is required. Direct code uploads to the production instance aren’t allowed. Starting August 10, 2020, we automatically make configuration changes to meet these requirements on instances not in compliance. How: To check current access settings for code uploads, go to **Administration** | **Site Development** | **Development Setup**. The message under the **WebDAV Access/Cartridges** heading indicates whether code upload is allowed or disallowed on production instances and whether a client certificate is required on staging instances. To set access settings for code uploads, go to **Administration** | **Global Preferences** | **Security** | **Access Restriction**. On the staging instance, select **Require Client Certificate for Code Uploads**. On the production instance, select **Disallow code uploads**. After an administrator configures these settings, the option to revert the settings is no longer visible on the Access Restriction page. Only Salesforce Customer Support can revert the settings. #### See Also - [Configure Secure Code Uploads](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/site_development/b2c_configure_secure_code_uploads.html) - [Two-Factor Authentication for Code Uploads FAQs](https://org62.my.salesforce.com/sfc/p/#000000000062/a/0M0000003Ajx/96aX1FkCc2mhRGH9zID7OkFEFH5f2axAc8l9odVP4V8) # Check for Active Process Exceptions When a process exception occurs, Order Management creates a process exception record and generates a notification that appears at the top of the associated Order Summary page. The process exception typically states the problem that requires user review or intervention. Your business logic and workflows determine whether to continue processing an order summary when an exception occurs. When necessary, you can suspend order processing until the issue is reviewed and resolved. ### Required Editions
View supported editions.
1. To check for process exceptions across all order summaries, open the Order Summaries list view page from the Navigation bar. If a process exception exists on an order summary, a warning icon appears next to the order summary number in the list view. 2. To see a list of all active and resolved process exceptions, open the Process Exceptions list view page from the Navigation bar. #### See Also - [View Process Exception Details](https://help.salesforce.com/s/articleView?id=commerce.om_view_a_process_exception.htm&release=264.0.0&type=5 "A process exception record contains details about the cause of the processing failure.") - [Create a Process Exception](https://help.salesforce.com/s/articleView?id=commerce.om_create_a_process_exception.htm&release=264.0.0&type=5 "Create a process exception to manage a processing issue that isn’t automatically identified by your order management processing business logic.") - [Identify the Cause of a Process Exception](https://help.salesforce.com/s/articleView?id=commerce.om_identify_cause_of_a_process_exception.htm&release=264.0.0&type=5 "Process exceptions can occur at any stage in the order lifecycle. Identifying the cause of a process exception is the first step toward resolving the issue.") - [Resolve a Process Exception](https://help.salesforce.com/s/articleView?id=commerce.om_resolve_a_process_exception.htm&release=264.0.0&type=5 "After you identify the cause of a process exception, you can resolve the issue and continue normal processing on the order summary.") # Check for Customization with SCAPI Two new SCAPI response headers are available to check for custom requests and resulting hook execution errors. 1. `sfdc_customization`–indicates whether customization has been applied during the request execution. Currently, the only possible value for the header is “HOOK”, which indicates that a hook execution was registered. 2. `sfdc_customization_error`–if the value is “1", an error occurred within a hook execution. # Check Identity Verification Status Quickly view your identity verification status within Point of Sale CMS. Find domain verification details, including TXT and CNAME records, directly in the Email Integration settings. Copy these values and publish them to your domain's DNS provider within 72 hours to verify your domain and ensure seamless email integration. Email verifications do not require further action. Check your identity verification status in Point of Sale CMS. 1. Go to **Integrations** | **Email Integration**. 2. Tap **View** under Verification Info. 3. The window displays the verification status. For domain verifications, the window also displays the text (TXT) and canonical name (CNAME) records. Copy the values and publish them to your domain’s Domain Name System (DNS) provider to verify your domain. No further action is needed for email verifications.![A screen showing the status of pending domain verifications.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_email_verify_status.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important For domain verification, you have up to 72 hours to publish the TXT and CNAME values to your DNS provider. #### See Also - [_Salesforce Help:_ Verify Domain or Email Identities](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_email_verify.htm&release=264.0.0&type=5 "Verify your domain or email address in Point of Sale CMS to begin the verification process. Verifying domains and email addresses confirms that you own them for secure, reliable communication.") - [_Salesforce Help:_ Set Up Your System for Email Communications](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_email.htm&release=264.0.0&type=5 "To send emails using Point of Sale, you must verify that you’re authorized to use an email address, domain, or both for each region where your stores operate. Point of Sale uses Amazon Simple Email Service (SES) to verify your email address and domain identities. You can manage identities in the CMS, view verification statuses, and take action as needed. Verify a domain if you send email from multiple email addresses or verify just one email address to send communications.") # Check Numeral System Settings for Locales Locales now correctly display numbers as defined in Business Manager in the locale's Numeral System setting. Previously, in some cases, the locale used the locale's default Numeral System even though a different Numeral System was configured in Business Manager. Why: It's possible that some locales that you want to use their default Numeral Systems were configured in Business Manager to use a different Numeral System. Before this fix, this mismatch wasn't a problem because the locales used their default Numeral System anyway. But now locales use the Numeral System configured in Business Manager, which isn’t the one you want. How: Check your locales to make sure that the Numeral System configured in Business Manager is the one you want to use to display numbers. Go to **Administration** | **Global Preferences** | **Locales**. Click the locale name, and check the **Numeral System** setting under the **General** tab. # Check Point of Sale App Permissions Check the status of the Point of Sale (POS) app permissions. Review a list of all the permissions required by the app to fully function and are prompted to approve any permission that is not authorized. ## Prerequisites - Modern POS App build: 7.15.5 - Platform Support: iPhone & iPad - Offline Support: yes ## Setup and Configure the Point of Sale CMS Setting up the CMS requires you to turn on a deep link. To do this, go to **the Hamburger Menu** layouts and add a entry with the **App permissions** deep link. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: Normally, the deep link will be added to a hamburger menu. ## View POS App End User Documentation View a list of permissions the app needs and the status after deep link setup to make sure the store associates can use the app as planned. The app checks if permissions are granted, denied, or have other issues. ![The POS App with a lit of user permissions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_app_permissions.png) ### Camera Camera permission may be authorized, denied, or not determined. If it's not authorized, then the app will prompt the user to go to settings and authorize access. The camera's permission is mainly used to scan any barcode. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: Changing the app setting for the camera restarts the app ![Camera Permission in the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_camera.png) ### Bluetooth Bluetooth permission may have different statuses. The permission may be authorized, denied, or not determined. Additionally, the device's setting may be turned on or turned off, and it may be not supported at all by the device. This information will appear in the Bluetooth row. Bluetooth is used by the app in order to connect to peripherals such as payment readers or printers. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: Changing the app setting for Bluetooth connection will restart the app. ![Bluetooth permissions in the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_bluetooth_pos.png) ### Location Location permission may be authorized, denied, authorized while the app is in use, or not determined. The app prompts the user to accept permission if it's at least partially granted. Location permission is used in different cases, such as finding the nearest stores. ![Bluetooth permissions in POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_location_permission_pos_app.png) ### Mobile Data Mobile data may be authorized, denied, or not determined. In case it's authorized, it may also be turned off in the device's settings, or not reachable at all. This information will appear in the Mobile data row. If not authorized in the app permissions, the associate will be prompted to go to settings and turn it on. ![Mobile data permissions in the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_mobile_data_perms.png) ### Local Network Local network may be granted or not. It’s used to connect to devices on the same local network. If not granted, the app will show a message to turn it on in settings. ![Local area network permissions in POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_lan_permissions.png) ### Known Issues and Restrictions - Local network permission is only available on devices with an iOS version of 14 or higher. - Bluetooth check has been removed from the Device Manager screen. - Users are prompted on initial launch to provide their grant permission. On subsequent launches, users are automatically notified if the POS isn't authorized for the specific permission. # Check the Merchant Account Setup for Pay Now If you are having any issues with payments or payment links, review the Pay Now store checkout configuration. ### Required Editions
View supported editions.
1. From the App Launcher, search and select Store. 2. From the store dropdown list, select the Pay Now store. 3. Go to **Settings** | **Checkout**. 4. Confirm that the merchant account setup is marked Complete, and all the payment methods that you accept are listed. # Check the Pay Now URL in the Payment Settings The Pay Now store's URL is one of the Payments settings. After you set up Pay Now, this URL is linked to the active store. If you have trouble generating payment links, verify that the correct URL is specified in the settings. ### Required Editions
View supported editions.
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_important.png) Important If you have more than one Pay Now store, the Pay Now Site URL on the Payments page must be for the store in use. Otherwise, you can't generate payment links. 1. At the top of the page, click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In the Quick Find box, search and select Payments. 3. In the Pay Now section, make sure that the Pay Now site URL is for the active store. If you are unsure, check the site settings. 1. From Setup, in the Quick Find box, enter and select Digital Experience. 2. Select **All Sites**, and copy the URL for the active Pay Now site. 3. If you change the domain of the Pay Now site, update the URL. ![Pay Now URL on Payments Settings page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/pay_now_troubleshoot_url.png) 4. Click **Save**. 5. Return to the Quick Find box and enter `Trusted URLs`. 6. Verify that `https://js.stripe.com` is in the Trusted URL list. If it’s not in the list, add it using Stripe as the API name. 7. Under CSP Directives, select **frame-src (iframe content)**. ![Trusted URL settings for Pay Now](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/pay_now_trusted_url.png) #### See Also - [Set Up Pay Now as a Standalone Feature](https://help.salesforce.com/s/articleView?id=commerce.pay_now_easy_setup.htm&language=en_US) - [Set Up Pay Now with B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.pay_now_easy_setup_comm_plus_sfp.htm&language=en_US) - [Upgrade Pay Now](https://help.salesforce.com/s/articleView?id=commerce.pay_now_upgrade_payment_pages.htm&language=en_US) - [Add a Payment Link to a Salesforce Record](https://help.salesforce.com/s/articleView?id=commerce.pay_now_app_integration.htm&language=en_US) # Check the Syntax of Your Steptypes JSON File The `steptypes.json` file describes custom job steps. You can now access a `steptypes.schema` file to make sure that your `steptypes.json` file is using correct syntax. How: Access the `steptypes.schema` file [here](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/steptypes.schema.json). #### See Also - [Steptypes.json Syntax](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/jobs/b2c_step_types_json_syntax.html) - [Steptypes.json Example](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/jobs/b2c_step_types_json_example.html) - [Steptypes.json Schema File](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/jobs/b2c_steptypes_schema.html) # Check Your Pay Now Store The Commerce Setup Assistant creates a Pay Now store for you. Confirm that your Pay Now store is available and active. ### Required Editions
View supported editions.
1. From the App Launcher, search for Store. From the Store dropdown, verify your Pay Now store is listed. If it isn't, rerun store creation from the Commerce Setup Assistant. 2. Select the store from the Store dropdown. 3. Click **Settings** | **Store** to view the store's settings. #### See Also - [Set Up Pay Now as a Standalone Feature](https://help.salesforce.com/s/articleView?id=commerce.pay_now_easy_setup.htm&language=en_US) - [Set Up Pay Now with B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.pay_now_easy_setup_comm_plus_sfp.htm&language=en_US) - [Upgrade Pay Now](https://help.salesforce.com/s/articleView?id=commerce.pay_now_upgrade_payment_pages.htm&language=en_US) # Checkout Flow & Error Handling Get details of the Modern POS checkout workflow and the interaction between different systems including the app, the Point of Sale, the customer cloud, and the payment service. Errors can occur during different steps of the checkout workflow. This article provides information on different types of errors that can occur, and how each type of error is handled. ## Successful Checkout The app starts by creating an order in the Point of Sale with an initial status of pending. Next, the app captures payment via a connected card reader device. After payment is captured, the app sends the payment details to the Point of Sale. Point of Sale then forwards the order information to the customer cloud and reports back to the app that the status of the order is completed. ![A sequence diagram shows the successful checkout process.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_checkout_successful_checkout.png) ## Errors During Checkout Errors can occur at different stages of the checkout process. ### Error Creating Order in Point of Sale If the app is not able to create the order in the Point of Sale then payment is not captured. This could occur if there is a network outage on the app or a service outage in the Point of Sale. The user is shown an error message and can try again. ![A sequence diagrams that shows the process when there is an error creating an order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_checkout_error_creating_order.png) ### Error Processing Payment If there is an error processing the payment, then the app reports the payment error to the Point of Sale. The order status changes from pending to failed with one of several possible reasons (payment declined, payment canceled, or payment reader error). The user can try again. If the payment goes through, then the normal flow can proceed and the order status is updated accordingly. ![A sequence diagram shows the process when there's an error processing a payment.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_checkout_error_processing_payment.png) **Cash Payment with Physical Cash Drawer** If cash payment is made with a connected physical cash drawer, POS requires the cash drawer to successfully open to proceed processing. If there is an issue connecting to the printer or opening the cash drawer during either accepting payment or resetting cash tender, POS will display the error to be addressed. Any displayed error (failure to connect to printer, open printer cover, no paper) MUST be addressed before processing will continue. ### Error Patching Order to Customer Cloud An error might occur in the customer cloud in the event of a service outage or some other unexpected error. If the Point of Sale is not able to successfully patch the order to the customer cloud, then a refund is issued automatically with the payment service. A report can be generated in the CMS to view orders where a refund was issued automatically. In the CMS, go to Orders > Payment Reversals. ![A sequence diagram shows the process when an order fails to patch to custom cloud.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_checkout_error_patching_order.png) ### Error Updating Payment Details It is possible that the app is unable to send the payment details to the Point of Sale after the order is created. For example, there could be a network outage. In this case, the order remains in a pending state in the Point of Sale. The app stores the order until the information has been transmitted successfully to the Point of Sale. The app periodically attempts to communicate with the Point of Sale and on each app relaunch. The retry interval is configurable in the CMS as an App Config setting under the POS module, called _Pending Order Sync Frequency_. The store associate can go to the dedicated _Pending Orders_ screen to view orders that still need to be updated in the Point of Sale. This screen is accessed with the “Pending Orders” deep link. ![A sequence diagram shows process and payment details failed to update.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_checkout_error_updating_payment_details.png) ## CMS Reports Reports are available from CMS on process successes and failures. ### **Successful Orders Report** Refer to [Successful Orders in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_successful_orders.htm&release=264.0.0&type=5 "View key sales transaction data such as order date, store ID, gross sales, and external order references in Point of Sale CMS. Monitor and analyze your sales operations."). ### **Failed Orders Report** Refer to [View Failed Orders Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_failed_orders_report.htm&release=264.0.0&type=5 "View reports of orders that didn’t process in Point of Sale CMS so that users can verify the payments for those orders.") # Checkout Solutions for a B2B Commerce Store Add checkout functionality, including payment, tax, and shipping services, to your B2B store. If you have a B2B store, you can only use custom checkout. Managed checkout integrates Salesforce merchant services and automatic updates for your store’s checkout UI. With customized checkout, you use third-party providers and can customize your store’s checkout UI. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Managed checkout doesn't support customizations. If you'd like to make any customizations to the checkout experience, we recommend that you use custom checkout. Watch the video to help you decide which checkout solution works best for your store. If you can’t watch the video in full screen, open the video on a new tab: [Choose Your Checkout Solution](https://play.vidyard.com/WV1xssotxtSkxQCnTJi3Wo). - **[Configure Custom Checkout for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_checkout.htm&release=264.0.0&type=5)** Custom checkout gives you more control over your store’s checkout configuration. You can use third-party apps instead of Salesforce’s native merchant services for payments, tax, and shipping. Or, you can extend native merchant services using custom checkout. You can design your own checkout page in Experience Builder with preset layouts, custom sections, and components. For B2B stores, custom checkout is the only option for configuring checkout. - **[Account Creation for Guest Checkout in B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_guest_checkout_account_creation.htm&release=264.0.0&type=5)** If your B2B store allows guests to purchase products, you can configure whether to create a person or business account for the guest upon checkout. As of Winter ’25, person accounts don’t need to be enabled for B2B store guest checkout. - **[Considerations for Address Autocomplete for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_address_autocomplete.htm&release=264.0.0&type=5)** Customers checking out or entering contact information on the My Account page in a B2B store, a D2C store, or a Pay Now site can enter text in address fields and select possible matches from a picklist. When a customer selects a match from the picklist, their address fields are populated automatically. Get familiar with these considerations for using address autocomplete. - **[Create Multiple Shipping Profiles for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_multiple_shipping_profiles.htm&release=264.0.0&type=5)** Create multiple shipping profiles to categorize products. After you set up the shipping profiles, you can define shipping rules based on different zones for each profile. Assign rates based on order value or delivery group weight to meet your store's specific needs. For example, Emma owns a home decor store with a wide range of products. She creates different shipping profiles based on shipping zones and rates. One profile is for light items like wall art and candles, with affordable rates. Another profile is for heavy items like sofas and dining tables, with higher rates to cover professional delivery. By doing this, Emma can manage shipping costs more efficiently. - **[Manage Shipping Zones and Rates for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_manage_shipping.htm&release=264.0.0&type=5)** Whether you’re using managed or custom checkout, you can organize countries with similar shipping costs into shipping zones. A zone can include countries with different currencies. For each zone, you can set shipping rates based on the monetary value of the order or by weight. - **[Disable Shipping for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_turn_off_shipping.htm&release=264.0.0&type=5)** If you’re using managed checkout or native Salesforce shipping for custom checkout, you can turn off shipping for stores that don’t ship physical products. Turn off shipping for stores offering digital goods, service subscriptions, or in-store pickups. - **[Set Up Gifting for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_gifting_for_commercestore.htm&release=264.0.0&type=5)** Enable gifting options for your store. Add gift messaging and gift wrapping features to offer personalized services to your customers. - **[High Order Volume for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_preparing_for_high_scale_order_processing.htm&release=264.0.0&type=5)** Starting in Summer ’24, the High Scale Orders feature is enabled by default during checkout for new B2B and B2C stores created with the LWR template. However, some initial setup is needed to ensure that the High Scale Orders feature is fully enabled. In addition, developers must understand how this feature can affect their Apex code. The High Scale Orders feature isn’t supported for B2B Commerce Aura stores. - **[Manage Pending and Failed Orders in B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_managependingandfailedorders.htm&release=264.0.0&type=5)** Provide transparency to buyers and automate post-order cleanup when orders encounter issues after checkout. Display pending and failed states in buyer account pages, release reserved resources, reverse payments, and notify buyers automatically over email for failed orders. - **[Resolving Asynchronous Order Failures in B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_async_processing_overview.htm&release=264.0.0&type=5)** B2B stores created with the LWR template in Spring ’23 or later process orders asynchronously. Asynchronous order processing improves store performance and responsiveness. However, when an order is processed asynchronously, the store can sometimes generate failed orders (PlaceOrderFailed exceptions). To handle these exceptions, you give the Commerce admin access to the Process Exception object and activate the Retrigger Place Order flow. - **[Improve Cart Processing for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_cart_processing_container.htm&release=264.0.0&type=5)** Increase cart size limits to process larger orders. Speed up shopping with faster add-to-cart. Let customers add duplicate items to their cart. #### See Also - [Payment Methods for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.payments_types.htm&language=en_US) # Choose a Return Type When processing a return, you can process a simple return and issue a refund or create a return order and return merchandise authorization. ### Required Editions
View supported editions.
Your business processes and the ways that customers initiate returns determine how you process returns. If a customer returns an item directly to you without prior notification, you process a simple return and issue a refund immediately. If a customer contacts a service agent or uses a self-service portal to initiate a return, you have two options. - You can process a simple return and issue a refund immediately. - You can create a return merchandise authorization (RMA). With an RMA, you can create a return order, track the return, and verify the quantity and condition of the returned items before you issue a refund. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Salesforce D2C Commerce doesn’t include RMA functionality. It can process only simple returns. #### See Also - [Create a Simple Return with a Refund](https://help.salesforce.com/s/articleView?id=commerce.om_return_order_items.htm&release=264.0.0&type=5 "Use the simple return workflow to process a return for one or more items and issue a refund. For example, a customer can use a return slip included with the order invoice to return items directly to you without contacting a service rep or creating a return request online. If you don’t track returns that are initiated online or through a service rep, you can also use this workflow. You can process a simple return with a refund only for items that are fulfilled and associated with an order summary.") - [Using Return Merchandise Authorization](https://help.salesforce.com/s/articleView?id=commerce.om_process_return_merchandise_authorization.htm&release=264.0.0&type=5 "Sometimes, it’s useful to track the return process before issuing a refund. A return merchandise authorization (RMA) gives you closer oversight on the return process, to make sure that the product is returned in the appropriate condition and quantity. RMAs can be especially user for larger, more expensive items, or for smaller businesses that have limited stock. For example, if the wrong product was shipped, the RMA ensures the product is returned before you refund the cost.") # Choose Product Categories to Use in Breadcrumbs The order of breadcrumbs is determined by a combination of a category and product and the date and time that their association was established. The first category that a product is associated with is the product’s primary category and becomes the basis of the breadcrumb order. You can customize the default order of breadcrumbs by explicitly identifying categories as primary. When you identify a category as primary, your store uses it to construct the category path that populates the breadcrumbs on the Product Detail page. You can associate a product with multiple categories, but it can have only one primary category. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) When a product is associated with just one category, you don’t need to explicitly mark the category as primary. By default, that single category is the product’s primary category. However, when a product is associated with multiple categories, a primary category can be useful. For example, let’s say that your store offers a table saw that’s associated with the Power Tools category. This association is reflected in the breadcrumb on the Product Detail page. You’re having a sale, so you associate the tool with a Sale category. To have the Sale category appear in the breadcrumb on the tool’s Product Detail page, mark Sale as the tool’s primary category. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Before you can mark a product category as primary, your admin must set up the layout on the Product object to include the Category related list. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Products**. 3. Click a product name to open its detail page, and select the **Related** tab. 4. In the Categories section, click the actions dropdown across from the category, and select **Set as Primary Category**. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_tip.png) Tip On the Related tab, you can also select **Edit** from a product’s actions dropdown, and select **Is Primary Category**. Keep these behaviors in mind when working with breadcrumbs. - If a category isn’t included in navigation—that is, **Show in Menu** isn’t selected—it doesn’t appear in the breadcrumb, even if it’s marked as primary. Instead, Home is used in the breadcrumb. Also, if the product has only one associated category, and that category is non-navigational, the breadcrumb displays Home. - If you delete a primary category and that category is the only one assigned to a product, the product becomes unavailable in store navigation. If multiple categories are associated with the product, the oldest product-category association determines which category is primary. - If you make a primary category inactive, all products that are associated with only that category become unavailable in store navigation. If multiple categories are associated with the product, the oldest product-category association determines which category is primary. - If you remove a product from the primary category, the product’s next category, based on the assigned date, becomes the new primary. If the product doesn’t have other categories, it becomes unavailable in store navigation. #### See Also - [Configure Default Store Navigation](https://help.salesforce.com/s/articleView?id=commerce.comm_store_navigation.htm&release=264.0.0&type=5 "Use Experience Builder to set up the default navigation of your B2B store to use product categories. Customers use the categories to navigate the store.") # Choose the Lifecycle Type for an Order You set the lifecycle type for an order when you create an order summary. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note You set the lifecycle type on the order summary—not the order—because other Salesforce apps use order records but don’t consider the lifecycle. For most orders in B2C and B2B implementations, use the managed lifecycle. Some use cases for the unmanaged lifecycle include: - Storing data in Salesforce for B2B orders that you manage in an external system, such as an ERP - Importing inactive order data so that you can maintain a single system of record for both historical and new orders ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_warning.png) Warning Importing large numbers of orders can exceed an org’s daily API call limits. You can request a temporary increase for importing orders by opening a case with Salesforce Customer Support. Allow at least 2 weeks for Support to arrange the increase. If you use both lifecycle types, implement logic to assign a type when creating an order summary. For example, customize your Create Order Summary flow to set the order lifecycle type based on a custom Order field. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important You can’t change an order summary’s lifecycle type. ## Using Managed Orders Managed orders are processed in Order Management using automated workflows. To get you started, Order Management provides sample flows and processes that demonstrate a basic order workflow from start to finish. Your Salesforce admin can modify and extend the sample flows and processes to meet your company’s requirements. Your admin can also use Salesforce APIs and Apex custom code to configure your fulfillment workflows. - For Salesforce B2C Commerce storefronts, Order Management includes a native integration. - Salesforce B2B Commerce creates unmanaged orders by default. To use Order Management with B2B Commerce, or for other orders that originate in Salesforce, update your checkout process to create managed order summaries. - For orders captured via other channels, build custom integrations with Order Management. ## Using Unmanaged Orders To import unmanaged orders, format the data as it would be received from your storefront and load it using Salesforce Bulk API 2.0 or composite API. Assign each order an Activated status so that the Create Order Summary flow processes it. Doing so ensures proper creation of each order summary and its related records. Creating the order summary and its required associated records in any other way adds unnecessary risk. For information on importing orders, see Importing Order Data in the Salesforce Order Management Developer Guide. Be sure to customize the Create Order Summary flow to set the Order Lifecycle Type to Unmanaged. After an order summary is created, you can’t change it from unmanaged to managed. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note When loading order data, remember that an order summary requires the source order to include at least one order delivery group. Before the Create Order Summary flow can run on an order, at least one associated order delivery group record must exist in Salesforce. You can’t use most Order Management features with unmanaged orders. To work with them, implement custom functionality. If these objects are associated with an unmanaged order summary, you can’t use Order Management API calls or actions with them. Create and manage the records directly. - Fulfillment Order - Fulfillment Order Product - Fulfillment Order Product Adjustment - Fulfillment Order Product Tax - Invoice Line - Payment - Payment Line Invoice - Return - Shipment #### See Also - [Order Management Lifecycle Types](https://help.salesforce.com/s/articleView?id=commerce.om_order_lifecycle_types.htm&release=264.0.0&type=5 "An order summary’s lifecycle type specifies whether you manage it with Order Management features.") - [Order Management Lifecycle Stages](https://help.salesforce.com/s/articleView?id=commerce.om_order_lifecycle_stages.htm&release=264.0.0&type=5 "Each order in Order Management moves through a series of stages that collectively make up the order lifecycle.") - [Order Management Lifecycle Statuses](https://help.salesforce.com/s/articleView?id=commerce.om_lifecycle_object_status.htm&release=264.0.0&type=5 "Each object type has status categories with default statuses that reflect the order lifecycle. Find these statuses in Object Manger, in the Statuses section of an object type. You can’t change the status categories, but you can customize and add statuses as long as you associate each status with a status category. Having status categories that never change is helpful if you have custom processes that depend on a record’s status category.") # Choose What Qualifies for a Promotion for a B2B Store from Within the Guided Workflow Use a qualifier to set specific requirements for a discount to be added to a promotion. For example, you can require that customers spend a minimum amount to qualify for a percentage discount on a particular product. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before beginning these steps, complete the steps in [Create a Promotion Using the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_template.htm&release=264.0.0&type=5 "Draft a promotion with products and categories from your B2B store.")or [Create a Promotion Using the Guided Workflow with Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_smart.htm&release=264.0.0&type=5 "Draft a promotion for your B2B store with just a few clicks by using Einstein and Commerce data. Quickly create basic and advanced promotions using natural language instructions and generative AI."). 1. In the promotion’s guided workflow, next to the qualifier section, click **Add**. 2. Select a qualifier type to specify what you want to apply the qualifier to. - To base your qualifier on a specific product, select **Product**. You can have up to 200 product qualifiers. You can qualify all variants of the product or later use variation attributes to restrict the qualifier to specific variants of the variation base products. - To base your qualifier on a set of products in a catalog, select **Category**. You can add up to 25 category qualifiers. You can qualify all variants or later use variation attributes to restrict the qualifier to specific variants of the variation base products. - To base the qualifier on the transaction total, select **Transaction**. You can add one transaction total qualifier per promotion. Select this qualifier if you’re creating a promotion with an approaching discount alert. 3. Select a quantifier type to limit your promotion to either a quantity or an amount. 4. Enter a qualifier value. You can include up to four digits after the decimal point. 5. (Optional) Enter an approaching discount threshold value. This field is available only to promotions that target shipping, shipping rates, or transactions. This value determines when a customer sees an alert that their cart is approaching a discount. For example, if you set a qualifier amount at $100 and a threshold value at 70, customers see a message that their cart is approaching a discount when they have spent $70. 6. (Optional) To add more conditions to the discount, select **Apply Rules**. - Any Condition Is Met—The promotion is applied if any condition is met. For instance, the promotion offers a 10% discount on the entire order if the customer buys either red or purple shoes. The customer receives the 10% discount on the total purchase as long as they have either red or purple shoes in their cart. - All Conditions Are Met—The promotion is applied only if all conditions are met. For example, the promotion offers a 10% discount on the entire order only if the customer purchases both red and purple shoes. 7. Click **Add Rule**. - Target Type–The type of item to apply the discount to. For instance, to apply a discount to shoes, select Product as the rule’s target type. If the main target type is a parent product or a category, you can select an attribute as the rule’s target type. - Operator Type–The condition that determines which item within the target type is or isn’t eligible for a discount. For instance, to apply a discount to shoes, select Product as the rule’s target type, select **Is** as the operator type, and choose shoes as the target. - Target–The specific item or attribute value to apply the discount to‌. For example, if you select Product as the rule’s target type, you can enter shoes as the target. If the target type is an attribute, such as color, you can select a value, such as red, as the target. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Product search supports only product names. Searching by SKU, product ID, or custom attributes isn't supported. 8. Save your work. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example To encourage larger purchases, you want to discount all orders over $100, no matter what’s in the order. When you create a promotion qualifier: - For Qualifier type, select **Transaction**. - For Quantifier type, select **amount**. - Set the value to 100. # Choose Whether to Allow Discounts for Allocated Items You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization defines whether a customer service representative can apply a discount to items that are already in the fulfillment process. ### Required Editions
View supported editions.
If you don’t have an editable version of the flow yet, [copy a flow template](https://help.salesforce.com/s/articleView?id=commerce.om_flow_copy.htm&release=264.0.0&type=5 "Before you can activate or customize a flow, you need to clone the flow. Cloning creates an editable version that you can modify or activate out-of-the-box on your store. If you set up your store using the Commerce Setup Assistant, your flows are already cloned."). You can configure discounts for allocated items in the discount flow. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter flows, and select **Flows**. 3. Select the flow that you’re customizing. 4. In the flow, open the Manager tab. 5. Find and select **allocatedItemsChangeOrderType**,. - To turn on discounts for allocated items, set the default value to InFulfillment. - To turn off discounts for allocated items, set the default value to PreFulfillment. 6. Find and select **Is Item Discountable**. - To turn on discounts for allocated items, define two allocatedItemsChangeOrderType resources—one that equals PreFulfillment and another that equals InFulfillment. - To allow discounts only for pre-fulfilled items, include only one allocatedItemsChangeOrderType resource that equals PreFulfillment. 7. Find and select **Set Allocated Items Change Order Type**. - To turn on discounts for allocated items, set adjustOrderItemSummaryInputRepresentation to equal InFulfillment. - To turn off discounts for allocated items, set adjustOrderItemSummaryInputRepresentation to equal PreFulfillment. 8. Click **Save**. 9. If you’re ready to activate the flow, click **Activate**. #### See Also - [Customizing Order Management Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customizations.htm&release=264.0.0&type=5 "The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement.") # Choose Which Page Designer Pages to Replicate Replicate specific Page Designer pages instead of an entire library. Push critical content updates to production faster by running smaller, more targeted replications multiple times a day without the expense and complexity of a full data replication. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Merchant Tools** | **Site** | **Content** | **Library Folders**. Select the folder that you assigned the Page Designer pages to, find the Page Designer pages, and publish your changes. ![Publish a Page Designer page.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/26_2/b2c_rn_26_2_page_designer.png) #### See Also - [_Salesforce Help_: Publish Specific Page Designer Pages with Granular Replication](https://help.salesforce.com/s/articleView?id=cc.b2c_publish_specific_pages.htm&language=en_US) # Choose Which Product Selector Fields to Show You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization tailors which fields a customer service representative sees when selecting products. ### Required Editions
View supported editions.
If you don’t have an editable version of the flow yet, [copy a flow template](https://help.salesforce.com/s/articleView?id=commerce.om_flow_copy.htm&release=264.0.0&type=5 "Before you can activate or customize a flow, you need to clone the flow. Cloning creates an editable version that you can modify or activate out-of-the-box on your store. If you set up your store using the Commerce Setup Assistant, your flows are already cloned."). You can modify the product selector in the cancel, discount, reship, return, and RMA service flows. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter flows, and select **Flows**. 3. Select the flow that you’re customizing. 4. In the flow, open the Manager tab. 5. Find and select the **Product Selection** screen component. 6. Either click **OMS Product Summary Selection** from the middle preview or add a selector by finding and selecting **OMS Product Summary Selection** from the component section. 7. In the OMS Product Summary Selection section, under columns, add up to 10 fields that you want to make visible to the Selected section. 8. Click **Done**. 9. Click **Save**. 10. If you’re ready to activate the flow, click **Activate**. #### See Also - [Customizing Order Management Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customizations.htm&release=264.0.0&type=5 "The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement.") # Clienteling Deep Links Explore a detailed list of Point of Sale clienteling deep links, each with a clear description and supported context. Links include features for customer management, client profiles, and CRM activities. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. | Deep Link | Description | Supported Context | | --- | --- | --- | | Add Customer to Black Book | Adds customers to the black book | "Hamburger Menu, Layouts" | | Black Book | Displays the 'Black Book' screen | "Hamburger Menu, Layouts" | | Clienteling Profile | Displays the customer's profile screen if a customer is already selected. Otherwise, will show the customer search screen. | "Hamburger Menu, Layouts" | | Create Note for Client | Directs the user to the screen to create a note for a client | "Hamburger Menu, Layouts" | | Store CRM | Displays the client search page (store associate app only) | "Hamburger Menu, Layouts" | # Clone an Order Management Flow Template Before you can activate or customize a flow, you need to clone the flow. Cloning creates an editable version that you can modify or activate out-of-the-box on your store. If you set up your store using the Commerce Setup Assistant, your flows are already cloned. ### Required Editions
View supported editions.
1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter flows, and select **Flows**. 3. Click **New Flow**. 4. Select a template, and click **Create**. 5. Click **Save As**, and for Flow Label, enter a unique name. #### See Also - [Customizing Order Management Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customizations.htm&release=264.0.0&type=5 "The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement.") - [Choose Whether to Allow Discounts for Allocated Items](https://help.salesforce.com/s/articleView?id=commerce.om_flow_make_discount_available.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization defines whether a customer service representative can apply a discount to items that are already in the fulfillment process.") - [Add a Reason Text Option to a Service Flow](https://help.salesforce.com/s/articleView?id=commerce.om_flow_enable_reason_text.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization gives customer service representatives more flexibility when tracking a return or discount by providing an empty field to add a reason.") - [Set Up Bulk Actions in a Service Flow](https://help.salesforce.com/s/articleView?id=commerce.om_flow_set_bulk_action.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. Bulk actions let your customer service representatives perform the same action on multiple selected products, up to 100.") - [Set Up a Default Fee for a Service Flow](https://help.salesforce.com/s/articleView?id=commerce.om_flow_configure_default_fee.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization ensures consistency across service fees and saves time while processing an order by setting a default fee.") - [Choose Which Product Selector Fields to Show](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customize_product_selector_fields.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization tailors which fields a customer service representative sees when selecting products.") - [Enable Multiple Currencies for Even Exchanges](https://help.salesforce.com/s/articleView?id=commerce.om_flow_enable_multicurrency.htm&release=264.0.0&type=5 "All Order Management service flows work out of the box, but there are some easy ways to customize service flows and expand their functionality. Orgs that support multiple currencies require customization to support the even exchanges flow. Only the even exchange flow requires customization to support multiple currencies.") - [Enable Inventory Checks on the Product Detail Page](https://help.salesforce.com/s/articleView?id=commerce.om_flow_pdp_inventory_check.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization lets customer service representatives (CSR) see whether a product is in stock from the product detail page. The inventory check helps reduce out-of-stock errors by giving the CSR up-to-date stock information before they add an item to a cart.") - [Set the Discount Tax Type](https://help.salesforce.com/s/articleView?id=commerce.om_flow_discount_amount_tax.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization sets the discount tax type based on your store’s locale. Depending on the discount tax type, when a customer service representative discounts an amount off an order, the amount either does or doesn’t include the tax amount. You can set a discount tax type in the discount flow.") - [Customize a Flow for Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.om_flow_oci_customize.htm&release=264.0.0&type=5 "You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. However, some service flows require customization to work with Omnichannel Inventory. This customization requires an Order Management Growth license.") # Close a Managed RMA Return Order When you receive returned order items, you can close the return order and process a refund to the shopper or buyer. ### Required Editions
View supported editions.
Quantity fields don’t display automatically on the Return Order Line Item page. Because you use the quantity fields to verify and update item quantities before closing a managed RMA return order, add these quantity fields to the Return Order Line Item default page layout. - Quantity Expected - Quantity Received - Quantity Rejected - Reason for Rejection You can only close a managed RMA return order that’s activated. 1. From the Navigation bar, open the Return Orders list view page. 2. Select the return order number to close, and open the corresponding return order record.
 You can also open the return order directly from the associated order summary. 3. On the Related tab, open each return order line item. 4. Verify and update these fields. - Quantity Expected - Quantity Received - Quantity Rejected - Reason for Rejection If the quantity received is less than the quantity expected, or you reject any of the returned items, Order Management updates item quantities and financial information automatically. If you receive more than the quantity expected, you must create a separate return order for the extra items. 5. Save your changes, and go back to the return order record. 6. On the Details tab, change the status of the return order to **Closed**, and save your changes. Order Management creates a change order, generates a credit memo, and refunds the customer’s payment. Order Management also updates the item quantities and financial information on the Order Summary and associated objects. The updated quantities show the items that are still fulfilled. If the quantity for an item is reduced to 0, the status of the item changes to Returned. Otherwise, the status reflects the quantity that wasn’t returned. #### See Also - [Managed and Unmanaged RMA Return Orders](https://help.salesforce.com/s/articleView?id=commerce.om_managed_unmanaged_return_orders.htm&release=264.0.0&type=5 "Return merchandise authorization (RMA) return orders support both managed and unmanaged orders, so whatever degree of service you provide for orders, you can still keep a tight level of control over returns and refunds.") - [Create a Managed RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_create_a_managed_rma_return_order.htm&release=264.0.0&type=5 "Use the return management authorization (RMA) workflow to create a managed return for one or more order items that have been fulfilled and are associated with a managed order summary.") - [Cancel a Managed or Unmanaged RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_cancel_managed_unmanaged_rma_return_order.htm&release=264.0.0&type=5 "If the shopper or buyer doesn’t return the expected items, you can cancel an RMA return order.") - [View Return Orders](https://help.salesforce.com/s/articleView?id=commerce.om_view_return_orders.htm&release=264.0.0&type=5 "A return order record contains details about the returned items and related records, including the associated order summary.") # Close a Return Order for Exchange with RMA After you've received the returned order items from your exchange, you can close the return order. Closing the return order completes the return portion of the exchange. The funds necessary to fund the new products only become available after the return order is closed. ### Required Editions
View supported editions.
If haven't already, [copy and activate](https://help.salesforce.com/s/articleView?id=commerce.om_flow_copy.htm&release=264.0.0&type=5 "Before you can activate or customize a flow, you need to clone the flow. Cloning creates an editable version that you can modify or activate out-of-the-box on your store. If you set up your store using the Commerce Setup Assistant, your flows are already cloned.") the RMA Create Credit Memo and Ensure Refunds flow. Quantity fields don’t display automatically on the Return Order Line Item page. Because you use the quantity fields to verify and update item quantities before closing an RMA return order, add these quantity fields to the Return Order Line Item default page layout. - Quantity Expected - Quantity Received - Quantity Rejected - Reason for Rejection 1. From the Navigation bar, open the Return Orders list view page. 2. Select the return order number to close, and open the corresponding return order record.
 You can also open the return order directly from the associated order summary. 3. On the Related tab, open each return order line item. 4. Verify and update these fields. - Quantity Expected - Quantity Received - Quantity Rejected - Reason for Rejection If the quantity received is less than the quantity expected, or you reject any of the returned items, Order Management updates item quantities and financial information automatically. If you receive more than the quantity expected, you must create a separate return order for the extra items. 5. Save your changes, and go back to the return order record. 6. On the Details tab, change the status of the return order to **Closed**, and save your changes. Order Management creates a change order, generates a credit memo, and refunds the customer’s payment. Order Management also updates the item quantities and financial information on the Order Summary and associated objects. The updated quantities show the items that are still fulfilled. If the quantity for an item is reduced to 0, the status of the item changes to Returned. Otherwise, the status reflects the quantity that wasn’t returned. #### See Also - [Place an Exchange with an RMA Return](https://help.salesforce.com/s/articleView?id=commerce.om_uneven_exchanges.htm&release=264.0.0&type=5 "Place a post-fulfillment exchange when a shopper or buyer needs to substitute a product after it has already been fulfilled. These exchanges can be uneven, so the new product doesn’t always have the same value as the original product. In this case, the exchange results in a refund or additional funds owed.") - [Exchanges with RMA Returns Overview](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_overview.htm&release=264.0.0&type=5 "An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer.") # Close and Post Batch Finalize adjustments and update all selected items in the Point of Sale (POS) app. After all selected items are adjusted, the batch can be closed by tapping **Close Batch**. After the batch is confirmed for closing, you'll be prompted to either post the batch now (**Post**) or at a later time (**Post Later**). Adjustment batches can be posted via the CMS as well. # Cloud Utilities Review the new B2C Commerce Cloud Utilities enhancement in the 20.1 release. - **[Generic Mapping Logs Enhanced](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_w6935517_gen_map_logs_je.htm&release=264.0.0&type=5)** Updated logs and metrics for the Import and Export Generic Mapping feature provide a data source for troubleshooting generic mapping issues. And now there’s a generic mapping performance alert notification for support and engineering. # CMS - Configuration and Setup Create store associates manually or through a feed in Point of Sale CMS. Add associates so they can view store analytics in the CMS. You can create a store associate in the Point of Sale Content Management System (CMS) through manual entry or loading a feed. It is recommended to use the feed if you're creating many associates. 1. Go to **Store Management > Associates > Associates**. 2. (Manual) Select a store and select **Add** in the top right. Create a store associate using the table below. 3. (Feed) See [Store Associate Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_store_ass.htm&release=264.0.0&type=5 "The store associate feed drives the functionality that creates store associates for all stores. If an associate exists in Point of Sale, all of the data is updated with content from the file."). 4. Select **Save**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important When a store associate ID has been created, it can't be changed. A new user has to be created and the wrong one deactivated. Field Name | Field Name | Required | Description | | --- | --- | --- | | Active | No | This marks if an associate is active or not. | | Hire Date | No | The hire date of the associate. | | Termination Date | No | The termination date of the associate. The termination date must be after the hire date if both are provided. | | Store Associate ID | Yes | Create an ID for the store associate. | | Associate Password | Yes | Create a password for the store associate. | | Confirm Password | No | Confirm the password of the store associate. | | First Name | No | Enter the first name of the store associate. | | Last Name | No | Enter the last name of the store associate. | | Email Address | No | Enter the email address of the store associate. This is required for this associate to view the store analytics in the CMS. | | Mobile Phone Number | No | Enter the phone number of the store associate. | | Gender | No | Enter the gender of the store associate. | | Store ID | Yes | Select or enter the store ID of the main store where the store associate will work. | | Alternate Store IDs | No | Select or enter the store IDs of other stores where the store associate will work. | | Profile Image | No | Upload a profile image of the store associate that is PNG and 80 by 80 pixels. | | Associate Role | Yes | Select the role of the store associate. | | Associate Pin | No | Enter a pin for the store associate. It will be used to reset the password. This feature is only applicable if you're using Point of Sale to process transactions. | | Merchant User ID | No | If you use an external system such as Demandware, enter the external User ID for that system here. | | Merchant Password | No | Enter the password of the merchant. | | Confirm Password | No | Confirm the password of the merchant. | | Payment Device Merchant ID | No | Enter the payment device's merchant ID. | | Payment Device ID | No | Enter the payment device ID. | # CMS - Inventory Transfer View View current and past transfers in Point of Sale CMS to monitor inventory flow. This article will describe how to view current and past inventory transfers on the CMS. For the Inventory View feature on the POS app, see [Inventory Transfer Feature](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_view_inventory_transfer_history.htm&release=264.0.0&type=5 "Access a list of Store-to-Store, Corporate, and Return to Vendor (RTV) transfers in the Point of Sale (POS) app."). 1. Go to **Inventory > Transfer Report**. 2. Select your query parameters: - **Status** - This field allows you to filter by one or more statuses (for example Open, Completed, In Progress, and so on). - **From** - The beginning date time. - **To** - The end date time. - **Transfer Types** — This field allows you to filter by one or more transfer types (for example Store to Store, Blind Receive, Return to Vendor, and so on). - **From Locations** — This field allows you to filter by one or more source locations (that is, Store, Warehouse, and so on). - **To Locations** — This field allows you to filter by one or more destination locations (that is, Store, Warehouse, and so on). - **Transfer ID** — This field allows you to search for a particular transfer ID. The transfer ID is a value that looks similar to 76e4462b-e857-4506-b685-d407ac528a73. 3. Select **Search**. # CMS Configuration and Setup - Italy Configure fiscalization requirements for Italy in Point of Sale (POS) CMS and change the logo, department number, and X and Z report settings. ## App Settings 1. In CMS, go to **App Config > Modules > Peripherals.** 2. Under Printers, turn on the following flags: - **Epson Printer** - **Requires Printer for Receipts** ## Store Settings Point of Sale CMS groups fiscalization settings in one place. The navigation path you use depends on whether you’re setting up fiscalization for the first time. 1. For new merchants, go to **Integrations > Fiscalization** and create a configuration. If you can’t create a configuration, switch to a merchant region that supports fiscalization. For example, a U.S. merchant region that doesn’t support fiscalization won’t allow you to create one. 2. For legacy merchants, go to **Store Management > Store Settings > Fiscal.** 1. Expand All and enable/configure these settings: Enabling Fiscalization Tax Identifier (merchant tax ID). ## Logo Settings The POS app allows the printing of a logo at the bottom of a receipt. This logo must be in BMP format and be 526x278. 1. In CMS, go to **Store Management > Store Settings > Fiscal.** 2. Expand Italy and add the URL to the Italy Logo URL. ## Department Number Settings The POS app allows the VAT rate to be set for products by updating the Department Number sent to the fiscal printer. By default, the printer uses Department Number 1 for all products. Each department number belongs to a different VAT rate on the printer. To retrieve the Department's details on the printer: 1. Begin when **STATO REGISTRAZIONE** is displayed on the printer's screen. 2. Enter **3333**. 3. Press **CHIAVE**. 4. Enter **02**. 5. Press **SUBTOTALE**. This sequence will generate a printout that lists the departments and their corresponding VAT indices. An example of this department table print receipt is provided next, with the VAT index highlighted in red: ![a printout that lists the departments and their corresponding VAT indices.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_vat_indicies_italy.png) ## Retrieve VAT indicies The key sequence can be used to get the VAT index details on the printer: 1. Begin when the printer's screen displays **STATO REGISTRAZIONE**. 2. Enter **3333**. 3. Press **CHIAVE**. 4. Enter **05**. 5. Press **SUBTOTALE**. This sequence will generate a printout listing the VAT indices and their corresponding values. ## Update Department Number 1. In CMS, go to **Store Management \\> Store Settings \\> Fiscal**. 2. Expand Italy and update the Default Department Number field for normal products. 3. For gift cards, the app uses the VAT Free Department Number field as gift card purchases shouldn't have VAT applied to the transactions. ## X & Z Reports - POS app allows printing X and Z reports. Z reports are buffered into the printer and then reported to the tax authority. - The X report is a midshift snapshot of the sales, returns, voids, discards, and other register activity that occurred on the register from the beginning of a register shift until the present moment. - The Z report is a summary of the sales, returns, voids, discards, and other register activities that happened during a register shift, from open to close. - CMS allows setting deep links for fiscal X and Z reports in layouts and hamburger menus. # CMS for Point of Sale Access the Point of Sale CMS to customize POS app settings. Access CMS using a corporate Gmail account, link non-Gmail accounts, and set up single sign-on (SSO) for added secruity and user access control. - **[How to Access Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_accessing_cms.htm&release=264.0.0&type=5)** Access the Point of Sale CMS to control the behavior of the POS app through customization. Access the CMS through a corporate gmail account, or link a non-Gmail corporate account to gmail. Use the latest version of Google Chrome to access the CMS. - **[Secure Access to CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_secure_cms_access.htm&release=264.0.0&type=5)** Verify secure access to Point of Sale while maintaining Payment Card Industry (PCI) compliance. Single sign-on (SSO) provides an overview and checklist for security and encryption. Turn on Azure AD and OneLogin with Point of Sale CMS, which enhances security and allows only authorized users to access sensitive information. # CMS User Management Customize users in CMS to control access to reports, configurations, and other features within a company. CMS offers a wide range of reports to view and configuration options that can dictate the POS app flow. Within a merchant company, various roles exist, each with distinct permissions—such as view-only or editing capabilities. Point of Sale lets you create these special roles and change their permissions. These permissions include those for layouts, reports, inventory management, and more. For information about how to access CMS, see [Accessing Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_accessing_retail_cloud_cms.htm&release=264.0.0&type=5 "Access the Point of Sale Content Management System (CMS) using a custom URL after configuring Azure AD. Merchants use their designated URL slug and environment to reach the CMS.") . - **[Add a Point of Sale CMS User](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_create_cms_users.htm&release=264.0.0&type=5)** As an Admin, you can add users and assign roles and permissions. - **[Delete Point of Sale CMS Users](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_delete_cms_users.htm&release=264.0.0&type=5)** Delete users directly within Point of Sale CMS. Non-CMS Admin roles can be deleted directly within the CMS. For CMS Admin roles, you can either contact Customer Support or change the user's role to another role to proceed with deletion. - **[Point of Sale CMS Roles](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_configure_cms_roles.htm&release=264.0.0&type=5)** Control user access in Point of Sale CMS with roles and permissions. Each CMS user has a role that determines their permissions. - **[Point of Sale CMS User Timezone](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_user_timezones.htm&release=264.0.0&type=5)** The Point of Sale CMS user's configured time zone appears on generated CMS reports. # Code Profiler Wait Times Removed from CSV Report Code profiler wait times, which include Wait Time Own and Wait Time Total, are no longer measured. These values have been removed from the B2C Commerce CSV report. The CSV report remains backward compatible. How: The CSV report generated from system job sfcc-export-code-profiler-reports and the CSV report accessible from the Code Profiler Business Manager module maintain these columns, filled with zeros as data. - total\_wait\_time - total\_wait\_time\_avg - own\_wait\_time - own\_wait\_time\_avg # Collect Customer Preferences Using a Quiz Anticipating customer needs by understanding their preferences strengthens their experience. You can configure Point of Sale to collect and store customer preferences in their profiles. To gather information about customers, create a preference quiz. ## Edit the App Config Settings There are two entry points for customers to interact with a preference quiz: - First-Time Users–Customers who haven't taken the quiz yet need to be administered it for the first time. - Returning Users—Customers who have already taken the quiz should be able to view and edit their answers. A quiz template is recommended because it accommodates both of these workflows. When a quiz is created from a template, first-time users see a starting layout when they begin the quiz. There's also an Answers Layout that displays previous responses and provides links to edit them. 1. Edit the app config settings. 2. If you're not using a custom clienteling layout, first assign the quiz workflow to an app config so it shows up in the app. There are two app config settings to configure, which correspond with the two entry points to the quiz workflow. 3. In CMS, go to **Apps** | **All**. 4. Edit a selected app config. 5. Go to **Modules** | **Clienteling**. 6. Under User Preferences Layout, select the Answers Layout you created. 7. Under User Preferences Quiz Layout, select the first page of the quiz. 8. Save your changes. ## Configure a Deep Link for Accessing the Quiz If you're using a custom clienteling layout, configure a deep link that specifies the two entry points for the quiz. For more information, see [Create a Preferences Quiz](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_customer_preferences.htm&release=264.0.0&type=5). 1. Edit the custom clienteling layout. 2. Configure the deep link that corresponds with the "Preferences" CTA. 3. Set the deep link type to Quiz (Personalization > Quiz). 4. Set the link type to Customer Preference. 5. Select the Layout and Answer Layout. 6. Set the deep link and publish the layout. For in-depth information about quizzes, see the [Quiz Section](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes.htm&release=264.0.0&type=5 "Use Point of Sale quizzes to gather customer preferences and valuable data. Create engaging quizzes, forms, or polls to capture user feedback and information. Add surveys after successful checkouts and include mandatory questions to ensure you get the data you need. You can also create quizzes where users see real-time poll results after submitting their answer.") to learn more. # Collections The POS app lets store associates and managers create a collection of products. You can share collections directly with customers or curate it for browsing purposes. The collection feature is configured using a deep link, and then implemented in a layout or from a hamburger menu. To access a collection, tap on the deep link you created in the POS app. 1. Create a layout or hamburger menu, or use a pre-existing one. 2. Add the deep link by going to **Engagement** | **Collections**. 3. Set and save your changes. ## Create a Collection The store associate can create and delete collections, add and delete products, and share the collections. ![POS page to create and edit product collections](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_collection_creation.png) 1. Click the + sign in the Create Collection card. 2. Enter the name. 3. Click OK. ## Delete a Collection 1. Tap the pencil icon on the top-right of the navigation bar. 2. Tap on the red - icon to make the deletion. 3. Tap the check icon to exit the deletion mode. ## Add Products to a Collection 1. Select a collection. 2. Tap the + icon on the top-right of the navigation bar. 3. Use the product search to locate products and tap on the Product Image to make selections. 4. Tap the check icon on the top-right of the navigation bar to save and add the products. ## Delete Products in a Collection 1. Select a collection. 2. Tap the pencil icon on the top-right of the navigation bar. 3. Tap on the Product Image to make a selection. 4. Tap the trash icon on the top-right of the navigation bar to delete the product. ## Share a Collection 1. Select a collection. 2. Tap on the share icon on the top-right of the navigation bar. 3. Enter the desired recipients and optional message. 4. Tap Share to email the collections. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note An email template for Share Collection should be implemented in the CMS to leverage this function. # Commerce Administrator Considerations for Product Searchability Commerce administrators must ensure that certain conditions are met to search for products in storefronts. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) To search for a product in B2B stores, buyers and shoppers must have: - CRUD read access to the product and catalog - Entitlement to view the product - Field-level security (FLS) access to all product fields that are configured for search ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important To ensure buyers and shoppers can view search results, don’t use FLS restrictions on indexed product or catalog fields. Use FLS to control access to the information in object fields through profiles, permission sets, or from the field itself. Product fields respect your Salesforce FLS settings, which affect whether a product or the information in a product field is discoverable. Using FLS to restrict a shopper’s access to a field that’s searchable or filterable prevents that shopper from conducting a search. For more information, see [Field-Level Security](https://help.salesforce.com/articleView?id=platform.users_profiles_field_perms.htm&type=5&language=en_US). - Access to all indexed fields Regardless if one or many product fields are indexed, if a shopper can’t access one indexed field, the shopper can’t search your store. Search returns results only for a full token match—when all search terms are present in a result. Partial token matching, like prefix and infix searches, isn’t enabled. But stemming is enabled. So search results list all matches to a word’s stem—for example, “coffee” finds coffees, and “run” returns runner, running, and so on. ## Search Considerations for Product Entitlements in B2B Stores In Experience Builder, many components are available to you for building your store. The components that were developed specifically for B2B store environments respect user entitlements. When buyers view products through a component, such as Results Layout, they see only those products that they’re entitled to see. For a B2B store, if you want buyers and guest users to see only categories that have entitled products, contact Salesforce Customer Support to enable this functionality. If a category has no entitled products, it also doesn’t appear in the storefront. To view a category or its descendent categories, it must have entitlement to at least one product within the category. Update your search index for any category changes to take effect. The Account Selector option isn't available with this feature. Some components don't respect entitlements, so use caution when introducing them to your store. For example, be cautious with the CMS Collections component. All users can see any product that you expose through this component, whether the user is a guest, entitled, or unentitled. The same is true for a Product Record List. For the Record List component, we advise not using it in your store. Another component to be cautious of is Global Search. When you configure the types of results it can return, don't include Products objects. However, the Results Layout component respects user entitlements, so use it for product searches. For searches for things like cases, articles, and feeds, you can use Global Search. ## Search Results Limits To achieve the highest performance, the Commerce Search engine limits search results returned and displayed to the most relevant 10,000 products for each search query, even if there are more results. For example, if a query matches 20,000 results, Commerce Search will still show 10,000 results. When a customer modifies existing search results using sorting options or filters, Commerce Search uses the updated criteria to search all products again before showing the new results. In addition, for pages using the Results Layout component, Commerce Search shows only up to 5,000 additional results after the first results page, even if there are more results. For example, say you set the results per page to 20, and a search request results in 10,000 products. Commerce Search orders the results based on sort settings and displays the first page of 20 results. It then provides 250 additional pages of 20 products each for a total of 5,020 viewable results. By comparison, if you set  the results per page to the maximum setting of 200, the first page shows 200 results. Commerce Search then provides 25 more pages of 200 products each for a total of 5,200 viewable results. Commerce Search shows the most relevant results for any sort or filter settings. To view more results, customers can use sorting options to reorder output or use filter values to refine their search. ## Search Results Count Approximation To improve search performance on queries with a large number of results, displayed product and facet counts are approximated. When a search reaches this high threshold of results, computing the exact value slows performance and customers generally only need an approximation. To keep results counts lower, consider modifying catalog size, category structure, and filterable attribute value distribution. ## Search Suggestions Search Suggestions can be enabled in any search component to provide suggestions that match products from your store’s catalog. Catalog suggestions appear after the user enters three or more characters. The suggestions update dynamically as the user continues to enter or delete characters. To keep the search suggestions current with your catalog, perform an update of your Commerce search index. If you also enable Einstein, the suggestions are enhanced by using shoppers’ search activity to learn the best search terms over time. See [Update the Commerce Search Index](https://csqa5sb0.help.sfdc.sh/s/articleView?id=commerce.comm_search_index_build.htm) and [Enable Commerce Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_deploy.htm&release=264.0.0&type=5 "Commerce Einstein features personalize shopper experiences, increase merchandiser productivity, and improve conversion. Enable Commerce Einstein so that merchandisers can turn on storefront activity tracking, turn on semantic search, and configure Einstein recommendations. Commerce Einstein deployment can take up to 24 hours to complete.") ## Search Considerations for Promotions in B2B Stores Promotion tier pricing isn’t reflected in prices on the Search Results page. However, promotional pricing is reflected on other pages, such as the Product Details and Cart pages. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Promotions aren’t currently supported for D2C stores. ## Troubleshoot Translation and Localization Issues in B2B Stores ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note To get the best search results, make sure [Translation Workbench](https://help.salesforce.com/s/articleView?id=commerce.comm_translation_workbench.htm&type=5&language=en_US) and [Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&type=5&language=en_US) are enabled, and that [translations are defined](https://help.salesforce.com/s/articleView?id=commerce.comm_create_data_translation.htm&type=5&language=en_US) for all products and languages.
Issue Resolution
Stemming isn’t working as expected. For example, different results appear when searching for “glove,” “gloves,” and “glove’s.”

Go to Setup | Company Information and enable Data Translations.

Searching in a different language doesn’t yield the expected results. Make sure that translations are defined for all products and languages. If you don’t define translations for all products in all languages enabled for the store, including the default language, the search returns products only when the customer searches for matching values in the product record detail.
After marking fields as filterable and updating the search index, the filters don't appear in the store.

Go to Setup | Company Information and enable Data Translations.

After adding a language and setting the user’s language to it, an error occurs when navigating to a category.

Update the Commerce search index when you add new languages or translations to your store or product catalog.

Picklist values don't appear in the search results after creating a store in a different language than the org. Make sure to provide translated values to your picklist if your store uses a different language than the default language of your org.
#### See Also - [Before You Begin](https://help.salesforce.com/s/articleView?id=commerce.comm_search_prereq.htm&release=264.0.0&type=5 "Other features in your B2B Commerce store and in your Salesforce org can affect whether a product is discoverable.") # Commerce Analytics Dashboards and Reports Take action on insights about revenue, product performance, and customer behavior from Commerce Analytics dashboards and reports. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Set Up Commerce Analytics Dashboards and Reports](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_analytics.htm&release=264.0.0&type=5)** Use the Commerce Analytics dashboards to monitor business performance in B2B stores. - **[Interpret Commerce Analytics Dashboards and Reports](https://help.salesforce.com/s/articleView?id=commerce.comm_interpret_analytics.htm&release=264.0.0&type=5)** Commerce Analytics provides preconfigured dashboards composed of Lightning reports. To monitor key metrics for your B2B Commerce stores, use the Business Overview Dashboard. For details about your store’s payment processing, promotional effectiveness, and overall financial well-being, use the Commerce Payments, Promotions, and Finance dashboards. To get insights into order volume, fulfillment efficiency, returns, and refunds, use the Commerce Orders Dashboard. # Commerce Basics Learn about B2B terms and concepts, personas, and licenses. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Commerce Resources](https://help.salesforce.com/s/articleView?id=commerce.comm_resources.htm&release=264.0.0&type=5)** In addition to Salesforce Help, Commerce has documentation resources to help you successfully learn about, set up, administer, and extend the B2B apps. - **[Commerce Key Concepts](https://help.salesforce.com/s/articleView?id=commerce.comm_key_concepts.htm&release=264.0.0&type=5)** Get familiar with the main elements in B2B Commerce. - **[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&release=264.0.0&type=5)** Salesforce Commerce includes the B2B Commerce products and the B2C Commerce product. It’s important to know which product you’re using so that you can access the correct documentation and resources. - **[Understanding Editions for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_editions.htm&release=264.0.0&type=5)** Learn about the editions, user interfaces, and add-ons that support B2B Commerce. - **[B2B Licenses and Allocations](https://help.salesforce.com/s/articleView?id=commerce.comm_b2b_licenses.htm&release=264.0.0&type=5)** A B2B license is based on your anticipated gross merchandise volume (GMV) or the number of orders placed to your store (PPO). You can purchase as many licenses as you need, but you can’t mix and match licenses, for example, a standalone and standalone plus license or a PPO and GMV license. - **[Customize the Refreshed Commerce App](https://help.salesforce.com/s/articleView?id=commerce.comm_refreshed_app.htm&release=264.0.0&type=5)** In Summer ’24, Salesforce introduced a refreshed Commerce app with enhanced navigation and features designed to simplify online store management. If you've been using the Commerce Storefront Console app and have customized pages, you can add those custom pages to the refreshed app. You can also modify the navigation for the refreshed app. - **[Commerce Personas and Permissions](https://help.salesforce.com/s/articleView?id=commerce.comm_personas.htm&release=264.0.0&type=5)** A typical B2B implementation involves several task-based personas, such as commerce administrator, merchandiser, developer, and shopper. - **[B2B Commerce Permission Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_perm_sets.htm&release=264.0.0&type=5)** Permissions determine the information users can access and the actions they can take when configuring or shopping at a store. Salesforce provides preconfigured permission sets, which define multiple permissions for internal and external users. - **[Order Management and Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.comm_om_oci.htm&release=264.0.0&type=5)** You can use Salesforce Order Management and Salesforce Omnichannel Inventory with B2B Commerce. Order Management helps you manage your orders throughout the order lifecycle, from creation to fulfillment to servicing. Omnichannel Inventory delivers real-time inventory availability data, helping you avoid costly undersells and oversells. If your B2B store integrates Omnichannel Inventory and you offer express payment options at checkout, then orders placed using those methods fail. Express checkout payment options don’t support inventory checks. - **[Pay-As-You-Go Usage Types for D2C Commerce and PayNow Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_paygo_usagetypes.htm&release=264.0.0&type=5)** Pay-As-You-Go helps you track your usage for D2C Commerce and PayNow stores, and get billed monthly based on the usage. # Commerce Cloud Einstein Review the new B2C Commerce Einstein feature in the 20.2 release. - **[Einstein Complete the Set Recommender](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_w7137563_cts_ga_mb.htm&release=264.0.0&type=5)** The Einstein Complete the Set Recommender is now generally available (GA). Complete the Set is a new recommender type in the Einstein Configurator that creates recommendations for complementary products. # Commerce Cloud Einstein Review the new B2C Commerce Einstein feature in the 20.6 release. - **[Einstein Complete the Set Recommender Extended to Cosmetics and Skincare (Beta)](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_w7543482_cts_recom_cos_skin_beta_mjb.htm&release=264.0.0&type=5)** Support for Cosmetics and Skincare is now available for the Einstein Complete the Set Recommender as a Beta offering. # Commerce Cloud Einstein Review the new B2C Commerce Einstein feature in the 20.9 release. - **[Use the Einstein Complete the Set Recommender For New Verticals](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_w7892193_cts_rec_verticals_mjb.htm&release=264.0.0&type=5)** The Einstein Complete the Set recommender enables customers to promote complementary items to shoppers. Customers can already use the Einstein Complete the Set recommender for apparel and accessories. Now it’s available for home furnishing, cosmetic, and beauty products. # Commerce Cloud Order Management Retirement Salesforce B2C Commerce retired the Commerce Cloud Order Management product on July 31, 2022. There are no further updates or access to the Commerce Cloud Order Management documentation including the Infocenter and Release Notes. Salesforce Order Management is the new product built in the Salesforce core platform. Contact your account manager for more information or see [Salesforce Order Management Help](https://help.salesforce.com/s/articleView?id=commerce.om_order_management.htm&type=5&language=en_US) documentation. # Commerce Delivery Service and Order Fulfillment Configure fulfillment from start to finish by using Commerce Delivery Service (CDS). ### Required Editions
View supported editions.
CDS unites all parts of delivery and fulfillment under one umbrella. - Processing times: Set processing times to guide and inform delivery estimations. You can configure processing times at multiple levels: shipping carrier, category, product, location, and delivery estimation. - Shipping carriers and methods: Connect your org to preselected carriers to get real-time shipping data, or add your own carriers and configure static shipping information. Create methods to provide customers with flexibility to fit their individual needs. - Routing rules: Control order routing without navigating large, complex flows. Create custom routing rules and detailed flow logic to make routing work for your org. Make groups of rules that select fulfillment locations based on inventory, distance, splits, processing time, markdown risk, and more. - Delivery estimations: Use your processing time, real-time shipping info, and custom-built routing to provide your customers with precise delivery times for their orders. You can use some parts of CDS independently. For example, you can set up Delivery Estimations even if you use flow-based routing instead of routing rules. However, in this case, Delivery Estimation can’t use flow-based routing to predict delivery dates. It relies on carrier data, processing times, and, optionally, the default routing logic. - **[Enable Order Fulfillment Setup](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5)** The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS). - **[Set Up Shipping for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_set_up_shipping.htm&release=264.0.0&type=5)** Order Management supports both managed and static shipping carriers. The managed shipping carriers are Canadian Post, FedEx, Royal Mail, UPS, and USPS. A shipping carrier method is a specific method that transports a product or order to its destination. For example, an org that uses the shipping carrier FedEx has the shipping carrier methods FedEx Overnight, FedEx Priority, and FedEx Ground. - **[Routing via Rules](https://help.salesforce.com/s/articleView?id=commerce.om_routing_rules_overview.htm&release=264.0.0&type=5)** Use rule groups to modify routing logic directly in the Order Management UI instead of using code or Salesforce Flow. - **[Delivery Estimations for Order Management Overview](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_overview.htm&release=264.0.0&type=5)** Provide customers with accurate delivery times by showing delivery dates on your store’s product detail and checkout pages. # Commerce Einstein Commerce Einstein uses AI to automate tasks and personalize customer shopping experiences. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Rights of ALBERT EINSTEIN are used with permission of The Hebrew University of Jerusalem. Represented exclusively by Greenlight. - **[What Is Commerce Einstein?](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_what_is.htm&release=264.0.0&type=5)** Commerce Einstein provides AI-powered merchandising tools to enhance the shopper experience. - **[Enable Commerce Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_deploy.htm&release=264.0.0&type=5)** Commerce Einstein features personalize shopper experiences, increase merchandiser productivity, and improve conversion. Enable Commerce Einstein so that merchandisers can turn on storefront activity tracking, turn on semantic search, and configure Einstein recommendations. Commerce Einstein deployment can take up to 24 hours to complete. - **[Tracked Data](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_data.htm&release=264.0.0&type=5)** Commerce Einstein uses cookies and session storage objects to store and track browser activities. It uses this information to tailor customer experiences. Some cookies are essential, and some are functional. Essential cookies are necessary for a site to work correctly and can’t be disabled. Commerce Einstein uses functional cookies and tracked API activities to personalize shopper data. - **[Add a Content Security Policy (CSP) Trusted Site for the Commerce Einstein Domain](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_csp_trusted_site_add.htm&release=264.0.0&type=5)** Before you turn on storefront activity tracking and semantic search, add a trusted URL for the Commerce Einstein domain. - **[Storefront Activity Tracking](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_activity_tracking_top.htm&release=264.0.0&type=5)** Storefront activity tracking captures browser-based, real-time customer activities on your storefront, unless settings are explicitly changed by the customer. - **[Semantic Search](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_semantic_search_top.htm&release=264.0.0&type=5)** Semantic search improves search results by matching and returning items that are semantically related to a query. - **[Reindex Commerce Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_manage_ce_index.htm&release=264.0.0&type=5)** Changes to your store’s product catalog are automatically sent to Commerce Einstein every 7 days, but you can manually reindex after making changes. Reindexing can take up to 24 hours to complete. - **[Einstein and Data Usage in B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.admin_einstein_features_data_usage_commerce.htm&release=264.0.0&type=5)** As an Einstein customer, it’s important for you to know what data is being used by B2B Commerce products. This table lists the data that is used by each B2B Commerce feature. # Commerce Key Concepts Get familiar with the main elements in B2B Commerce. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
Term Description
Commerce Store template The template includes pages, theme layouts, and components to help you create a shopper experience for your B2B customers. Showcase your products using the styles and layouts, and give shoppers an easy path to browse, add products to a cart, check out, arrange delivery, and track orders.
Buyer group

A buyer group is a collection of buyer accounts that have common access to specific entitlements.

(D2C Commerce only) During your initial data import, a default buyer group is assigned to your D2C store.

Buyer Account

(B2B Commerce only) A buyer account gives a user purchasing access to a store. The account is associated with B2B entities, like price books and entitlements, that define the behavior of the account. A buyer account is a customer account that’s enabled as a buyer and added to a buyer group.

Catalog

A catalog contains the hierarchical structure for the categories that classify your products in the store. To view products, you associate a catalog with the store. A store can have only one catalog.

(D2C Commerce) During your initial data import, a default catalog is assigned to your D2C store.

Category Use categories to organize products and make them easier to find. A category can contain up to five levels of subcategories and can belong to only one catalog.
Entitlement policy

An entitlement policy defines the products and product-related information that shoppers can see based on their buyer group membership.

(D2C Commerce) During the initial import, a default entitlement policy is assigned to the D2C store.

Inventory

(D2C Commerce only) Physical products available for ordering. D2C Commerce can integrate with Salesforce Omnichannel Inventory to track available inventory at one fulfillment location.

Order

(D2C Commerce only) An order is a list of purchased products. You can manage and service orders using a subset of the features of Salesforce Order Management.

Price adjustment schedule Use a price adjustment schedule to create a tiered pricing structure for your shoppers. Tiered pricing assigns discounts based on volume. The more a shopper buys of one product type, the lower the price.
Price book

A price book tracks the product prices that your store offers to shoppers. Create a custom collection of products with associated original prices, and assign it to specific stores or buyer groups.

(D2C Commerce only) During your initial data import, default Standard Price, Original Price, and Sale Price books are assigned to your D2C store.

Price book entry A price book entry is a product with a price that is listed in a price book. Each price book entry specifies a currency for the price.
Product A product is an item or service that you sell. You can display a given product in more than one store catalog.
Product media You can enrich your product offerings with images, URLs, and PDFs. A given product can include up to nine images.
Product variation A simple product is a product with one version—no different sizes, colors, or materials. A product variation contains a parent product and child variations of that parent. For example, tee shirt is a parent product, and tee shirt blue XL, tee shirt red S, and tee shirt Green XXL are child variations of that parent. Each child variation product has its own SKU.
Search From the moment that you create a record in Salesforce, the search engine works to make your information easy to find. In a B2B Commerce environment, you can search for products against a product’s discoverable fields.
Search filter (facet)

A filter makes it easier for shoppers to discover the product that they’re looking for. You add filters by selecting fields from a product record. For example, you can select the product field representing an item’s color. Then shoppers can filter their search results by the color values that you provide.

The only product field that you don’t select as a filter is Product Category. The Product Category field is a filter by default and can’t be removed.

Search indexing Search indexing is a process that the store admin runs after updating the store so that the index reflects the changes. Some changes that you make to your store don’t appear until they’re indexed.
Shopper account

(D2C Commerce only) An account that gives a shopper purchasing access to the store. The account is associated with D2C Commerce entities, like price books and entitlements, that define the behavior of the account.

A shopper account is typically created when the shopper self-registers in the storefront. All shoppers must be represented by person accounts.

Store A store is a container for all your commerce data, including catalogs, categories, price books, and products. All B2B stores use an Experience Cloud site for the front-end shopping experience to showcase your products, arrange information for shoppers, and process orders. You can create multiple stores to serve different business areas or regions.
#### See Also - [Commerce Resources](https://help.salesforce.com/s/articleView?id=commerce.comm_resources.htm&release=264.0.0&type=5 "In addition to Salesforce Help, Commerce has documentation resources to help you successfully learn about, set up, administer, and extend the B2B apps.") - [Commerce Personas and Permissions](https://help.salesforce.com/s/articleView?id=commerce.comm_personas.htm&release=264.0.0&type=5 "A typical B2B implementation involves several task-based personas, such as commerce administrator, merchandiser, developer, and shopper.") # Commerce Knowledge Articles Create knowledge articles with answers to common questions and concerns that shoppers or buyers tend to ask. Your customer service representatives can share these knowledge articles directly with customers. You can also work with your developer to embed the knowledge articles in your store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Knowledge articles can take different forms, but they all serve a common goal—to share knowledge with your shoppers or buyers. These articles can be frequently asked questions, blog posts, or supported guidelines. For example, a customer service representative can write or request an article that explains whether a warranty can be extended post-purchase and how to do that. Any time a customer has questions about warranty purchase rules, the customer service representative can share the knowledge article with the customer. For more information about creating and managing knowledge articles, see [Create a Knowledge Base with Salesforce Knowledge](https://help.salesforce.com/s/articleView?id=service.knowledge_whatis.htm&language=en_US). #### See Also - [Create a Knowledge Base with Salesforce Knowledge](https://help.salesforce.com/s/articleView?id=service.knowledge_whatis.htm&language=en_US) - [SOAP API Developer Guide: Knowledge](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_guidelines_knowledge.htm) # Commerce Marketplace Implement and start using Commerce Marketplace. For the user guide and patch notes, go to [Commerce Marketplace](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/commerce_marketplace_oct2025.pdf). # Commerce Order Routing Use the Commerce Order Routing flow to manage routing and fulfillment. Order Routing is optional unless your org uses Salesforce Payments. There are two versions of the order routing flow: Connected Commerce Order Routing and Growth Order Routing. Connect Commerce Order Routing can only be used with B2B and D2C Commerce. - **[Install Connected Commerce Order Routing](https://help.salesforce.com/s/articleView?id=commerce.om_impl_order_routing_flow.htm&release=264.0.0&type=5)** If you’re using Connected Commerce Order Routing, you can install the flow through the Commerce Setup Assistant. Because Connected Commerce only includes B2B and D2C Commerce, B2C Commerce can’t install this version of the app. - **[Install Growth Order Routing](https://help.salesforce.com/s/articleView?id=commerce.om_impl_growth_order_routing_flow.htm&release=264.0.0&type=5)** Because the Growth license can be purchased along with B2B, D2C, and B2C Commerce, all three products can use Growth Order Routing. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Commerce Personas and Permissions A typical B2B implementation involves several task-based personas, such as commerce administrator, merchandiser, developer, and shopper. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) | Persona | Description | Permissions | | --- | --- | --- | | System administrator | Performs Salesforce configuration tasks. For example, the system administrator creates and configures user accounts and enables digital experiences. | The system administrator is a high-level Salesforce admin with access to setup functionality, including tasks related to users, profiles, and object management. | | Commerce administrator | Performs D2C Commerce administration tasks, including site configurations and permissions. For example, the commerce administrator creates stores and assigns members to stores. | We provide a Commerce Admin permission set, which you can pair with the Identity user license. You can also clone and modify the permission set for your own implementation. | | Merchandiser | Designs and manages the storefront. Executes and maintains the best way to display and sell products. For example, the merchandiser imports products and configures search. | We provide a Merchandiser permission set, which you can pair with the Identity user license. You can also clone and modify the permission set for your own implementation. | | Order Management administrator | Performs Order Management tasks. For example, servicing returns. | Use a permission set that has the Salesforce Order Management permission license and permission to the Order Management console app. Pair the permission set with the Identity user license. | | Inventory manager | Configures and manages inventory functions using Omnichannel Inventory. | We provide an Omnichannel Inventory Manager permission set, which you can pair with the Identity user license. You can also clone and modify the permission set for your own implementation. | | Developer | Customizes the storefront and implements advanced features. Builds and develops the commerce experience and apps. For example, the developer uses APIs to integrate a third-party application or uses code to develop a custom component. | The permissions required depend on the tasks that the developer performs for your implementation. | | Buyer manager | (B2B stores only) Manages multiple buyers within a buyer account and multiple buyer accounts. | We provide a buyer manager permission set for external user accounts. You can also clone and modify the permission set for your own implementation. | | Buyer | (B2B stores only) Purchases products or services for organizations to use or resell. An external user who is registered on your storefront and can view and purchase products. | We provide a buyer permission set for external user accounts. Pair the permission set with Customer Community and External Apps licenses to give users the minimum access to use B2B features. You can also clone and modify the permission set for your own implementation. | | Shopper | (D2C stores only) An external user who is registered on your storefront and can view and purchase products. | We provide a shopper permission set for external user accounts. You can also clone and modify the permission set for your own implementation. | | Guest customer | An external user who can view and purchase products from your storefront but isn’t registered. | As part of configuring your store, you can set up guest access to enable guests to shop on your storefront. | #### See Also - [B2B Licenses and Allocations](https://help.salesforce.com/s/articleView?id=commerce.comm_b2b_licenses.htm&release=264.0.0&type=5 "A B2B license is based on your anticipated gross merchandise volume (GMV) or the number of orders placed to your store (PPO). You can purchase as many licenses as you need, but you can’t mix and match licenses, for example, a standalone and standalone plus license or a PPO and GMV license.") - [B2B Commerce Permission Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_perm_sets.htm&release=264.0.0&type=5 "Permissions determine the information users can access and the actions they can take when configuring or shopping at a store. Salesforce provides preconfigured permission sets, which define multiple permissions for internal and external users.") # Commerce Pricing Set up pricing for your B2B store by configuring a standard and custom price book for your store and buyer groups. Highlight reduced pricing for customers by configuring a strikethrough price book. When you create a store, it's automatically assigned a default price book and a default strikethrough price book. Before you can add products to other price books, they must have an entry in the standard price book. If you’re looking to support pricing strategies and procedures for more complex use cases, see [Advanced Pricing for Commerce Powered by Revenue Cloud](https://help.salesforce.com/s/articleView?id=commerce.comm_advanced_pricing_for_commerce_stores.htm&release=264.0.0&type=5 "Advanced Pricing for Commerce Powered by Revenue Cloud is required in order to use these B2B Commerce features:"). - **[Set Up Pricing for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_pricing.htm&release=264.0.0&type=5)** Select a price book, pricing strategy, and a custom pricing service provider. Physical products require a price book entry, without Product Selling Model (PSM) to show pricing on category and search pages. If a product only has a PSM with no base price, the price doesn’t show on the search or category pages. - **[Buyer Groups, Entitlements, and Pricing Strategies for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_buyergroup_entitlements_pricebooks.htm&release=264.0.0&type=5)** Set up buyer groups, entitlements, and price books to customize product visibility and pricing for each buyer in your store. Here are three examples of strategies you can consider for your store. - **[Set Up a Standard Price Book](https://help.salesforce.com/s/articleView?id=commerce.comm_standard_pricebook.htm&release=264.0.0&type=5)** All products in your B2B store must be included in the standard price book before you can add them to custom price books for specific stores or buyer groups. You can have only one standard price book. - **[Add a Product to a Custom Price Book](https://help.salesforce.com/s/articleView?id=commerce.comm_products_pricebooks.htm&release=264.0.0&type=5)** You can add products that are in your standard price book to a price book tailored for a specific store or buyer group. You can then manage the products in the custom price book for the audience. - **[Create a Buyer Group or Store Price Book for B2B Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_assign_pricebooks.htm&release=264.0.0&type=5)** To display prices to your customers, create a buyer group or store price book. You can assign a price book to buyer groups, stores, or both, but you must have at least one. When you assign a price book to a store, any customer who can access the store is eligible for prices within that price book. When you assign a price book to a buyer group, the accounts associated with that buyer group are eligible for prices within that price book. - **[Set Up a Pricing Strategy in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_priority_pricing.htm&release=264.0.0&type=5)** In a B2B store, a buyer can be a member of multiple buyer groups, or multiple price books can be associated with a buyer group or store. So it’s possible that an individual buyer can have multiple price books assigned to them. When multiple prices are available to a buyer, you can set a pricing strategy to determine which price is shown. - **[Set Up Lowest List Price Compliance](https://help.salesforce.com/s/articleView?id=commerce.comm_setup_lowest_list_price.htm&release=264.0.0&type=5)** When you announce a promotion or price reduction, a European Union (EU) mandate requires that stores must show the lowest price for a product over the past 30 days. If the original price is displayed and is greater than the list price, the lowest list price also displays. B2B stores must show the lowest price and any price adjustments for guest users but don’t need to show it for logged-in users. For new stores, the Lowest List Price component is included on the Product Details page. For existing stores, you must add the component to the page. After this feature is enabled, you can’t disable it. - **[Set Up a Strikethrough Price Book to Highlight Discounts](https://help.salesforce.com/s/articleView?id=commerce.comm_original_pricebook.htm&release=264.0.0&type=5)** To highlight a discount that you granted to a buyer, you can show a strikethrough price next to the negotiated price. It’s called a strikethrough price because the value is shown with a line through it. The strikethrough price is the product’s original price or manufacturer’s suggested retail price (MSRP). The strikethrough price book is automatically created with your B2B Commerce store. - **[Set Up Tiered Pricing for a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_pas.htm&release=264.0.0&type=5)** Offer your buyers discounts for bulk purchases by setting up tiered pricing based on the number of items purchased. # Commerce Promotions Enhance your B2B store by adding customized promotions. Create segments, discounts, qualifiers, and coupons for the right customers to receive the right deals. Highlight promotions for eligible customers on store pages and during checkout to boost engagement and sales. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Considerations for Commerce Promotions in B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_get_to_know.htm&release=264.0.0&type=5)** Optimize your B2B store promotions by considering key factors such as discount configuration, application timing, eligible recipients, and coupon requirements. Effective promotions can drive purchases and enhance customer loyalty. - **[Configure a Promotion](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_configure.htm&release=264.0.0&type=5)** Create a promotion for your B2B store by adding segments, discounts, qualifiers, and coupons. Customize each element to target specific customer groups, maximize engagement, and boost sales. - **[Customize Promotions in Experience Builder](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_customize_components.htm&release=264.0.0&type=5)** Edit your store pages and components to customize how eligible customers see promotions. - **[Promotion Combinations](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_combination_intro.htm&release=264.0.0&type=5)** There are hundreds of ways to combine promotion levels, types, and qualifiers to craft the perfect promotion for your store’s needs. - **[Example Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_example_promotions.htm&release=264.0.0&type=5)** When you configure a promotion, you customize it based on what you would like customers to receive and how they qualify. The examples show you how to combine basic discount and qualifier options to create different outcomes. Use them as a starting point, try your own unique combinations, and incorporate more advanced settings to create the promotions that you need. - **[Prioritizing Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_prioritization.htm&release=264.0.0&type=5)** When a cart is eligible for multiple promotions, your exclusivity and priority rules determine which promotions apply. Priority is first determined by exclusivity, which specifies whether a promotion can be combined with other promotions. Next, the promotion’s priority is based on its priority number, discount type, discount amount, and promotion ID. - **[Remove a Promotion](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_remove.htm&release=264.0.0&type=5)** You can remove a promotion from your store temporarily or permanently. # Commerce Resources In addition to Salesforce Help, Commerce has documentation resources to help you successfully learn about, set up, administer, and extend the B2B apps. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## What’s New in Winter ‘26? Learn about all the features delivered as part of this release. |   | | --- | | [B2B Commerce Winter ‘26 Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_comm.htm&language=en_US) | ## Help |   | | --- | | [B2B Commerce Help](https://resources.docs.salesforce.com/latest/latest/en-us/sfdc/pdf/commerce.pdf) (PDF) | | [Using B2B Commerce to Create a D2C Channel](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/comm_d2c.pdf) | ## Developer Resources |   | | --- | | [B2B Commerce Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.b2b_b2c_comm_dev.meta/b2b_b2c_comm_dev/b2b_b2c_comm_dev_guide.htm) (HTML) | |   | | [Salesforce Commerce Plug-In CLI Command Reference](https://developer.salesforce.com/docs/atlas.en-us.b2b2c_cli_reference.meta/b2b2c_cli_reference/1cb2c_cli_reference.htm) (HTML) | | [Connect REST API Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/intro_what_is_chatter_connect.htm) | | [Apex Reference Guide](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_ref_guide.htm) | | [B2B Commerce Aura to LWR Migration Guide](https://developer.salesforce.com/docs/commerce/lwr-migration/guide) | | [Developer Considerations for B2B Stores Created with an Aura Template](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/AuraDevTopics.pdf) | ## Trailhead |   | | --- | | [Get Started with Salesforce B2B](https://trailhead.salesforce.com/en/users/bcommerce/trailmixes/get-started-with-salesforce-b-2-b-commerce) | | [Get Started with D2C Commerce](https://trailhead.salesforce.com/en/users/bcommerce/trailmixes/get-started-with-salesforce-b-2-b-2-c-commerce) | ## Videos |   | | --- | | [Sell Direct to Consumers with Salesforce D2C Commerce](https://salesforce.vidyard.com/watch/XvY4T9shnyfgYyJdNLwmoe) | | [Get to Know B2B](https://salesforce.vidyard.com/watch/jjhMF6STPLv5SAbeGcViSY?) | ## Related Resources |   | | --- | | [Salesforce Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_order_management.htm&language=en_US) (Help) | | [Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory.htm&language=en_US) (Help) | | [B2B Stores Created with Aura Template: Special Configuration Information](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/AuraHelpTopics.pdf) | |   | |   | # Commerce Search Index The search index makes products in your B2B Commerce store searchable. Rebuild the search index after making updates to your store so that the changes are reflected for your customers. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5)** Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates. - **[Commerce Search Index Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_considerations.htm&release=264.0.0&type=5)** Before activating your B2B Commerce store, update your search index to enable shoppers to see products on your search and category pages. Also update the search index after you make changes to your store configuration or product catalog. If you only modify price books or price book entries, you don’t need to update the index unless you have a sort rule based on price. You can manually update your index or turn on automatic updates. - **[Commerce Search Index Update Methods](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_update_methods.htm&release=264.0.0&type=5)** You can run a partial or full search index update depending on the type of information that has changed in your B2B Commerce store configuration or product catalog. - **[Commerce Search Index Error Mapping](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_error_mapping.htm&release=264.0.0&type=5)** Updating the search index can result in product errors and index failures. If all products have errors, the index fails. Review index failures in the red banner on the Search Index page, and review product errors in the orange banner. You can also download a CSV file to resolve product errors. Product errors and index failures are refreshed with each partial index update. - **[Commerce Search Index Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_troubleshooting.htm&release=264.0.0&type=5)** Updating the search index can result in product errors and index failures. When some products have errors, you can download a CSV file on the Search Index page to review and resolve the errors. If all products have errors, the index fails. A common reason for product errors and index failures includes exceeding limits. # Commerce Search Index Considerations Before activating your B2B Commerce store, update your search index to enable shoppers to see products on your search and category pages. Also update the search index after you make changes to your store configuration or product catalog. If you only modify price books or price book entries, you don’t need to update the index unless you have a sort rule based on price. You can manually update your index or turn on automatic updates. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) When updating the search index, keep these considerations in mind. - The search index includes only variation child products and simple products. Variation parent products aren’t included when you update the index and are only used as decoration. When you enable **Show parent product only** in the Product Variation Display Settings, the search results are decorated with the variation parent although the match is on the variation child product. - Products without entitlement policies are included in the index but aren’t searchable. - Products with more than 2,000 buyer groups are excluded from the index. - When both **Displayable Fields** and **Show Parent Product Only** are enabled, search returns only the best-matched product, which can be either the parent product or a child product, depending on which one best matches the user’s query. - Update your search index whenever you change or remove these items. - Product or product attribute fields that are marked as searchable, sortable, or filterable - Values of product fields that are marked as searchable or filterable - Products in the store’s catalog - Product translations in the store’s catalog - Categories or the category hierarchy structure - Category names - Translations of category names - Languages in a store or catalog - Language translations for a store or catalog - Products in an entitlement policy - Product variation grouping - Sorting rules - Geolocation of your organization - Names of custom fields on the Product2 object #### See Also - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") - [Commerce Search Index Update Methods](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_update_methods.htm&release=264.0.0&type=5 "You can run a partial or full search index update depending on the type of information that has changed in your B2B Commerce store configuration or product catalog.") - [Mark Products as Searchable or Not Searchable](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_products.htm&release=264.0.0&type=5 "After you create your initial search index, all products in the catalog are searchable by default. If you want to make a product not searchable, you can exclude it from search. You can change whether a product is searchable at any time.") - [Mark Product Fields as Searchable or Not Searchable for a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_fields.htm&release=264.0.0&type=5 "Marking fields as searchable helps the search engine index more content, improving search accuracy and relevance in you B2B Commerce store. Avoid marking fields as searchable if the fields contain sensitive information or provide generic data.") - [Enable Semantic Search for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_enable_semantic_search.htm&release=264.0.0&type=5 "Semantic search improves your search results by matching and returning items that are semantically related to a query. Semantic search requires a Content Security Policy (CSP) trusted site for the Commerce Einstein domain.") - [Configure How to Display Product Variation Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_setup_search.htm&release=264.0.0&type=5 "Tailor how search results appear on your B2B store Product List page. You can opt to show only the parent product, only the best matching product, or all the variations of the parent product.") - [Enable Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_displayable_fields.htm&release=264.0.0&type=5 "Enable displayable fields to decrease page load times and retrieve product data faster on search, product, cart, and checkout pages for B2B Commerce stores.") # Commerce Search Index Error Mapping Updating the search index can result in product errors and index failures. If all products have errors, the index fails. Review index failures in the red banner on the Search Index page, and review product errors in the orange banner. You can also download a CSV file to resolve product errors. Product errors and index failures are refreshed with each partial index update. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Error Mapping ![Review product errors and index failures on the Search Index page.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_search_index_page.png)
Index Update Status Scenario Maps To Action
Completed Index completed without product errors Completed status in History None
Index completed with product errors Orange product error banner Download the CSV file to resolve the product errors. See Commerce Search Index Troubleshooting.
Failed Index failed without product errors Red index failure banner Use the message to resolve the index failure.
Index failed with product errors
  • Red index failure banner
  • Orange product error banner
  • In the red index failure banner, use the message to resolve the index failure.
  • In the orange product error banner, download the CSV file to resolve the product errors. See Commerce Search Index Troubleshooting.
#### See Also - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") - [Commerce Search Index Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_considerations.htm&release=264.0.0&type=5 "Before activating your B2B Commerce store, update your search index to enable shoppers to see products on your search and category pages. Also update the search index after you make changes to your store configuration or product catalog. If you only modify price books or price book entries, you don’t need to update the index unless you have a sort rule based on price. You can manually update your index or turn on automatic updates.") # Commerce Search Index Troubleshooting Updating the search index can result in product errors and index failures. When some products have errors, you can download a CSV file on the Search Index page to review and resolve the errors. If all products have errors, the index fails. A common reason for product errors and index failures includes exceeding limits. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Product Errors
Message Code Resolution
ErrorAttributeDataSizeLimitExceeded You reached the data size limit for all localized and non-localized attributes of a product for a single locale. Contact Salesforce Customer Support.
ErrorTooManyBuyerGroupsPerProduct You reached the limit of 2,000 buyer groups for a product. Remove some buyer groups from the product and try again.
ErrorTooManyCategoriesPerProduct

You reached the maximum number of searchable categories allowed per product. The default value is 250, and the maximum value is 500. Remove some categories and try again.

To identify your org’s limit or request an increase up to 500 categories per product, contact Salesforce Customer Support.

ProductPriceMisconfiguration You encountered an error from the pricing engine due to a misconfiguration in the product price. To resolve this issue, consult the price configuration documentation.
#### See Also - [Search Data Limits](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-b2c-comm-data-model-search-limits.html) - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") - [Commerce Search Index Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_considerations.htm&release=264.0.0&type=5 "Before activating your B2B Commerce store, update your search index to enable shoppers to see products on your search and category pages. Also update the search index after you make changes to your store configuration or product catalog. If you only modify price books or price book entries, you don’t need to update the index unless you have a sort rule based on price. You can manually update your index or turn on automatic updates.") - [Commerce Search Index Error Mapping](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_error_mapping.htm&release=264.0.0&type=5 "Updating the search index can result in product errors and index failures. If all products have errors, the index fails. Review index failures in the red banner on the Search Index page, and review product errors in the orange banner. You can also download a CSV file to resolve product errors. Product errors and index failures are refreshed with each partial index update.") # Commerce Search Index Update Methods You can run a partial or full search index update depending on the type of information that has changed in your B2B Commerce store configuration or product catalog. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
Method When to Use IT
Partial Update You change or remove products, catalogs, assignment categories, and entitlements.
Full Update
#### See Also - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") - [Commerce Search Index Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_considerations.htm&release=264.0.0&type=5 "Before activating your B2B Commerce store, update your search index to enable shoppers to see products on your search and category pages. Also update the search index after you make changes to your store configuration or product catalog. If you only modify price books or price book entries, you don’t need to update the index unless you have a sort rule based on price. You can manually update your index or turn on automatic updates.") # Commerce Store Components Components are the building blocks of B2B stores. You can make a B2B template yours by dragging components onto store pages and customizing component properties. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[LWR and Aura Store Templates](https://help.salesforce.com/s/articleView?id=commerce.comm_lwr_aura_comps.htm&release=264.0.0&type=5)** Starting with Summer ’23, all new B2B stores are built on the Lightning Web Runtime (LWR) platform. Some B2B stores still use the Aura platform and, in some places, the Commerce App UI and documentation still refer to Aura features and components. If you’re using a new LWR store, you can ignore the Aura information. - **[LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5)** B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder. - **[Einstein Recommendations Component (LWR) for D2C Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_component.htm&release=264.0.0&type=5)** The Einstein Recommendations component personalizes the shopping experience and reduces the manual effort required to drive product discovery on your storefront. - **[Expressions in Commerce Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components_expressions.htm&release=264.0.0&type=5)** Expression Language is a specialized syntax that pulls data into an LWR component in Experience Builder. You can use expressions instead of static text to make your B2B store more customized and dynamic. - **[Open Source Components for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_open_source_components.htm&release=264.0.0&type=5)** Open source components offer editable source code for standard B2B store components. Use an open source component to enhance the component or customize it to meet your requirements without having to rebuild the entire component. #### See Also - [Build Custom Components](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-b2c-comm-custom-component.html) # Commerce Store Setup Tasks To get your store running, complete the guided tasks on the store home page. You can complete the recommended tasks after you activate your store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
B2B Store Required Tasks
Tasks Resources
Add branding to your site. To copy the colors and styles from an existing website, click Add Your Brand, and enter its URL. See Website Design for B2B Stores.
Add products. Assign, create, or import at least one product to your catalog. See Add a Product to a Store and Import Product Data.
Set up taxes. Set up either the manual tax solution provider or install a third-party tax solution provider. See Configure Tax Settings for a Commerce Store.
Set up payments.
  • Set up payments using Salesforce Payments or another provider, and associate it with your merchant account.
  • Set up at least one tax provider, and associate it with your tax provider.
  • Accept the default Salesforce Native Shipping option, or configure at least one shipping provider.

Find information on payments, taxes, shipping, and more at Configure Custom Checkout.

Personalize buyer pricing. Personalize stores, entitlements, pricing, and promotions for users. See Example Strategies for Buyer Groups, Entitlements, and Price Books for B2B Stores.
Set up buyers, buyer groups, and entitlements. On the Customer Workspace, create a buyer group, create an entitlement policy, and add a buyer to a B2B store.
Manage store access. Manage which users can access your store. See Access.
D2C Store Required Tasks
Task Resources
Add branding to your site. To copy the colors and styles from an existing website, click Add Your Brand, and enter its URL. See Website Design for B2B Stores.
Add products. Assign, create, or import at least one product to your catalog. See Add a Product to a Store and Import Product Data.
Let guests shop your store.

If you’ve enabled person accounts, then guest access and self-registration are automatically enabled and the task is marked complete. Otherwise, click this task to enable person accounts, guest access, and self-registration, which usually takes up to 1 hour to complete. After enabled, person accounts become the default record type for the guest user profile.

To enable person accounts manually, see Enable Person Accounts for Commerce.

Set up payments.
  • Set up payments using Salesforce Payments or another provider, and associate it with your merchant account.
  • Set up at least one tax provider, and associate it with your tax provider.
  • Accept the default Salesforce Native Shipping option, or configure at least one shipping provider.

Find information on payments, taxes, shipping, and more at Configure Custom Checkout.

Reorder Portal Required Tasks
Task Resources
Add branding to your site. To copy the colors and styles from an existing website, click Add Your Brand, and enter its URL. See Website Design for B2B Stores.
Add products. Assign, create, or import at least one product to your catalog. See Add a Product to a B2B Commerce Store from the Workspace and Import Product Data for a B2B Store.
Set up payments.
  • Set up payments using Salesforce Payments or another provider, and associate it with your merchant account.
  • Set up at least one tax provider, and associate it with your tax provider.
  • Accept the default Salesforce Native Shipping option, or configure at least one shipping provider.

Find information on payments, taxes, shipping, and more at Configure Custom Checkout.

Set up email invitations. Click the link that redirects to the Configure an Einstein Next Best Action Component for a Commerce Reorder Portal help page.
# Commerce Workspace Considerations Commerce workspaces are dedicated to specific merchandising jobs to help with the setup and ongoing management of your B2B store. The Commerce workspace list view functions a little differently from the standard Salesforce list view. Each workspace functions specifically for the type of data it’s meant to manage, but you can accomplish some common tasks across workspaces. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) These are some highlights of what you can do with the Commerce workspace list view: - View data filtered by store. - Create cross-entity records, for example, Product, Price, and Category together. - Select and filter cross-entity fields for columns, such as Related Lists. For example, filter products based on category assignment. - Edit multiple records. - Filter and search products in the Product workspace. - Create lists. ## Important Workspace Usage Notes - Sorting is available only in the Category workspace. - Search your full product catalog in the Product workspace. The system searches for the term in all indexed columns, for example, all columns with text fields. You can use wildcards, operators, and reserved characters. For example, you can enter these search terms: - (Blue AND Shirt): Finds products with the words “blue” and “shirt” in any product field. - 60100\*: Finds SKUs with 60100 as the first numbers. - Sip\\&Go: Finds products with the name “Sip&Go.” Because the ampersand (&) character is a reserved character, insert a backslash (\\) to indicate the literal & character. - For information about which wildcards, operators, and reserved characters you can use in the Product Workspace search box, see [FIND {SearchQuery}](https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_sosl_find.htm). - After two minutes, the search times out. To decrease the time required for searching, try narrowing the search term. - In the Promotions workspace, we recommend activating and prioritizing only the promotions that you need. This improves store performance. When a customer adds products to the cart, the first 50 active manual promotions and the first 50 active automatic promotions are evaluated for the customer’s account to determine whether they apply. - In the Customer workspace, you can assign customers to buyer groups and buyer groups to stores. #### See Also - [Manage Commerce Store Data with Workspaces](https://help.salesforce.com/s/articleView?id=commerce.comm_workspaces_manage.htm&release=264.0.0&type=5 "With workspace lists, you can personalize your list view to work with just the records you’re interested in for your B2B store. Customize information to show and create filtered lists. Apply bulk actions and edit entries directly in the workspace.") # Commerce Workspaces In the Commerce app, you can use multiple workspaces to make your work easier, find and update information, and organize shared content. You can access each workspace without having to leave the Commerce app. Understand the landscape of each workspace and the difference between the Commerce workspace list view and the standard Salesforce list view. Customize list views, apply bulk actions, and edit entries in the workspaces to manage your B2B store’s needs. Manage your store’s registered buyers and shoppers in the Customer workspaces. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Access Commerce workspaces from the navigation sidebar of the Commerce app. Each workspace is dedicated to a specific merchandising job. For example, manage your store’s products from the Product Workspace (1), or create upsell opportunities and more order value in the Promotions Workspace (2). ![Commerce workspaces in navigation panel](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_workspaces.png) The Commerce workspace lists are different from the standard Salesforce lists. With workspace lists, you can personalize your list view to work with just the records you’re interested in. You can also filter, search, and update records directly in each workspace list. ![Commerce workspace list view](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_workspaces_lists.png) - **[Commerce Workspace Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_workspace_consideratons.htm&release=264.0.0&type=5)** Commerce workspaces are dedicated to specific merchandising jobs to help with the setup and ongoing management of your B2B store. The Commerce workspace list view functions a little differently from the standard Salesforce list view. Each workspace functions specifically for the type of data it’s meant to manage, but you can accomplish some common tasks across workspaces. - **[Manage Commerce Store Data with Workspaces](https://help.salesforce.com/s/articleView?id=commerce.comm_workspaces_manage.htm&release=264.0.0&type=5)** With workspace lists, you can personalize your list view to work with just the records you’re interested in for your B2B store. Customize information to show and create filtered lists. Apply bulk actions and edit entries directly in the workspace. # Common Promotions Examples in Point of Sale Learn how to create promotions with use cases to help you engage shoppers with discounts and offers. ### Required Editions
Available in:
For the basics of creating promotions, see [Creating Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&release=264.0.0&type=5 "Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes."). ## Use Cases See the table for use cases and steps to create the promotion.
Example Promotion Steps to Create Promotion

All t-shirts on sale for $10

- Create a Promotion of type: Fixed Price.

- Fill in the basic promotion information.

- In promotion configuration, select Fixed Price Amount (example, $10).

- Select Product or Category promotion rule to only apply it to Product X.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

$10 off all dresses

- Create a Promotion of type: Amount Off.

- Fill in the basic promotion information.

- In the promotion configuration, select Amount Off (example, $10).

- Select Product or Category promotion rule to only apply it to Product X.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

10% off all dresses

- Create a Promotion of type: Percentage Off.

- Fill in the basic promotion information.

- In promotion configuration, select Percentage Off (example, 10%)

- Select Product or Category promotion rule to only apply it to Product X.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two chairs for 50$

- Create a Promotion of type: Buy X for Y.

- Fill in the basic promotion information.

- In promotion configuration, select Fixed Price Amount (example, $50).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X to apply the discount to.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two chairs and get one table 40% off

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information.

- In promotion configuration, select percentage off (example, 40%).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X to buy.

- In Promotion rules, add discounted products, select the quantity (example qty. 1), and select the discounted products X.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two chairs, get one table for no additional cost

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information.

- In promotion configuration, select fixed Amount (example, qty. 0).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X to buy.

- In Promotion rules, add discounted products select the quantity (example, qty. 1), and select the discounted products X.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy one cardigan, and get 20%. Buy two cardigans and get 30%, buy three cardigans, and get 40% off. - Create multiple BOGO promotions for each quantity and percentage combination.

30% off all clothing on February 14 between 11 AM–2 PM PST

- In the Promotion configuration, provide the start date and end date in UTC for the future date.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two bottles of wine and get $10 off

There are two ways to create this promotion:

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information. In promotion configuration, select Amount Off (example, $10).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X to buy.

Don’t select discounted products if there are no discounted products. Qualifying products are treated as discounted products.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

OR

- Create a Promotion of type: Amount Off. - Fill in the basic promotion information.

- In the promotion configuration, select Amount Off (example, $10).

- Select Product or Category promotion rule to only apply it to Product X.

- In Promotion rules, select Order rules and create an order rule with an order total >= 100.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Spend 100$ on suits and get $10 off

- Create a Promotion of type: Amount Off. - Fill in the basic promotion information.

- In the promotion configuration, select Amount Off (example, $10).

- Select Product or Category promotion rule to only apply it to Product X.

- In Promotion rules, select Order rules and create an order rule with an order total >= 100.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants and get one shirt for $10

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information.

- In promotion configuration, select Fixed Amount (example, $10).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to buy.

- In Promotion rules, add discounted products, select the quantity (example, qty. 1), and select the discounted products Y (example, shirt).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants and get $10 off one shirt

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information.

- In the promotion configuration, select Amount Off (example, $10).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to buy.

- In Promotion rules, add discounted products, select the quantity (example, qty. 1), and select the discounted products Y (example, shirt).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants and get one shirt at no additional cost

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information.

- In promotion configuration, select Fixed Amount (example, $0).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to buy.

- In Promotion rules, add discounted products, select the quantity (example, qty. 1), and select the discounted products Y (example, shirt).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants and get 40% off one shirt

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information. In promotion configuration, select Percentage Off (example, 40%).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to buy.

- In Promotion rules, add discounted products, select the quantity (example, qty. 1) and select the discounted products Y (example, shirt).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants and one shirt for $100

- Create a Promotion of type: Buy X for Y.

- Fill in the basic promotion information.

- In promotion configuration, select Fixed Price Amount (example, $100).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to apply the discount to.

- In the Qualifying product, again, add a new rule select the quantity (example, qty. 1) and select the product X (example, shirt) to apply the discount to.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants and one shirt and get 40% off

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information. In promotion configuration, select Percentage Off (example, 40%).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to buy. Then, select the quantity (example, qty. 1) and select the product Y (example, shirt) to buy.

Don’t select discounted products if there are no discounted products. Qualifying products are treated as discounted products

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants or two shirts for $30

No OR Product selection logic exists in the Rules. Here, we will have to create two separate promotions.

- Create one Promotion for Pants and one Promotion for Shirts.

- The Promotion will be of type Buy X for Y with qualifying groups.

Buy two pants and one shirt, get one tie for $5

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information. In promotion configuration, select Fixed Price (example, $5).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to buy.

- Add one more rule selecting the quantity (example, qty. 1) and select the product Y (example, shirt).

- In Promotion rules, add discounted products, select the quantity (example, 1), and select the discounted products Z (example, Tie).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants and one shirt, and get one tie at no additional cost

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information. In promotion configuration, select Fixed Price (example, $0).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to buy.

- Add one more rule selecting the quantity (example, qty. 1) and select the products Y (example, shirt).

- In Promotion rules, add discounted products, select the quantity (example, qty. 1), and select the discounted products Z (example, Tie).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants, one shirt, and one tie for $199

- Create a Promotion of type: Buy X for Y. - Fill in the basic promotion information.

- In promotion configuration, select Fixed Price Amount (example, $199).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to apply the discount to.

- In the Qualifying product, again, add a new rule select the quantity (example, qty. 1) and select the products Y (example, shirt) to apply the discount to.

- In the Qualifying product, again, add a new rule, select the quantity (example, qty. 1), and select the products Z (example. Tie) to apply the discount to.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy three sandals and get the cheapest at no additional cost

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information. In promotion configuration, select Fixed Price (example, $0).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 3) and select the products (X, Y, and Z) to buy.

- In Promotion rules, add discounted products, select the quantity (example, qty. 1), and select the discounted products (X, Y, and Z) to discount.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants, get 40% off one shirt and one tie

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information.

- In promotion configuration, select Percentage Off (example, 40%).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to buy.

- In Promotion rules, add discounted products, select the quantity (example, qty. 1), and select the discounted products Y (example, Shirt).

- Add one more rule selecting the quantity (example, qty. 1) and select the product Z (example, Tie).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants, get one shirt or one tie at no additional cost

- Create a Promotion of type: BOGO.

- Fill in the basic promotion information. In promotion configuration, select Fixed Price (example, $0).

- In Promotion rules, add qualifying products rules.

- In Qualifying products, select the quantity (example, qty. 2) and select the products X (example, pants) to buy.

- Add one more rule selecting the quantity (example, qty. 1) and select the products Y (example, shirt).

- In Promotion rules, add discounted products, select the quantity (example, qty. 1), and select the discounted products Z (example, Tie).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two pants for $29 each, three pants for $25 each, four pants for $19 each

- Create multiple promotions of type, Buy X for Y, and stack them based on the priority.

- Put "Buy 4 for $36" at the top and "Buy 2 for 58" last.

Buy two pants get $2 off, buy three pants get $3 off, buy four pants get $4 off Same as the previous use case but use BOGO Promotion with Amount Off.
Buy two pants get 10% off, buy three pants get 15% off, buy four pants get 20% off Same as the previous use case but use BOGO Promotion with Percent Off.
Spend 100$ on pants and get $10 off

- Create a Promotion of type: Amount Off. - Fill in the basic promotion information.

- In the promotion configuration, select Amount Off (example, $10).

- Select Product or Category promotion rule to only apply it to Product X (example, Pants).

- In Promotion rules, select Order Rules and create an order rule with an order total >= 100.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Spend $100 and get $20 off the order

- Create a Promotion of type: Amount Off. - Fill in the basic promotion information.

- In the promotion configuration, select Amount Off (example, $20).

- In Promotion rules, select Order Rules and create an order rule with an order total >= 100.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Spend $100 and get 25% off the order

- Create a Promotion of type: Percentage Off.

- Fill in the basic promotion information.

- In promotion configuration, select Percentage Off (example, 25%).

- In Promotion rules, select Order Rules and create an order rule with an order total >= 100.

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Buy two items store-wide and get $10 off We don’t have a quantity rule as of now.
Buy two items store-wide and get 15% off We don’t have a quantity rule as of now.

Offer exclusive member pricing to signed-up members

- Create a Promotion of type: Fixed Price.

- Fill in the basic promotion information.

- In promotion configuration, locate the Amount Expression field.

- Enter the product field name that contains your member prices (example, $CustomDecimal0).

- In the Customer section, configure the customer group type to define which customers receive member pricing (example, Member, VIP, Loyalty).

(As it’s an auto-apply in promotion codes, turn on the Auto Apply Flag).

Get two skincare samples at no additional cost if you buy hand lotion

- Create a Promotion of type: SAMPLES AT NO ADDITIONAL COST.

- Fill in the basic promotion information. In Promotion Rules, select at no additional cost samples (Product Y).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

No additional cost standard shipping over $50

- Create a Promotion of type: NO ADDITIONAL COST SHIPPING.

- Fill in the basic promotion information.

In Promotion Rules Order Rules, add a rule using the attribute Shipping Method. Enter the shipping method ID related to Shipping Method (for example, standard shipping).

- In the Order rules, add another rule for attribute type Order Total with >= operator and value as # (example, $50).

(As it's an auto-apply in promotion codes, turn on the Auto Apply Flag).

Spend $100 and receive a $25 gift card (bounce-back promotion) An associate signs into the POS app and scans products using either a fixed POS scanner or an iPhone camera for mPOS. They check if the customer's purchase qualifies for a "Spend $100, get $25 Gift Card" promotion and add the gift card if eligible. To account for the promotion, they reduce the order total by $25 using a transaction discount, which is applied to all items except the gift card. Finally, the associate completes the transaction.
# Compare Point of Sale Artifacts Diff Tools help you quickly identify configuration discrepancies between environments, ensuring accurate artifact imports and streamlined debugging processes. By pinpointing differences, you can verify the integrity of your deployments and resolve issues more efficiently. 1. In CMS, go to **Advanced** | **Copy Tools** | **Import**. 2. Search for the artifact or bundle you want to compare. 3. Expand a bundle by clicking the **+** sign. 4. Click the ellipses (vertical dots). 5. Click **Diff this app config**. 6. Select a config to compare. ![A screenshot shows the output from comparing app configs.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_copy_compare_config.png) # Complete a Pick Ticket Fulfill orders by selecting a pick ticket and picking the items on the list. As you fulfill the order, track which items have been picked, select rejection reasons for unpicked items, and print item fulfillment specifics. ### Required Editions
View supported editions.
1. Open the Store Fulfillment app, and select a location, if necessary. 2. Click **Ready to Pick**. 3. Either click **Print** to print the order details, or track the picking online by clicking **Start Picking** for a new ticket or **Continue Picking** for an in-progress ticket. After you click **Start Picking** or **Print**, your name appears in the Worked on By field. If a different associate clicks **Start Picking** or **Print**, the new associate’s name replaces your name. 4. As you pick items for the order, increase the quantity picked field. If the entire quantity is picked, click **Pick All**. If the entire quantity is rejected, click **Reject All**. Your progress is saved if you leave an order unfinished. If an item quantity is partially rejected, fulfillment orders are filled in order of placement. For example, if two orders need the same item but only some of the quantity could be picked, the order placed first is prioritized. 5. After all items are either picked or rejected, click **Complete Pick Ticket**. 6. Review the order summary details and confirm. The order is now available in the Ready for Pickup or Ready to Pack lists. #### See Also - [Store Fulfillment Application Overview](https://help.salesforce.com/s/articleView?id=commerce.om_store_fulfillment_app.htm&release=264.0.0&type=5 "The Store Fulfillment app gives you quick and easy access to each step of the fulfillment process: selecting a store, finding new orders for the store, creating a ticket for one or more orders, picking or rejecting items, and packing them up or shipping them out.") # Complete Sale Transactions in POS Point of Sale's POS app streamlines the checkout process, enabling flexible and efficient sales transactions. Associates can accept various payment methods, including single and multitender options, ensuring a seamless and quick customer experience. Configure available tender types in CMS before running transactions. - Platform Support: iPhone & iPad - Offline Support: Yes 1. Configure tender types in CMS. The order of the tender types listed under Supported Tenders determines their invocation sequence in POS. For example, if Cash is listed first, it’s the default choice during checkout in the POS app. 1. In CMS, go to **Store Management** | **Store Settings** | **Payment**. 2. Under Supported Tenders, enter a comma-separated list of supported tenders (for example Cash, Credit Card, Gift Card, Check, Finance, Miscellaneous, Reward Card). 3. (Optional) If your setup includes miscellaneous tendering, See [Configure Miscellaneous Tender on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_misc_tender_configure.htm&release=264.0.0&type=5 "Point of Sale supports miscellaneous tender as a payment option in the POS app. This allows for more options if the more common or standard payment methods (like card, cash, check, finance, or PayPal) don't work for a merchant's specific payment types. Configure your store and register settings in CMS to support Mischellaneous Tenders."). 4. (Optional) If your setup supports multiple tender types simultaneously, see [Multitendering on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_multitender_config.htm&release=264.0.0&type=5 "Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app."). 5. Save your changes. 2. Start a transaction in POS. In offline mode, product scanning is not supported. You need to manually search for and add products. For scanning capabilities during offline mode, which supports iPad scanning, see [Express Checkout in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_express.htm&release=264.0.0&type=5 "Speed up customer checkouts with Express Checkout in the POS app. Configure express checkout with a deep link, by manually adding items, or a quantity picker. Associates can scan items directly into the cart, handle errors, and complete orders efficiently."). For each sales transaction involving a logged-in customer, the customer's record is automatically associated with the transaction. If the purchase is an online order requiring delivery, you have the option to add a shipping address. See [Omnichannel (V2) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_v2_overview.htm&release=264.0.0&type=5 "Integrate shopping experiences across channels with Point of Sale's Omnichannel."). 1. With products in the cart, select **Checkout**. 2. Look up an existing customer, add a new customer, or continue with guest checkout. 3. (Optional) If you need to select a different tender type than the default one, exit the window and select one from the tender type menu. 3. (Optional) Complete a cash transaction. For app builds version 9.10.1 or higher, if a cash transaction is canceled, it’s recorded in the Electronic Journal as "Cash Transaction Canceled." See [Electronic Journal (EJ) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud."). The record includes details such as the store ID, register ID, date and time, transaction number, and the associate handling the transaction. Additionally, the cash amount specified is listed under the Notes and Cash columns. 1. Enter the dollar amount received from the customer. 2. To retrieve any change, tap **Open Drawer**. 3. Tap **Done** and print the receipt. 4. (Optional) Complete a credit card transaction. If the customer doesn't sign, the transaction times out. Cancel and restart the payment again. 1. When prompted by the Present your card message, insert the card for EMV processing. 2. Have the customer sign and press enter on the payment device. 3. Remove the card and print the receipt. 5. (Optional) Complete a gift card transaction. 1. Enter the gift card number, pin, and amount. 2. Tap **Apply**. The available balance of the gift card is applied to the cart total. 6. (Optional) Complete a multitender transaction. 1. Add the multitender payments as required. See [Multitendering in the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_multitender_config.htm&release=264.0.0&type=5 "Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app."). 2. Follow the on-screen instructions for each payment type. 3. Tap **Place Order** and print the receipt. # Completing Cycle Count Finalize cycle counts after verifying all batches are complete and items are scanned. Configure settings to automatically update inventory counts or send files for corporate review. After all batches are completed and closed, and all necessary items are scanned, managers can review variances. If satisfied with the counts, managers or equivalent roles can complete the cycle count and optionally, have the event files posted. If `overlayStoreInventoryOnCycleCountCompletion` is enabled in CMS (**Store Management > Store Settings > Inventory**) counts made during the inventory check automatically update the available inventory. For instance, consider a scenario where the QTYOH was 10, the available quantity was 8, and the latest count is 7. In this case, both the QTYOH and Available buckets are adjusted to 7. Finalizing the Cycle Count To finalize the cycle count, tap **Complete Cycle Count**. Upon completion, the app displays the cycle count results, including gains, losses, total variance, and variance cost. Results can be emailed as a CSV file by enabling `Allow emailing cycle count data` (**Store Management > Store Settings > Inventory**). A completed cycle count produces a cycle count event file and is sent to the SFTP site. If canceled, the user is able to return to the app to create batches and add to the cycle count if needed. ## Cycle Count File Posting Options Configure how a cycle count event file is posted in Point of Sale CMS based on your business needs. The cycle count event file can be posted in different ways based on the configuration settings. If Point of Sale is the controller of inventory or immediate updates are needed, the inventory can be overlaid with the cycle count data or the file can pass to the SFTP site without the updates. To configure: 1. In CMS, go to Store Management > Store Settings > Inventory. 2. Turn on overlayStoreInventoryOnCycleCountCompletion. If the overlay option is disabled, the file can be reviewed by corporate before posting it to the system of record. Inventory delta files can be sent back to Point of Sale for updated inventory. Overlays are any updates in the inventory. For example, if the QTYOH is 100 and the count is at 85, the QTYOH is updated/overlayed to 85. ## Cycle Count Mapping the Event File Map the event file generated during a cycle count to all or selected fields based on the data you need. The event file generated during the cycle count can be mapped to all fields or selected fields based on the required data. To configure this mapping: 1. In CMS, go to **Feeds > Field Mappings > Export Inventory Events.** 2. Select the event type(s), CYC. 3. Map the events accordingly.![An example of mapping an event file](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_mapped_event_file.png) ## Cycle Count Data Review View completed cycle counts on Point of Sale CMS through the Inventory Ledger and Inventory Webhooks. The information from completed cycle counts is accessible for viewing through both the Inventory Ledger and Inventory Webhooks. The Inventory Ledger shows a complete picture of all transactions related to inventory movement. It includes item details, quantities, costs, dates, and balances. Furthermore, it offers the option to delve into detailed information for each transaction. ### Access Inventory Ledger In CMS, go to **Inventory \\> Inventory Ledger**. ### Configure Inventory Webhooks Leveraging Point of Sale's [Inventory Webhooks](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/inventory-event-webhooks.html) facilitates the integration and automated interaction with inventory management systems. This feature lets you easily share real-time data for inventory events, like transfers, changes, cycle counts, purchase orders, and inventory movements like sales and returns. 1. In CMS, go to **Integrations \\> Custom Connectors**. 2. Configure the fields and save your changes. Failed webhooks can be reposted in CMS by going to **Reporting and Analytics \\> Repost Failed Webhook Events**. # Component Icons Removed from Page Designer Page Designer no longer shows component icons in the component palette, page structure panel, or the window for adding components. This change provides a cleaner, more streamlined interface. If you created custom icons for your component types, those icons no longer appear in Page Designer. **Where:** This change applies to B2C Commerce. # Composable Storefront Features Released by Month in 2025 Composable Storefront features are released as often as monthly, so check back again soon for the latest changes. Composable Storefront for B2C Commerce is based on two key technologies: the Progressive Web App Kit (PWA Kit) for creating your storefront and Managed Runtime for hosting it. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note To view PWA Kit changes broken down by package and GitHub pull requests, check out the [releases page on GitHub](https://github.com/SalesforceCommerceCloud/pwa-kit/releases). To subscribe to GitHub notifications for PWA Kit releases, see [Configuring your watch settings](https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository). ## November '25
Product Release Note
PWA Kit v3.14 Provide Rule-Based Promotions for Bonus Products in Your Storefront
Test Your Hybrid App in Secondary Instance Group (SIG) Instances with Hybrid Proxy
## October '25 | Product | Release Note | | --- | --- | | Managed Runtime | [Changes to Managed Runtime Admin Role Assignment](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/about-pwa-kit-managed-runtime/about.html#managed-runtime---changes-to-managed-runtime-admin-role-assignment) | ## September '25
Product Release Note
PWA Kit v3.13 Enable Agentforce Guided Shopping
Offer a Choice of Multiple Bonus Products
Return Rich Search Results
Managed Runtime Default Domain Change for New Environments
PWA Kit v3.12 Ship Products to Multiple Addresses and Stores in a Single Order
Store Locator Setting Was Renamed and Moved to a Configuration
Add Environment Base Paths to /mobify Paths and Express Routes (Developer Preview)
## August '25 | Product | Release Note | | --- | --- | | Managed Runtime | [Node.js 20 Deprecation](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/about-pwa-kit-managed-runtime/about.html#managed-runtime---nodejs-20-deprecation) | ## July '25
Product Release Note
PWA Kit v3.11 Expand Shopping Options with In-Store Pickup
Offer Bonus Product Promotions in your Composable Storefront
Sell Standard Products in your Composable Storefront
Additional Languages in the UI
Accessibility (a11y) Improvement
Control the Hydration Behavior of Your Composable Storefront and Boost your Site's Performance
Support Art Direction and Responsive Preloading in <DynamicImage> Components
On-Demand Script Loading for Faster Performance
Managed Runtime Node.js Deprecation and End-of-Life Email Notifications
Managed Runtime Enhancements
## June ’25 | Product | Release Note | | --- | --- | | Managed Runtime | [Configurable Log Levels](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/about-pwa-kit-managed-runtime/about.html#managed-runtime---configurable-log-levels) | ## May ’25
Product Release Note
PWA Kit v3.10 Source Maps Support for Client and Server
Commerce SDK React v3.3.0 Improvements
Data Cloud Integration
## March ’25 | Product | Release Note | | --- | --- | | PWA Kit v3.9 | [Support for Hybrid Auth](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/about-pwa-kit-managed-runtime/about.html#pwa-kit---support-for-hybrid-auth) | | Managed Runtime | [Improved Redirects Management and Hyderabad Region Support](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/about-pwa-kit-managed-runtime/about.html#managed-runtime---improved-redirects-management-and-hyderabad-region-support) | ## February ’25 For the February ’25 release notes, see [February 2025](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_feb_2025.htm&release=264.0.0&type=5 "PWA Kit and Managed Runtime"). # Composable Storefront Release Notes Keep track of new features and updates for the Progressive Web App (PWA) Kit and Managed Runtime. For release notes published before October 2023, see: - The [Composable Storefront Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.composable_release_notes_archive.htm&type=5&language=en_US) - **[Composable Storefront Features Released by Month in 2025](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_2025_released_by_month.htm&release=264.0.0&type=5)** Composable Storefront features are released as often as monthly, so check back again soon for the latest changes. Composable Storefront for B2C Commerce is based on two key technologies: the Progressive Web App Kit (PWA Kit) for creating your storefront and Managed Runtime for hosting it. - **[February 2025](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_feb_2025.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[October 2024](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_oct_2024.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[September 2024](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_sept_2024.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[August 2024](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_august_2024.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[June 2024](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_june_2024.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[April 2024](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_apr_2024.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[March 2024](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_mar_2024.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[February 2024](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_feb_2024.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[January 2024](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_jan_2024.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[November 2023](https://help.salesforce.com/s/articleView?id=commerce.composable_storefront_rn_nov_2023.htm&release=264.0.0&type=5)** PWA Kit and Managed Runtime - **[Composable Storefront Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.composable_release_notes_archive.htm&release=264.0.0&type=5)** The Progressive Web App Kit (PWA Kit), Managed Runtime, and the B2C Commerce API make up the composable Storefront. Review and features and updates from releases published before October 2023. # Composable Storefront Release Notes Archive The Progressive Web App Kit (PWA Kit), Managed Runtime, and the B2C Commerce API make up the composable Storefront. Review and features and updates from releases published before October 2023. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The [release notes](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/about-pwa-kit-managed-runtime/about.html) have moved to the same location as the Composable Storefront documentation. - **[Managed Runtime Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_managed_runtime_release_notes_archive.htm&release=264.0.0&type=5)** Managed Runtime is part of Salesforce’s Composable Storefront solution, which includes PWA Kit and the B2C Commerce API. Review the features and updates from past releases. - **[PWA Kit Release Notes Archive](https://help.salesforce.com/s/articleView?id=commerce.b2c_pwa_kit_release_notes_archive.htm&release=264.0.0&type=5)** The Progressive Web App Kit (PWA Kit) is part of Salesforce’s Composable Storefront solution, which also includes Managed Runtime and the B2C Commerce API. Review and features and updates from past releases. # Comprehensive List of Deep Links Explore a detailed list of Point of Sale account deep links, each with a clear description and supported context. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Account Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_account.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale account deep links, each with a clear description and supported context. Links include features for account management, orders and deliveries, payment details, and personalization. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[BOPIS/Store Fulfillment Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_bopis_store_fulfillment.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale BOPIS/store fulfillment deep links, each with a clear description and supported context. Links include features for order status, fulfillment, history, packing, and pickup. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Cart Options Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_cart_options.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale cart options deep links, each with a clear description and supported context. These links include cart, order, payment methods, transaction, product, and tender management along with discounts and rewards, loyalty programs, and payment flows. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Cash Register Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_cash_register.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale cash register deep links, each with a clear description and supported context. Links include features for cash management, reporting, transactions, and cash register operations. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Chat Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_chat.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale chat deep links, each with a clear description and supported context. Links include bold and live chat. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Clienteling Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_clienteling.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale clienteling deep links, each with a clear description and supported context. Links include features for customer management, client profiles, and CRM activities. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Engagement Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_engagement.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale engagement deep links, each with a clear description and supported context. Links include features for media, social interaction, and content management. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Layout Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_layout.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale layout deep links, each with a clear description and supported context. Links include features for customer information and general layouts. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Loyalty Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_loyalty.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale loyalty deep links, each with a clear description and supported context. Links include features for displaying the ADS and general loyalty screens as well as unlinking loyalty details. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Media Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_media.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale media deep links, each with a clear description and supported context. Links include features for Vimeo, YouTube, and other video links. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Other Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_other.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale other deep links, each with a clear description and supported context. Links include features for advanced carts, application management, configuration options, and user interface elements. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Peripherals Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_peripherals.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale peripherals deep links, each with a clear description and supported context. Links include features for switching barcode scanner, card reader, and printer, and resetting the Zebra scanner. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Personalization Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_personalization.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale personalization deep links, each with a clear description and supported context. Links include features for language and region pickers, notification details, and quizzes. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Print Receipt Deep Link](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_print_receipt.htm&release=264.0.0&type=5)** Discover the Point of Sale print receipt deep link. Use this link to help users quickly navigate to receipt printing and emailing for standard receipts, gifts, and invoices, enhancing their experience and streamlining retail operations. - **[Products Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_products.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale products deep links, each with a clear description and supported context. Links include features for search, browse, purchase, and scan barcodes. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Purchase Order Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_purchase_order.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale purchase order deep links each with a clear description and supported context. Use these links to help users quickly navigate to purchase order creation and history, enhancing their experience and streamlining retail operations. - **[Reporting Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_reporting.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale reporting deep links, each with a clear description and supported context. Links include reports for associates, sales, reconciliation, and more.. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Store Associate Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_store_associate.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale store associate deep links, each with a clear description and supported context. Links include features for checkout, shipping, inventory, adjustments, orders, quotes, transactions and more. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[URL Deep Link](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_url.htm&release=264.0.0&type=5)** Discover the Point of Sale URL deep link. Use this link to help users open a URL, enhancing their experience and streamlining retail operations. # Comprehensive Print Tags List Show dynamic data in your layouts by using Point of Sale print tags as placeholders. Each tag includes its description, location, receipt components, group list, and data mapping. Grouped lists output multiple data points for each tag. For configuration instructions, see [Configuring Point of Sale Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_print.htm&release=264.0.0&type=5 "Print tags are placeholder strings that dynamically display data in Point of Sale layouts. Add print tags to native or HTML text overlays to display information such as order totals, customer names, or store details. You can also use print tags in certain app-level settings."). Table column reference: - Receipt Components: Use specific tags only in designated receipt sections. For example, apply :ps\_vat\_tax\_name only in the VAT Breakdown Row, not in Products. To see where you can apply each tag, refer to the Receipt Component column. - Group List: Grouped lists print multiple data points for each tag. When printing rows of data, don't mix grouped and non-grouped lists. Add only tags from the same group to the same row. To see which tags belong to the same group, refer to the Group List column. - POS Data Mapping: POS searches sequentially until the system finds a value to populate the tag. "Provided by POS" means that the POS provides the receipt values, not the transaction data from Point of Sale.

Point of Sale Tag

/

CMS Location

Description

Receipt Component(s)

/

Group List

POS Data Mapping
BOPIS Orders (Store Associate App)

:ps_store_fulfill_order_ready_count

/

Text Overlay

BOPIS store fulfill orders that are ready to ship Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" is printed.

:ps_store_fulfill_order_to_pack_count

/

Text Overlay

BOPIS store fulfill orders that are to be packed Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" is printed.

:ps_store_fulfilled_order_count

/

Text Overlay

BOPIS store fulfilled orders history Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" is printed.

:ps_store_cancelled_order_count

/

Text Overlay

BOPIS store orders that are cancelled/damaged Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" is printed.

:ps_store_pickedup_order_count

/

Text Overlay

BOPIS store picked up orders history Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" is printed.

:ps_store_pickup_order_to_pack_count

/

Text Overlay

BOPIS store pickup orders that are yet to be packed Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" is printed.

:ps_store_pickup_order_ready_count

/

Text Overlay

BOPIS store pickup orders that are ready for pickup Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" is printed.

Orders

:ps_order_change_back_to_customer

/

Text Overlay

Change due back to customer Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

:ps_order_id

/

Text Overlay, Receipts

Current order ID; also applicable for Electronic Contracts Any / No

transactions[].orderId

IF NO VALUE: Nothing printed

:ps_order_total

/

Text Overlay

Current order total; also applicable for Electronic Contracts Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

:ps_payment_link_expiry_date

/

Receipts

Indicates the expiry date of a payment link Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_major_version

/

Text Overlay, Receipts

Major version Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_order_payment_status_message

/

Pending Payment Layout

Order payment status message Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_order_pending_amount

/

Pending Payment Layout

Order pending amount Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

:ps_order_time

/

Text Overlay, Receipts

Order time with hh:mm precision Any / No

transactions[].transactionTimeStamp

IF NO VALUE: Current Time

:ps_o_time_with_seconds

/

Receipts

Order time with hh:mm:ss precision Any / No

transactions[].transactionTimeStamp

Formatted with seconds

IF NO VALUE: Current Time

:ps_order_payments_applied_list

/

Text Overlay

Payments applied list Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_print_number

/

Receipts

Print number Any / No

transactions[].receiptPrintCount

IF NO VALUE: "0" printed

:ps_order_receipt_header_subtitle

/

Text Overlay

Receipt header subtitle Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_order_receipt_header_title

/

Text Overlay

Receipt header title Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_order_register_id

/

Text Overlay, Receipts

Register number Any / No

transactions[].storeAttribution.storeRegisterId

IF NO VALUE: Nothing printed

:ps_order_register_transaction_number

/

Text Overlay, Receipts

Register transaction number Any / No

transactions[].storeAttribution.transactionId

IF NO VALUE: Nothing printed

:ps_tax_exempt_card_number

/

Receipts

Tax excempt card number Any / No

transactions[].taxExemptions[].cardNumber

IF NO VALUE: Nothing printed

:ps_tax_exempt_customer

/

Receipts

Tax except customer Any / No

transactions[].taxExemptions[].customerName

IF NO VALUE: Nothing printed

:ps_tax_exempt_notes

/

Receipts

Tax exempt notes Any / No

transactions[].taxExemptions[].notes

IF NO VALUE: Nothing printed

:ps_transaction_id

/

Receipts

Transaction ID Any / No

transactions[].transactionId

IF NO VALUE: Nothing printed

PDP

:ps_product_rating_count

/

Text Overlay

Number of reviews for a product Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

POS Store

:ps_store_addressline1

/

Text Overlay, Receipts

Address line 1 of the current logged in store of POS app Any / No

1) transactions[].store.addressLine1

2) transactions[].store.AddressLine1

IF NO VALUE: Nothing printed

:ps_store_addressline2

/

Text Overlay, Receipts

Address line 2 of the current logged in store of POS app Any / No

1) If Japanese Addressa) transactions[].store.addressLine1

b) transactions[].store.AddressLine1

2) Otherwisea) transactions[].store.city +

transactions[].store.state +

transactions[].store.postalCode +

transactions[].store.countryCode

b) transactions[].store.City +

transactions[].store.State +

transactions[].store.PostalCode +

transactions[].store.CountryCode

IF NO VALUE: Nothing printed

:ps_current_time

/

Text Overlay, Receipts

Current time stamp in "MM/dd/yyy HH:mm a" format Any / No

transactions[].transactionTimeStamp

IF NO VALUE: Current Date

:ps_financing_apr

/

Finance Terms and Conditions

Retrieves the APR value from Synchrony No / No N/A

:ps_financing_terms_and_conditions

/

Finance Terms and Conditions

Populates the terms and conditions from the Synchrony. This enables merchants to manage the T&Cs text with the promo PS tag in the "Finance Terms and Conditions" field within the card acquisition settings. In the "Finance Terms and Conditions" layout, merchants only need to include the PS tag. When rendered, this tag will display the full T&Cs with the correct promo value for each transaction. No / No N/A

:ps_store_name

/

Text Overlay, Receipts

Name of the current logged in store of POS app Any / No

1) transactions[].store.name

2) transactions[].store.Name

IF NO VALUE: Nothing printed

:ps_current_timestamp

/

Receipts

Current timestamp, applicable only to the Order receipt Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Current Date

:ps_current_timestamp_with_seconds

/

Receipts

Current timestamp with hh:mm:ss precision, applicable only to the Order receipt Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Current Date

:ps_order_finance_tender_code

/

Receipts

Finance tender code, applicable only to the Order receipt and Electronic Contracts Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_order_finance_tender_desc

/

Receipts

Finance tender description, applicable only to the Order receipt and Electronic Contracts Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_order_finance_terms

/

Receipts

Finance tender description, applicable only to the Order receipt and Electronic Contracts Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_transaction_line_items_count

/

Receipts

Number of line items, applicable only to the Order receipt Any / No

transactions[].numberOfLineItems

IF NO VALUE: "0" printed

:ps_order_customer_id

/

Receipts

Order customer ID, applicable only to the Order receipt and Electronic Contracts Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_build_num

/

Receipts

POS app build number, applicable only to the Order receipt Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_build_version

/

Receipts

POS app version, applicable only to the Order receipt Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_order_notes

/

Receipts

Print the order level notes, applicable only to the Order receipt Any / No

transactions[].notesList[].noteText

IF NO VALUE: "No notes" localized is printed.

:ps_receipt_id

/

Receipts

Receipt ID, applicable only to the Order receipt Any / No

transactions[].receiptId

IF NO VALUE: Nothing printed

:ps_tax_exempt_receipt_name

/

Receipts

The tax-exempt receipt name. Any / No

transactions[].taxExemptions[].printTaxName

IF NO VALUE: Nothing printed

:ps_tax_exempt_amount

/

Receipts

The tax exempt amount. Any / No

transactions[].summary.netSummary.taxExemption

IF NO VALUE: Nothing printed

:ps_vat_tax_amount

/

Receipts

Total tax amount for all VAT rates, applicable only to the Order receipt

Note: This requires VAT rates.

Any / Order Level - VAT Breakdown Group

1) transactions[].vatRates[].taxAmount (summation)

2) transactions[].vat

IF NO VALUE: 0 in localized currency is printed.

:ps_shipping_addressline1

/

Receipts

Address line 1 of transaction shipping address Any / No

transactions[].shippingAddress.addressLine1 +

transactions[].shippingAddress.addressLine2

IF NO VALUE: Nothing printed

:ps_shipping_addressline2

/

Receipts

Address line 2 of transaction shipping address Any / No

transactions[].shippingAddress.city +

transactions[].shippingAddress.postalCode

IF NO VALUE: Nothing printed

:ps_shipping_addressline3

/

Receipts

Address line 3 of transaction shipping address Any / No

transactions[].shippingAddress.addressLine3 +

transactions[].shippingAddress.state +

transactions[].shippingAddress.countryCode

IF NO VALUE: Nothing printed

:ps_shipping_city

/

Receipts

City of transaction shipping address Any / No

transactions[].shippingAddress.city

IF NO VALUE: Nothing printed

:ps_shipping_country_code

/

Receipts

Country code of transaction shipping address Any / No

transactions[].shippingAddress.countryCode

IF NO VALUE: Nothing printed

:ps_merchant_country_code

/

Receipts

Country code of store Any / No TBD

:ps_shipping_customer_name

/

Receipts

Customer name of transaction shipping address Any / No

transactions[].shippingAddress.firstName +

transactions[].shippingAddress.lastName

IF NO VALUE: Nothing printed

:ps_shipping_phone

/

Receipts

Phone of transaction shipping address Any / No

transactions[].shippingAddress.phone

IF NO VALUE: Nothing printed

:ps_shipping_state

/

Receipts

State of transaction shipping address Any / No

transactions[].shippingAddress.state

IF NO VALUE: Nothing printed

:ps_shipping_zip

/

Receipts

Zip code of transaction shipping address Any / No

transactions[].shippingAddress.postalCode

IF NO VALUE: Nothing printed

:ps_vat_tax_id

/

Receipts

VAT ID Any / No

transactions[].vatRates[0].corporateTaxId

IF NO VALUE: Nothing printed

:ps_vat_tax_percent

/

Receipts

Tax percentage of the first VAT rate (applicable only to the Order receipt)

Note: This requires VAT rates.

Any / No

transactions[].vatRates[0].taxRate

IF NO VALUE: Nothing printed

:ps_vat_tax_rate

/

Receipts

Tax percentage for all VAT rates (applicable only to the Order receipt)

Note: This requires VAT rates.

Any / No

Note: >= 9.4.1 app build

transactions[].vatRates[].taxRate

IF NO VALUE: Nothing printed

:ps_store_phone_number

/

Text Overlay, Receipts

Phone number of the current logged in store of POS app Any / No

a) transactions[].store.mainPhone

b) transactions[].store.MainPhone

IF NO VALUE: Nothing printed

:ps_platform

/

Product Feed

Platform to be used in a product's CYU web URL Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "iOS" printed

:ps_store_register_id

/

Text Overlay, Receipts

Register ID of the register from which the order was placed from Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_remaining_store_credit

/

Text Overlay

Remaining amount after customer applies profile's credit Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

:ps_total_store_credit

/

Text Overlay

Store credit amount available in customer's profile Any / No

Not extracted from "transactions" data; provided by POS.

IF NO VALUE: 0 in localized currency is printed.

:ps_store_id

/

Receipts

Store ID

Note: This tag can be used to pre-populate the store ID on a customer signup layout. Learn More

Any / No

transactions[].store.storeId

If data is not found, provided by POS

:ps_todays_date

/

Receipts

Current date in "MMMM dd, yyy" format Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Current date is printed

Receipt

:ps_p_activation_code

/

Receipts

Activation code is generated from the Generate Activation Code SPI and printed on receipts for shoppers to activate digital purchases. TBD TBD

:ps_order_attributed_associates

/

Receipts (Sales)

Displays all associates' IDs who are attributed to any product at the order level. Each associate is listed only once, even if they are attributed to multiple products. Any / No

transactions[].productList[].salesAssociateAttribution[].storeAssociateId + concatenated + joined

If no value, nothing printed

:ps_order_attributed_associates_name

/

Receipts (Sales)

Displays all associates' names who are attributed to any product at the order level. Each associate is listed only once, even if they are attributed to multiple products. Any / No

transactions[].productList[].salesAssociateAttribution[].storeAssociateName + concatenated + joined

If no value, nothing printed

:ps_payment_tender_signature_needed

/

Receipts

Boolean denoting if the payment tender required signature

Note: Must be used with "=IF" function to display text

=IF(::ps_payment_tender_signature_needed,TrueText,FalseText)

Payment Tenders / No

Note: In the 9.0.1 app build, this will change to "Any".

Sale/Exchangetransactions[].tenders[].receiptLines[].signatureNeeded

Returnstransactions[].refundPaymentDetails[].receiptLines[].signatureNeeded

IF NO VALUE: Nothing printed

:ps_payment_tender_approved_with_pin

/

Receipts

Boolean denoting if the payment tender was approved with a PIN

Note: Must be used with "=IF" function to display text

=IF(::ps_payment_tender_signature_needed,TrueText,FalseText)

Payment Tenders / No

Note: In the 9.0.1 app build, this will change to "Any".

Sale/Exchangetransactions[].tenders[].receiptLines[].approvedWithPin

Returnstransactions[].refundPaymentDetails[].receiptLines[].approvedWithPin

IF NO VALUE: Nothing printed

:ps_employee_email

/

Receipts

Employee email for employee purchases, returns, and exchanges Any / No

transactions[].employee.email

IF NO VALUE: Nothing printed

:ps_employee_first_name

/

Receipts

Employee first name for employee purchases, returns, and exchanges Any / No

transactions[].employee.firstName

IF NO VALUE: Nothing printed

:ps_employee_id

/

Receipts

Employee ID for employee purchases, returns, and exchanges Any / No

transactions[].employee.employeeId

IF NO VALUE: Nothing printed

:ps_employee_last_name

/

Receipts

Employee last name for employee purchases, returns, and exchanges Any / No

transactions[].employee.lastName

IF NO VALUE: Nothing printed

:ps_p_notes

/

Receipts

Item level notes Products / No

Sale/Exchangetransactions[].productList[].notesList[].noteText

Returnstransactions[].returnProductList[].notesList[].noteText

IF NO VALUE: Nothing printed

:ps_product_attributed_associate

/

Receipts (Sales)

Displays a maximum of 13 attributed associates' IDs to the specific line item

Note: If attribution is not explicitly set, this tag's value will default to the logged in associate.

Products / No

transactions[].productList[].salesAssociateAttribution[].storeAssociateId + joined

If no value, nothing printed

:ps_product_attributed_associate_name

/

Receipts (Sales)

Displays a maximum of 13 attributed associates' names to the specific line item

Note: If attribution is not explicitly set, this tag's value will not populate.

Products / No

transactions[].productList[].salesAssociateAttribution[].storeAssociateName + joined

If no value, nothing printed

:ps_p_shipping_method_name

/

Receipts

Item shipping method name Product / No

Sale/Exchangetransactions[].productList[].deliveryGroups[].shippingMethod.name

Returnstransactions[].returnProductList[].deliveryGroups[].shippingMethod.name

IF NO VALUE: Nothing printed

:ps_p_shipping_method_ETA

/

Receipts

Item shipping ETA Product / No

Sale/Exchangetransactions[].productList[].deliveryGroups[].shippingMethod.deliveryEstimate

Returnstransactions[].returnProductList[].deliveryGroups[].shippingMethod.deliveryEstimate

IF NO VALUE: Nothing printed

:ps_p_shipping_phone

/

Receipts

Displays shipping address phone number at item level

Note: Will not print registry details

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_shipping_customer_name

/

Receipts

Displays shipping address customer name at item level

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_shipping_addr_line1

/

Receipts

Displays shipping address line 1 at item level

Note: Will not print registry details

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_shipping_addr_line2

/

Receipts

Displays shipping address line 2 at item level

Note: Will not print registry details

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_shipping_addr_line3

/

Receipts

Displays shipping address line 3 at item level

Note: Will not print registry details

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_shipping_city

/

Receipts

Displays shipping address city at item level

Note: Will not print registry details

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_shipping_zip

/

Receipts

Displays shipping address zipcode at item level

Note: Will not print registry details

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_shipping_state

/

Receipts

Displays shipping address state at item level

Note: Will not print registry details

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_shipping_country_code

/

Receipts

Displays shipping address country code at item level

Note: Will not print registry details

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_closing_balance

/

Receipts

Closing balance Any / No

transactions[].loyaltyInfo.pointsClosingBalance

IF NO VALUE: 0 in localized currency is printed.

:ps_o_tip_total

/

Receipts

Credit tip total Any / No

transactions[].tenders[].tip (summation)

IF NO VALUE: 0 in localized currency is printed.

:ps_o_subtotal

/

Receipts

Order subtotal

Summary / No

Note: In the 9.0.1 app build, this will change to "Any". Will be required in Summary if "Is VAT Included In Subtotal" is required

1) StoreConfig VAT enabled & Receipt component "VAT Breakdown" setting is disabledtransactions[].summary.netSummary.subTotal -

transactions[].summary.netSummary.valueAddedTax +

transactions[].summary.netSummary.discount +

transactions[].summary.netSummary.transactionDiscountAmount

2) Otherwisetransactions[].summary.netSummary.subTotal

IF NO VALUE: 0 in localized currency is printed.

:ps_cc_auth_details

/

Receipts

Flag denoting the credit card auth details should be shown for each payment tender

Note: Add on a single row as the display name will be on the left side of the receipt and the value will be on the right side.

Payment Tenders / No

Sale/Exchangetransactions[].tenders[].receiptLines[]

Returnstransactions[].refundPaymentDetails[].receiptLines[]

IF NO VALUE: Nothing printed

:ps_o_discount

/

Receipts

Order discount Any / No

transactions[].summary.netSummary.discount

IF NO VALUE: 0 in localized currency is printed.

:ps_o_fulfillment_type

/

Receipts

Order level fulfillment type (In-Store or Online) Any / No

transactions[].productList[].fulfillmentType

IF NO VALUE: Nothing printed

:ps_o_sub_fulfillment_type

/

Receipts

Order level sub-fulfillment type (Ship to Store, Ship to Home, etc) Any / No

transactions[].productList[].fulfillmentSubType

IF NO VALUE: Nothing printed

:ps_o_net_subtotal

/

Receipts

Order net subtotal Any / No

transactions[].summary.netSummary.netSubTotal

IF NO VALUE: 0 in localized currency is printed.

:ps_o_tax_amount

/

Receipts

Order tax amount, used for both VAT tax amount and tax amount when there are no breakouts.

Note: The store settings, "Value Added Tax Enabled" and "Is VAT Included In Subtotal" must be enabled.

Summary / Order Level - Tax Group

Note: In the 9.0.1 app build, this will change to "Any".

1) StoreConfig VAT enabled with transactions[].vatRates[] datatransactions[].vatRates[].taxAmount

2) StoreConfig VAT enableda) transactions[].summary.netSummary.vat

b) transactions[].summary.netSummary.valueAddedTax

3) Otherwisea) transactions[].summary.netSummary.tax

IF NO VALUE: Nothing printed

:ps_o_tax_description

/

Receipts

Order tax description

Note: The store settings, "Value Added Tax Enabled" and "Is VAT Included In Subtotal" must be enabled.

Summary / Order Level - Tax Group

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].vatRates[].taxDescription

IF NO VALUE: Nothing printed

:ps_o_tax_breakout_name

/

Receipts

Tax breakout name, requires breakouts

Summary / Order Level - Tax Group

Note: In the 9.0.1 app build, this will change to "Any".

1) transactions[].taxRates[].printTaxName

2) transactions[].taxRates[].displayName

3) transactions[].taxRates[]."\(taxType) - \(taxRate)%"

IF NO VALUE: Nothing printed

:ps_o_tax_breakout_amount

/

Receipts

Tax breakout amount, requires breakouts

Summary / Order Level - Tax Group

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].taxRates[].taxAmount

IF NO VALUE: Nothing printed

:ps_o_tax_breakout_description

/

Receipts

Tax breakout description, requires breakouts

Summary / Order Level - Tax Group

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].taxRates[].taxDescription

IF NO VALUE: Nothing printed

:ps_tax_exemption

/

Emailed Receipts Only

Order tax exemption amount

Note: This tag is to be only used for emailed receipts.

Any / No Not supported

:ps_o_tax_name

/

Receipts

Order tax name

Note: The store settings, "Value Added Tax Enabled" and "Is VAT Included In Subtotal" must be enabled.

Summary / Order Level - Tax Group

transactions[].vatRates[].printTaxName

IF NO VALUE: Nothing printed

:ps_o_total

/

Receipts

Order total Any / No

transactions[].summary.netSummary.total

IF NO VALUE: 0 in localized currency is printed.

:ps_order_email_address

/

Receipts

Email address linked to order Any / No TBD

:ps_o_transaction_discount

/

Receipts

Transaction discount Any / No

transactions[].summary.netSummary.transactionDiscountAmount

IF NO VALUE: Nothing printed

:ps_o_item_shipping_discount_text

/

Receipts

Item-level shipping discount text as shown in order details on POS UI. Products / No

Sale

transactions[].deliveryGroups[].shippingMethod.itemLevelCharges[].discountText

IF NO VALUE: Nothing printed

:ps_o_shipping_charges

/

Receipts

The order shipping charges. Any / No

transactions[].summary.netSummary.shippingCharges

IF NO VALUE: 0 in localized currency is printed.

:ps_o_totaldiscount

/

Receipts

Sum of all item-level, transaction-level, and promotion-driven discounts on an order. Any / No transactions[].summary.netSummary.totalDiscount

:ps_o_rounding

/

Receipts

The order rounding amount. Any / No

transactions[].summary.netSummary.roundingAmount

IF NO VALUE: Nothing printed

:ps_p_netprice_multiqty Product net price for multiple units of the same SKU. Products / No transactions[].productList[].totalNetPrice

:ps_vatrate

/

Receipts

VAT rate Any / No TBD

:ps_o_vat_amount

/

Receipts

The order VAT tax amount.

Any / No

Note: Available in 8.10.1

transactions[].summary.netSummary.valueAddedTax

IF NO VALUE: 0 in localized currency is printed.

:ps_payment_amount

/

Receipts

Payment tender amount

Payment Tenders / No

Note: In the 9.0.1 app build, this will change to "Any". Must be in Payment Tenders if "Receipt Line Keys" are required.

Sale/Exchangetransactions[].tenders[].amountAuthorized

Returnstransactions[].refundPaymentDetails[].refundedAmount

IF NO VALUE: Nothing printed

:ps_payment_tender

/

Receipts

Payment tender type with last four digits if using card

(e.g., Gift Card #-0914)

Payment Tenders / Order Level - Tender Group

Note: In the 9.0.1 app build, this will change to "Any". Must be in Payment Tenders if "Receipt Line Keys" are required.

Credit Card

Sale/Exchangetransactions[].tenders[].cardNumber

Returnstransactions[].refundPaymentDetails[].cardNumber

Finance or MiscSale/Exchangetransactions[].tenders[].accountNumber

Returnstransactions[].refundPaymentDetails[].accountNumber

IF NO VALUE: Nothing printed

:ps_points_earned

/

Receipts

Points earned Any / No

transactions[].loyaltyInfo.transactions[].pointsEarned

IF NO VALUE: "0" printed

:ps_post_vat_total

/

Receipts

Post-VAT subtotal sequentially printed.

Note: This requires VAT rates.

VAT Breakdown Row / Order Level - VAT Breakdown Group

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].vatRates[].total

IF NO VALUE: 0 in localized currency is printed.

:ps_pre_vat_subtotal

/

Receipts

Pre-VAT subtotal sequentially printed.

Note: This requires VAT rates.

VAT Breakdown Row / Order Level - VAT Breakdown Group

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].vatRates[].subTotal

IF NO VALUE: 0 in localized currency is printed.

:ps_p_additional_charges

/

Receipts

Product additional charges Products / No

Sale/Exchangetransactions[].productList[].additionalCharges[].display +

transactions[].productList[].additionalCharges[].value

Returnstransactions[].returnProductList[].additionalCharges[].display +

transactions[].returnProductList[].additionalCharges[].value

IF NO VALUE: Nothing printed

:ps_p_discount_amount

/

Receipts

Product discount amount Products / Product Level - Discount Group

transactions[].productPriceAdjustments[].adjustment

IF NO VALUE: 0 in localized currency is printed.

:ps_p_discount_percentage

/

Receipts

Product discount percentage Products / No

transactions[].productPriceAdjustments[].discountValue

IF NO VALUE: Nothing printed

:ps_p_discount_title

/

Receipts

Product discount title Products / Product Level - Discount Group

1) transactions[].productPriceAdjustments[].description

2) transactions[].productPriceAdjustments[].priceAdjustmentType (POS-provided localized string)

IF NO VALUE: Nothing printed

:ps_p_form

/

Receipts

Displays the product form fields and entered values Products / No

:ps_p_fulfillment_prefix

/

Receipts

Product fulfillment prefix Products / No

Sale/Exchangetransactions[].productList[].fulfillmentType

Returnstransactions[].returnProductList[].fulfillmentType

IF NO VALUE: Nothing printed

:ps_p_gtin_id

/

Receipts

Product GTIN ID; if not available, will default to the product ID Products / No

Has variantGroupIdSale/Exchangetransactions[].productList[].variantGroupId

Returns

transactions[].returnProductList[].variantGroupId

Does not have variantGroupIdSale/Exchangetransactions[].productList[].productId

Returnstransactions[].returnProductList[].productId

IF NO VALUE: Nothing printed

:ps_p_id

/

URL Deep Link, Receipts

Product ID; can be used to substitute the selected product's ID query parameter of a URL deep link on PDP

Note: Only valid on PDP layout and Receipts

Products / No

Sale/Exchangetransactions[].productList[].productId

Returnstransactions[].returnProductList[].productId

URL Deep Link

URL deep link configured on PDP. productId of the product displayed on PDP

IF NO VALUE: Nothing printed

:ps_p_fulfillment_type

/

Receipts

Product level fulfillment type (In-Store or Online) Products / No

Sale/Exchangetransactions[].productList[].fulfillmentType

Returnstransactions[].returnProductList[].fulfillmentType

IF NO VALUE:"None" localized is printed.

:ps_p_sub_fulfillment_type

/

Receipts

Product level subfulfillment type (Ship to Store, Ship to Home, etc.) Products / No

Sale/Exchangetransactions[].productList[].fulfillmentSubType

Returnstransactions[].returnProductList[].fulfillmentSubType

IF NO VALUE: Nothing printed

:ps_p_price

/

Receipts

Product price Products / No

Sale/Exchangetransactions[].productList[].price

Returnstransactions[].returnProductList[].price

IF NO VALUE: 0 in localized currency is printed.

:ps_p_price_with_tax_indicator

/

Receipts

Product subtotal price with tax indicator Products / No

Will display the product price * product quantity, and will add the tax indicator only if:

  • App config "ProductTaxIndicator" flag is TRUE
  • product is TAXABLE

IF NO VALUE: 0 in localized currency is printed.

:ps_p_qty

/

Receipts

Product quantity Products / No

Sale/Exchangetransactions[].productList[].quantity

Returnstransactions[].returnProductList[].quantity

IF NO VALUE: "0" is printed.

:ps_p_qty_and_price

/

Receipts

Product quantity and unit price Products / No

Sale/Exchange"transactions[].productList[].quantity @ transactions[].productList[].price"

Returns"transactions[].returnProductList[].quantity @ transactions[].returnProductList[].price"

IF NO VALUE: "0 @" with 0 in localized currency is printed.

:ps_p_serial_num

/

Receipts

Product serial number Products / No

Sale/Exchangetransactions[].productList[].serialNumber

Returnstransactions[].returnProductList[].serialNumber

IF NO VALUE: Nothing printed

:ps_p_service_text

/

Receipts

Product service text Products / No

Sale/Exchangetransactions[].productList[].subProducts[].cyoDetails.payload.alteration.tokenNumber +

transactions[].productList[].subProducts[].cyoDetails.payload.alteration.readyDate (first 10 letters)

Returnstransactions[].returnProductList[].subProducts[].cyoDetails.payload.alteration.tokenNumber +

transactions[].returnProductList[].subProducts[].cyoDetails.payload.alteration.readyDate (first 10 letters)

IF NO VALUE: Nothing printed

:ps_p_sku_id

/

Receipts

Product SKU ID; if not available, will default to the product ID Products / No

Has SKUSale/Exchangetransactions[].productList[].sku

Returnstransactions[].returnProductList[].sku

OtherwiseSale/Exchangetransactions[].tenders[].productId

Returnstransactions[].returnProductList[].productId

IF NO VALUE: Nothing printed

:ps_p_title

/

Receipts

Product title/name Products / No

Sale/Exchange1) transactions[].productList[].Title

2) transactions[].productList[].title

3) transactions[].productList[].name

Returns1) transactions[].returnProductList[].Title

2) transactions[].returnProductList[].title

3) transactions[].returnProductList[].name

IF NO VALUE: Nothing printed

:ps_p_variant_group_id

/

Receipts

Product variant group ID; if not available, will default to the product ID Products / No

Has Variant Group IdSale/Exchangetransactions[].productList[].variantGroupId

Returnstransactions[].returnProductList[].variantGroupId

OtherwiseSale/Exchangetransactions[].tenders[].productId

Returnstransactions[].returnProductList[].productId

IF NO VALUE: Nothing printed

:ps_p_vat_tax_name

/

Receipts

Product VAT tax name Products / No

transactions[].vatRates[0].taxName

IF NO VALUE: Nothing printed

:ps_p_return_reason

/

Receipts

Return reason for the product Products / No

Returns Onlytransactions[].returnProductList[].reasons[].reasonText

IF NO VALUE: Nothing printed

:ps_p_sub_id

/

Receipts

Sub-product ID Products / Sub-product Group

Sale/Exchangetransactions[].productList[].subProducts[].cyoDetails.payload.products[].code

Returnstransactions[].returnProductList[].subProducts[].cyoDetails.payload.products[].code

IF NO VALUE: Nothing printed

:ps_p_sub_price

/

Receipts

Sub-product price Products / Sub-product Group

Sale/Exchangetransactions[].productList[].subProducts[].cyoDetails.payload.products[].price

Returnstransactions[].returnProductList[].subProducts[].cyoDetails.payload.products[].price

IF NO VALUE: 0 in localized currency is printed.

:ps_p_sub_qty

/

Receipts

Sub-product quantity Products / Sub-product Group

Not extracted from "transactions" data.

Provided by POS. Always "1".

:ps_p_sub_title

/

Receipts

Sub-product title/name Products / Sub-product Group

Sale/Exchangetransactions[].productList[].subProducts[].cyoDetails.-payload.products[].description

Returnstransactions[].returnProductList[].subProducts[].cyoDetails.payload.products[].description

IF NO VALUE: Nothing printed

:ps_vat_lineitem_tax_amount

/

Receipts

VAT rate tax amount sequentially printed.

Note: This requires VAT rates.

VAT Breakdown Row / Order Level - VAT Breakdown Group

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].vatRates[].taxAmount

IF NO VALUE: Nothing printed

:ps_o_total_for_exchange

/

Receipts

Total charge for the exchange Any / No

transactions[].summary.netSummary.amountToBeCharged

IF NO VALUE: 0 in localized currency is printed.

:ps_o_transaction_type

/

Receipts

Type of transaction (SALE, RETURN, EXCHANGE) Any / No

transactions[].transactionType

IF NO VALUE: "SALE" localized is printed.

:ps_vat_tax_name

/

Receipts

VAT rate tax name sequentially printed.

Note: This requires VAT rates.

VAT Breakdown Row / Order Level - VAT Breakdown Group

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].vatRates[].printTaxName

IF NO VALUE: Nothing printed

:ps_vat_total

/

Receipts

VAT total

VAT Breakdown Row / No

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].vatRates[].total (summation)

IF NO VALUE: 0 in localized currency is printed.

:ps_vat_total_pre_tax_subtotal

/

Receipts

VAT total with a pre-tax subtotal

VAT Breakdown Row / No

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].vatRates[].subTotal (summation)

IF NO VALUE: 0 in localized currency is printed.

:ps_fiscal_label

/

Receipts

Fiscal label.

Fiscal / Fiscal group (Fiscal QR code will be printed automatically)

Note: In the 9.0.1 app build, this will change to "Any".

Auditor Receipttransactions[].printData[].label

Otherwisetransactions[].fiscalData.printData[].label

IF NO VALUE: "Fiscal service is offline" localized is printed.

:ps_fiscal_value

/

Receipts

Fiscal value

Fiscal / Fiscal group (Fiscal QR code will be printed automatically)

Note: In the 9.0.1 app build, this will change to "Any".

Auditor Receipttransactions[].printData[].value

Otherwisetransactions[].fiscalData.printData[].value

IF NO VALUE: Nothing printed

:ps_vat_total_tax

/

Receipts

VAT total with tax

VAT Breakdown Row / No

Note: In the 9.0.1 app build, this will change to "Any".

transactions[].vatRates[].totalTax (summation)

IF NO VALUE: 0 in localized currency is printed.

:ps_loyalty_reward_code

/

Text Overlay, Loyalty Settings

Loyalty reward code Any / No transactions[].rewardList[].code

:ps_loyalty_reward_name

/

Text Overlay, Loyalty Settings

Loyalty reward name Any / No transactions[].rewardList[].rewardName

:ps_loyalty_reward_value

/

Text Overlay, Loyalty Settings

Loyalty reward value used in transaction Any / No transactions[].rewardList[].amount

:ps_naf_code

/

Receipts

NAF Code is used to identify the business sector of an enterprise. It is also used for France fiscal compliance.

Any / No

Note: Available in 9.0.1 app build

transactions[].nafCode

IF NO VALUE: Nothing printed

:ps_p_gc_balance

/

Receipts

Gift card purchase value

Products / No

Note: Available in 9.2.1 app build

Sale/Exchangetransactions[].productList[].gcBalance

Returnstransactions[].returnProductList[].gcBalance

IF NO VALUE: Nothing printed

:ps_gc_tender_balance

/

Receipts

Gift card balance

Payment Tenders / No

Note: Available in app build 9.2.1 for sales, 9.10.1 for refunds/exchanges

Sale/Exchangetransactions[].tenders[].tenderBalance

Returnstransactions[].refundPaymentDetails[].tenderBalance

IF NO VALUE: Nothing printed

:ps_payment_tender_type

/

Receipts

Payment tender type (e.g., Gift Card)

Note: Must be used with "=IF" function to display text and value. E.g.,

The logic below will display "Gift Card Remaining Balance:"

=IF(:ps_payment_tender_type=Gift Card,Gift Card Remaining Balance:,)

The logic below will display the gift card's remaining balance value, e.g., $10

=IF(:ps_payment_tender_type=Gift Card,:ps_gc_tender_balance,)

Payment Tenders / No

Note: Available in 9.2.1 app build

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_cash_tendered_amount

/

Receipts

Cash given by customer to associate before change in transaction

Payment Tenders / No

Note: Available in 9.2.1 app build

OnlineSale/Exchangetransactions[].tenders[].tenderedAmount

Returns

transactions[].refundPaymentDetails[].tenderedAmount

OfflineSale/Exchangetransactions[].tenders[].cashTenderedAmount

Returns

transactions[].refundPaymentDetails[].cashTenderedAmount

IF NO VALUE: Nothing printed

:ps_cash_change_amount

/

Receipts

Change given for cash transaction

Payment Tenders / No

Note: Available in 9.2.1 app build

OnlineSale/Exchangetransactions[].tenders[].changeBackAmount

Returns

transactions[].refundPaymentDetails[].changeBackAmount

OfflineSale/Exchangetransactions[].tenders[].cashChangeAmount

Returns

transactions[].refundPaymentDetails[].cashChangeAmount

IF NO VALUE: Nothing printed

:ps_p_delivery_date

/

Receipts

Item-level delivery date

Product / No

Note: Available in 9.9.1 app build

Sale/Exchange

transactions[].productList[].deliveryGroups[].dateTimeSlot.selectedTimeSlot (Date is formatted in the based on the device timezone)

Returns

transactions[].returnProductList[].deliveryGroups[].dateTimeSlot.selectedTimeSlot (Date is formatted in the based on the device timezone)

:ps_p_pickup_date

/

Receipts

Item-level pickup date

Product / No

Note: Available in 9.9.1 app build

Sale/Exchange

transactions[].productList[].dateTimeSlot.selectedTimeSlot (Date is formatted in the based on the device timezone)

Returns

transactions[].returnProductList[].dateTimeSlot.selectedTimeSlot (Date is formatted in the based on the device timezone)

:ps_p_pickup_info

/

Receipts

Item-level pickup information

Product / No

Note: Available in 9.9.1 app build

Sale/Exchange

transactions[].productList[].pickUpDetailList[].(firstName lastName)

Returns

transactions[].returnProductList[].pickUpDetailList[].(firstName lastName)

:ps_o_pickup_info

/

Receipts

Order-level pickup information

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_pickup_email

/

Receipt

Displays pickup email email at item level

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_o_pickup_email

/

Receipt

Displays pickup email email at order level

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_pickup_phone

/

Receipt

Displays pickup phone number information at item level

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_o_pickup_phone

/

Receipt

Displays pickup phone number information at order level

Product / No

Note: Available in 9.10.1 app build

TBD

:ps_p_registryId

/

Receipt

Displays the registry ID of a product at item level

Product / No

Note: Available in 10.2.1 app build

TBD

:ps_p_pickup_location

/

Receipts

Item pickup location Product / No

Sale/Exchange1) transactions[].productList[].pickupLocation.addressLine1 +

transactions[].productList[].pickupLocation.city +

transactions[].productList[]].pickupLocation.state +

transactions[].productList[].pickupLocation.postalCity

2) transactions[].productList[].pickupLocation.AddressLine1 +

transactions[].productList[].pickupLocation.City +

transactions[].productList[].pickupLocation.State +

transactions[].productList[].pickupLocation.PostalCity

Returns1) transactions[].returnProductList[].pickupLocation.addressLine1 +

transactions[].returnProductList[].pickupLocation.city +

transactions[].returnProductList[].pickupLocation.state +

transactions[].returnProductList[].pickupLocation.postalCity

2) transactions[].returnProductList[].pickupLocation.AddressLine1 +

transactions[].returnProductList[].pickupLocation.City +

transactions[].returnProductList[].pickupLocation.State +

transactions[].returnProductList[].pickupLocation.PostalCity

IF NO VALUE: Nothing printed

:ps_p_shipping_address

/

Receipts

Item-level shipping address

Note: Will not print registry details

Product / No

Note: Available in 9.9.1 app build

Sale/Exchangetransactions[].productList[].deliveryGroups[].shippingAddress.(addressLine1, addressLine2)

Returnstransactions[].returnProductList[].deliveryGroups[].shippingAddress.(addressLine1, addressLine2)

IF NO VALUE: Nothing printed

:ps_store_customString0

/

Receipts

Value that is mapped in Store - Field Mappings Any / No

TBD

IF NO VALUE: Nothing printed

:ps_store_customString1

/

Receipts

Value that is mapped in Store - Field Mappings Any / No

TBD

IF NO VALUE: Nothing printed

:ps_customer_invoice_reason_code

/

Receipts

Customer invoice reason code Any / No

TBD

IF NO VALUE: Nothing printed

:ps_customer_invoice_reason_text

/

Receipts

Customer invoice reason text Any / No

TBD

IF NO VALUE: Nothing printed

:ps_customer_lottery_code

/

Receipts

Customer lottery code Any / No

TBD

IF NO VALUE: Nothing printed

:ps_duplicateReceiptText

/

Receipts

Indicates reprinted receipts Any / No

TBD

IF NO VALUE: Nothing printed

:ps_reference_receipt_id

/

Receipts

Receipt ID used for reference Any / No

TBD

IF NO VALUE: Nothing printed

Store Associate Profile

:ps_associate_first_name

/

Text Overlay, App Config, Receipts

First name of the logged-in store associate who completed transaction; reprinted receipts will print the same associate information as the original receipt Any / No

If Sales Associate Id Matching:transactions[].storeAssociate.storeAssociateID.firstName

Otherwise

POS Provided

Sales Associate Id Determined By First Matching ID:a) transactions[].productList[].salesAssociateAttribution[].storeAssociateId

b) transactions[].storeAttribution.storeAssociateId

c) transactions[].storeAssociate.storeAssociateID

d) Provided By POS

IF NO VALUE: Nothing printed

:ps_associate_last_name

/

Text Overlay, App Config, Receipts

Last name of the logged-in store associate who completed transaction; reprinted receipts will print the same associate information as the original receipt Any / No

IF Sales Associate Id Matching:transactions[].storeAssociate.storeAssociateID.lastName

Otherwise

POS Provided

Sales Associate Id Determined By First Matching ID:a) transactions[].productList[].salesAssociateAttribution[].storeAssociateId

b) transactions[].storeAttribution.storeAssociateId

c) transactions[].storeAssociate.storeAssociateID

d) Provided By POS

IF NO VALUE: Nothing printed

:ps_associate_name

/

Text Overlay, Receipts

Name of the logged-in store associate who completed transaction; reprinted receipts will print the same associate information as the original receipt Any / No

IF Sales Associate Id Matching:transactions[].storeAssociate.storeAssociateID.firstName + transactions[].storeAssociate.storeAssociateID.lastName

Otherwise

POS Provided

Sales Associate Id Determined By First Available ID:a) transactions[].productList[].salesAssociateAttribution[].storeAssociateId

b) transactions[].storeAttribution.storeAssociateId

c) transactions[].storeAssociate.storeAssociateID

d) {POS stored sales associate}

IF NO VALUE: Nothing printed

:ps_associate_email

/

Text Overlay, Receipts

Email of the logged-in store associate who completed transaction; reprinted receipts will print the same associate information as the original receipt Any / No

TBD

IF NO VALUE: Nothing printed

:ps_associate_role

/

Text Overlay, App Config - Store Associate Profile

Role of the logged-in store associate who completed transaction; reprinted receipts will print the same associate information as the original receipt Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "STORE_ASSOCIATE" is printed.

:ps_associate_id

/

Text Overlay, Receipts

ID of the logged-in store associate who completed transaction; reprinted receipts will print the same associate information as the original receipt Any / No

Sales Associate Id Determined By First Matching ID:

1) transactions[].productList[].salesAssociateAttribution[].storeAssociateId

2) transactions[].storeAttribution.storeAssociateId

3) transactions[].storeAssociate.storeAssociateID

If not found, provided by POS

IF NO VALUE: Nothing printed

Url Deep Link

:ps_p_size

/

URL Deep Link

Used to substitute the selected product's size query parameter of a URL deep link on PDP

E.g., By configuring the following URL in URL deep link https://example.com?productSize=:ps_p_size the app will load the URL in a web view where the URL has substituted product size as a query parameter that is selected on the PDP

Note: Only valid on PDP layout

Products / No

URL Deep Link

URL deep link configured on PDP. size of the product displayed on PDP

IF NO VALUE: Nothing printed

User Loyalty Profile

:ps_current_loyalty_tier_subtitle

/

Text Overlay, Loyalty Settings

Current Loyalty Tier subtitle text Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_current_loyalty_tier_title

/

Text Overlay, Loyalty Settings

Current Loyalty Tier title text Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_current_loyalty_points

/

Text Overlay, Loyalty Settings

Current Loyalty points Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" is printed

:ps_current_reward_points

/

Text Overlay, Loyalty Settings

Current reward points Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" is printed

:ps_current_tier_date

/

Text Overlay, Loyalty Settings

Date of reaching current loyalty tier Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_current_tier_expiry_date

/

Text Overlay, Loyalty Settings

Date when the current loyalty tier expires Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_current_loyalty_tier_display

/

Text Overlay, Loyalty Settings

Display name of next loyalty tier Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_next_loyalty_tier_display

/

Text Overlay, Loyalty Settings

Display name of next loyalty tier Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_next_loyalty_tier_name

/

Text Overlay, Loyalty Settings

Level name of next loyalty tier Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_total_points

/

Text Overlay, Loyalty Settings

Lifetime Loyalty points Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_loyalty_custom

/

Text Overlay, Loyalty Settings

Logged-in customer’s custom loyalty attribute Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_account_number

/

Text Overlay, Loyalty Settings

Loyalty profile ID of logged-in user Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_current_loyalty_tier_name

/

Text Overlay, Loyalty Settings

Name of current level of loyalty tier Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_next_loyalty_tier_subtitle

/

Text Overlay, Loyalty Settings

Next Loyalty Tier subtitle text Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_next_loyalty_tier_title

/

Text Overlay, Loyalty Settings

Next Loyalty Tier title text Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_num_cash_rewards

/

Text Overlay, Loyalty Settings

Number of cash rewards the user has Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_points_to_next_tier

/

Text Overlay, Loyalty Settings

Number of points to the next tier loyalty status Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_num_rewards

/

Text Overlay, Loyalty Settings

Number of rewards the user has Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_current_credits

/

Text Overlay, Loyalty Settings

Store credits available Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

:ps_points_to_next_reward

/

Text Overlay, Loyalty Settings

Number of points till the next reward Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_num_rewards_total

/

Text Overlay, Loyalty Settings

Total dollar value of rewards Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

:ps_num_rewards_total_2

/

Text Overlay, Loyalty Settings

Total value of available rewards total Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

:ps_num_cash_rewards_total

/

Text Overlay, Loyalty Settings

Total value of the cash rewards the user has Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

:ps_num_rewards_total_2_no_dec

/

Text Overlay, Loyalty Settings

Total value of available rewards total (no decimal) Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

:ps_num_cash_rewards_total_no_dec

/

Text Overlay, Loyalty Settings

Total value of the cash rewards the user has Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: 0 in localized currency is printed.

User Profile

:ps_profile_fulladdress

/

Text Overlay

Customer’s full address Any / No

IF NO VALUE: Nothing printed

:ps_profile_addressline1

/

Text Overlay

Customer’s first address line Any / No

1) transactions[].profile.address.addressLine1 +

transactions[].profile.address.addressLine2 (if value)

2) transactions[].shippingAddress.addressLine1 +

transactions[].shippingAddress.addressLine2

IF NO VALUE: Nothing printed

:ps_profile_addressline2

/

Text Overlay

Customer’s second address line Any / No

1) transactions[].profile.address.city +

transactions[].profile.address.postalCode

2) transactions[].shippingAddress.city +

transactions[].shippingAddress.postalCode

IF NO VALUE: Nothing printed

:ps_profile_addressline3

/

Text Overlay

Customer's third address line Any / No

1) transactions[].profile.address.addressLine3 +

transactions[].profile.address.state +

transactions[].profile.address.country (if value)

2) transactions[].shippingAddress.addressLine3 +

transactions[].shippingAddress.state +

transactions[].shippingAddress.countryCode

IF NO VALUE: Nothing printed

:ps_profile_city

/

Text Overlay

Customer’s city Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_profile_country_code

/

Text Overlay

Customer’s country code Any / No

transactions[].profile.companyName

IF NO VALUE: Nothing printed

:ps_profile_country

/

Text Overlay

Customer’s country Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_customer_tax_id

/

Text Overlay

Customer’s account tax ID Any / No

transactions[].profile.taxInfo.taxId

IF NO VALUE: Nothing printed

:ps_salutation

/

Text Overlay, Receipts

Customer's address salutation Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_company_addressline1

/

Layouts

Customer’s company address line 1 No / No Not extracted from "transactions" data; provided by POS.

:ps_company_addressline2

/

Layouts

Customer’s company city No / No Not extracted from "transactions" data; provided by POS.

:ps_company_city

/

Layouts

Customer’s company city No / No Not extracted from "transactions" data; provided by POS.

:ps_company_country

/

Layouts

Customer’s company country No / No Not extracted from "transactions" data; provided by POS.

:ps_company_email

/

Layouts

Customer’s company email No / No Not extracted from "transactions" data; provided by POS.

:ps_company_name

/

Layouts

Customer’s company name No / No Not extracted from "transactions" data; provided by POS.

:ps_company_phone

/

Layouts

Customer’s company phone No / No Not extracted from "transactions" data; provided by POS.

:ps_company_zip

/

Layouts

Customer’s company ZIP code No / No Not extracted from "transactions" data; provided by POS.

:ps_company_state

/

Layouts

Customer’s company state No / No Not extracted from "transactions" data; provided by POS.

:ps_company_tax_vat_id

/

Layouts

Customer’s company tax vat ID No / No Not extracted from "transactions" data; provided by POS.

:ps_government_id

/

Layouts

Customer’s government ID No / No Not extracted from "transactions" data; provided by POS.

:ps_customer_id

/

Text Overlay

Customer ID Any / No

IF NO VALUE: Nothing printed

:ps_alternate_customer_id

/

Text Overlay

Customer's alternate account ID Any / No

transactions[].profile.alternateCustomerId (First four letters)

IF NO VALUE: Nothing printed

:ps_email

/

Text Overlay, Receipts

Customer's email Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_first_name

/

Text Overlay

Customer's first name Any / No

1) transactions[].profile.firstName

2) transactions[].profile.address.firstName

IF NO VALUE: Nothing printed

:ps_customer_name

/

Text Overlay, Receipts

Customer’s full name Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_profile_home_phone_number

/

Text Overlay

Customer's home phone number Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_last_name

/

Text Overlay, Receipts

Customer's last name Any / No

1) transactions[].profile.lastName

2) transactions[].profile.address.lastName

IF NO VALUE: Nothing printed

:ps_birthday

/

Text Overlay

Customer’s birthday Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_gender

/

Text Overlay

Customer’s gender Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_num_orders_completed

/

Text Overlay

Number of completed orders Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_num_addresses

/

Text Overlay

Number of addresses in customer’s profile Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_num_orders_placed

/

Text Overlay

Number of orders placed Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_num_payment_cards

/

Text Overlay

Number of card payments in customer’s profile Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_customer_phone

/

Text Overlay

Customer’s phone number Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_profile_state

/

Text Overlay

Customer’s state Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_num_wishlist_products

/

Text Overlay

Total number of products in wishlist Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: "0" printed

:ps_profile_preferred_language

/

Text Overlay

Customer’s preferred language Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_profile_zip

/

Text Overlay

Customer’s ZIP code Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_c_customer_group

/

Receipts, Layouts

Customer's segment (for example, veterans.)

Any / No

transactions[].profile.customerGroup

IF NO VALUE: Nothing printed

Wine Loyalty

:ps_club_contact_id

/

Text Overlay

Club contact ID Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_club_id

/

Text Overlay

Club ID Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_club_membership_id

/

Text Overlay

Club membership ID Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_club_name

/

Text Overlay

Club name Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

:ps_profile_company

/

Text Overlay

Company name Any / No

transactions[].profile.companyName

IF NO VALUE: Nothing printed

:ps_profile_title

/

Text Overlay

Profile title Any / No

Not extracted from "transactions" data; provided by POS

IF NO VALUE: Nothing printed

# Concurrent Facebook (Meta) Pixel Injection and Server-Side Activity Tracking Starting in release 25.7, you can now enable both Facebook pixel injection and server-side activity tracking simultaneously. Previously, you could only enable one of these features at a time. **How:** In Business Manager, select **Merchant Tools** | **Site** | **Site Preferences** | **Facebook and Instagram Shopping**. #### See Also - [Server-Side Activity Tracking for Facebook](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-third-party.html#server-side-activity-tracking-for-facebook) - [Facebook and Instagram Catalog Ads Integration](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-third-party.html#facebook-and-instagram-catalog-ads-integration) # Configurable Products and Bundles for B2B Stores Offer configurable products and bundles so that buyers can customize their purchase to their exact specifications. The total price of the product or bundle updates dynamically based on the buyer’s selections. - Configurable Products: Buyers can customize a product by using dynamic attributes. For example, for a custom industrial cable, they specify length, gauge, and coating. - Configurable Bundles: Buyers build a custom package by choosing from required and optional items in a bundle. For example, a Work From Home Kit can include a mandatory chair with optional add-ons such as a standing desk or monitor. As buyers select items, the bundle price updates in real time. To offer configurable products or bundles in your B2B store, first set up the product configurator. For configurable products, configure dynamic attributes for the products in Revenue Cloud. For configurable bundles, create the configurable bundles in Agentforce Revenue Management, formerly Revenue Cloud. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Configurable bundles work only with standard products. To ensure your bundle is configurable, avoid adding subscriptions, nested bundles, variation parents, or product sets. - **[Set Up Product Configurator for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_product_configurator_setup.htm&release=264.0.0&type=5)** Use the product configurator to offer configurable products and bundles to your buyers. To set up the product configurator, configure Revenue Cloud features, permissions, sharing settings, and advanced pricing. Then, create a configurator flow, assign it to your store, and republish your store. - **[Create Configurable Bundles in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_configurable_bundles.htm&release=264.0.0&type=5)** Create configurable bundles that buyers can customize. Define required and optional items, define rules, and enable real-time pricing updates. - **[Create Configurable Products with Dynamic Attributes in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_configurable_products.htm&release=264.0.0&type=5)** Create products that buyers can customize based on specific attributes, such as size, color, material, or technical specifications. Unlike product variations, dynamic attributes update pricing dynamically as buyers make their selections without requiring separate SKUs for every combination. # Configure a Business Account as a Buyer for a B2B Store Create a business account and then enable it as a buyer account. Add contacts to the buyer account and enable the contacts as customer users. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) You can also create a buyer account in your Customer workspace. See [Use the Customer Workspace to Add a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_from_cust_wkspc.htm&release=264.0.0&type=5 "The simplest way to add a buyer is to create the buyer account from the Customer workspace."). 1. In the App Launcher, find and select **Accounts**. 2. Click **New**. 3. If you’re given an option of what kind of account to create, select **Business Account** and click **Next**. 4. Enter the account information, and click **Save**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important In the Account Currency dropdown, select the buyer account’s preferred currency. If you don’t choose an account currency, or if you select a currency that your store doesn’t support, the buyer sees prices in the store’s default currency. The currency that you select for the account applies to all buyers in the account and overrides the individual buyer’s currency setting. 5. From the Actions dropdown, select **Enable as Buyer**. If you ever disable the account as a buyer, any associations the account has with buyer groups are deleted. 6. Add a contact to the account. A contact for a buyer account can access stores that the account’s buyer group is associated with. 1. Click **Related**, and next to Contacts, click **New**. 2. Enter the information, and click **Save**. 3. Select the new contact, and from the Actions dropdown, select **Enable Customer User**. 4. Enter a username, email, and nickname for the user. 5. Select the license, profile, and permission set for the user. The permission set determines the level of access that the buyer has to the store. See [Permission Sets for Buyers, Buyer Managers, and Account Switchers for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.commerce_buyer_and_buyer_mgr_perm_sets.htm&release=264.0.0&type=5 "Manage access to your commerce store's features and data by using the preconfigured permission sets for buyers, buyer managers, and account switchers."). 6. Click **Save**. #### See Also - [Add Accounts to a Buyer Group for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_add_buyer_accounts_to_buyer_group.htm&release=264.0.0&type=5 "To give multiple accounts access to the same store, price books, and entitlements, create a buyer group and add the accounts.") - [Associate a Buyer Group with a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups.htm&release=264.0.0&type=5 "Product prices and the products that buyers can access depend on the price books and the entitlement policies assigned to the buyer group. When you create a store, a default buyer group is assigned to the store.") - [Add Billing and Shipping Addresses for Buyer Accounts for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_account_addresses.htm&release=264.0.0&type=5 "Set the default billing and shipping addresses for buyer accounts.") - [Create a Buyer for a B2B Store from a Person Account](https://help.salesforce.com/s/articleView?id=commerce.comm_person_buyer_accounts.htm&release=264.0.0&type=5 "One way to add a buyer is to enable a person account as a buyer account and a customer user. The individual identified in the person account has access to stores related to the account’s buyer group. When you enable a person account as a buyer, you can't convert the person account to a business account. You also can't merge the account with other accounts. To merge or convert the account, you must disable it as a buyer, merge or convert the account, and then reenable it as a buyer.") - [Use the Customer Workspace to Add a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_from_cust_wkspc.htm&release=264.0.0&type=5 "The simplest way to add a buyer is to create the buyer account from the Customer workspace.") # Configure a Custom Domain and CDN For B2B stores created with the LWR template, if you prefer a branded URL or a URL without my.site.com, connect your store to a domain. Connecting the store to a domain automatically enables the Salesforce content delivery network (CDN) partner. You can use a single custom domain for multiple Commerce stores. A Salesforce admin typically configures the custom domain. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note To connect your own CDN (BYO CDN) to your Commerce store, contact Salesforce Customer Support. We’ll evaluate your request and enable BYO CDN. When you use your own CDN, you’re responsible for managing the CDN for performance and security. To serve your custom domain with the Salesforce CDN, your domain name must be a subdomain of a top-level domain. For example, if your top-level domain is example.com, your subdomain is something like store.example.com. Your top-level domain is registered and hosted externally from Salesforce. You can’t use the same domain name across multiple organizations. If you delete a domain name from one organization and plan on reusing it in another, wait at least 48 hours between deleting the domain name and adding it back in. Avoid making changes to your domain options before the previous changes have been fully processed. Processing typically takes 2-3 days. If you choose to use the system-managed .my.site.com URL provided by Salesforce, you can upload files up to 128MB in size per file. If you create a custom domain, you can upload files up to 500MB in size per file. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note A CDN isn’t required for sandbox stores, stores created in Developer Edition, or B2B stores created with an Aura template. Although a custom domain and corresponding CDN are optional for a B2B store created with an Aura template, we recommend them if broad access and high security are required. 1. Review the [considerations](https://help.salesforce.com/s/articleView?id=platform.community_builder_cdn_considerations.htm&type=5&language=en_US) for the Salesforce CDN partner. 2. Complete the [prerequistes](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_prereqs.htm&type=5&language=en_US) for a custom domain and the [prerequistes for the Salesforce CDN](https://help.salesforce.com/s/articleView?id=platform.community_builder_cdn_prerequisites.htm&type=5&language=en_US). 3. [Set up](https://help.salesforce.com/s/articleView?id=platform.community_builder_cdn.htm&type=5&language=en_US) a custom domain that uses the Salesforce CDN partner. During setup, select the **Serve the domain with the Salesforce Content Delivery Network (CDN)** option, and select the **Use the Cloudflare® CDN to serve this domain** checkbox. #### See Also - [Use a Custom URL for Your Store](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_url.htm&release=264.0.0&type=5 "The default URL for a Commerce store includes a temporary path you specified when creating the store. The default URL is suitable for testing pre-production stores during development. However, before you launch a B2B store created with an LWR template into live production, we recommend that you configure a custom URL for the store. Associate the custom URL with a custom domain served by the Salesforce CDN, with Cloudflare as the CDN partner. For B2B stores created with an Aura template, a custom URL is optional. However, we recommend using a custom domain and corresponding CDN if broad access and high security are required.") - [Activate Your Store](https://help.salesforce.com/s/articleView?id=commerce.comm_activate_store.htm&release=264.0.0&type=5 "Activating your B2B store makes it available to customers and accessible to external services and online search engines. Activating the store also publishes it.") - [Connect a B2B Store to Your Domain](https://help.salesforce.com/s/articleView?id=commerce.comm_storedomainconnect.htm&release=264.0.0&type=5 "Redirect shoppers to your Commerce store when they enter your domain URL. When you connect your store to a domain, your store has access to the Salesforce content delivery network (CDN), with Cloudflare as the CDN partner. If you don’t yet have a domain, you can choose one from the sample registrars or any other trusted registrar.") # Configure a Delivery Method for Order on Behalf Of To ensure that orders are consistently mapped from B2C Commerce, configure the delivery methods in your org that correspond to the shipping methods in your storefront. ### Required Editions
View supported editions.
Previous step: [Set Up Prerequisites for Order on Behalf Of](https://help.salesforce.com/s/articleView?id=commerce.om_complete_prereq_oobo.htm&release=264.0.0&type=5 "There are a few prerequisites necessary before you can set up Order on Behalf Of for your org.") See all steps in [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization."). 1. From the App Launcher, find and select **Order Delivery Methods**. 2. Click **New** and enter a name. 3. For Reference Number, enter the delivery method ID used in your storefront. B2C Commerce uses the term “shipping method” instead of “delivery method.” The Reference Number is your B2C Commerce storefront’s shipping method ID. 4. Select **Active**. 5. Create one product record for each delivery method or associate a product record with multiple delivery methods. For information about products, see Guidelines for Creating Products. 6. Add price book entries. If Optional Price Books is enabled, adding price book entries is optional. 1. From the new order delivery method, click the product type in the Product section. 2. On the product page, open the Related tab. 3. In the Price Books related list, select **Add Standard Price**. 4. If your org has multicurrency enabled, select a currency from the dropdown. 5. For List Price, enter 0. If you leave this field empty, an error occurs when you use this delivery method. 6. Select **Active**. 7. To add a standard price book entry for another currency, click **Save & New**, and repeat the steps for the currency. When you’ve created entries for all the supported currencies, click **Save**. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_example.png) Example This example uses Apex to add delivery methods with optional price books enabled: ``` public Product2 createProduct2(String name, String description){ Product2 p2 = new Product2(name = name, Description = description, IsActive = true); insert p2; return p2; } public void createOrderDeliveryMethod(String name, String description, Product2 product, String externalReference){ OrderDeliveryMethod odm = new OrderDeliveryMethod(name = name, Description = description, ProductId = product.Id, ReferenceNumber = externalReference, IsActive = true); insert odm; } Product2 product1 = createProduct2('Ground', 'Order received within 7-10 business days'); createOrderDeliveryMethod('Ground', 'Order received within 7-10 business days', product1, '001'); Product2 product2 = createProduct2('2-Day Express', 'Order received in 2 business days'); createOrderDeliveryMethod('2-Day Express', 'Order received in 2 business days', product2, '002'); Product2 product3 = createProduct2('Overnight', 'Order received the next business day'); createOrderDeliveryMethod('Overnight', 'Order received the next business day', product3, '003'); Product2 product4 = createProduct2('Super Saver', 'Super Saver Delivery (arrives in 3-7 business days)'); createOrderDeliveryMethod('Super Saver', 'Super Saver Delivery (arrives in 3-7 business days)', product4, '004'); Product2 product5 = createProduct2('Express', 'Orders shipped outside continental US received in 2-3 business days'); createOrderDeliveryMethod('Express', 'Orders shipped outside continental US received in 2-3 business days', product5, '012'); Product2 product6 = createProduct2('USPS', 'Order shipped by USPS received within 7-10 business days'); createOrderDeliveryMethod('USPS', 'Order shipped by USPS received within 7-10 business days', product6, '021'); ``` Next step: [Webstores for Order on Behalf Of (Optional, B2C OOBO Only)](https://help.salesforce.com/s/articleView?id=commerce.om_webstores_for_oobo_b2c.htm&release=264.0.0&type=5 "To create orders that aren’t already being pulled in from a storefront through integration, create a webstore. If you’re using B2B Commerce or D2C Commerce, your webstores are already configured.") #### See Also - [Guidelines for Creating Products](https://help.salesforce.com/s/articleView?id=sales.products_guidelines_for_creating.htm&type=5&language=en_US) - [Video: Order on Behalf Of Setup](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2) - [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.") # Configure a Launch Image Launch images appear on the screen immediately after the POS app loads. Configuring these images in the CMS provides a fresh look and feel without requiring a new build. Using CMS to configure the launch images lets you quickly update the look and feel of the application. You can keep the application current without the overhead of managing application updates. Previously, configuring Launch Images required that you upload files that adhered to a rigid naming convention. Managing these images in the CMS has been simplified and no longer requires that you adhere to a naming convention. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The screen with a login CTA at launch time can't be replaced without a new build. 1. In CMS, go to **Layouts** | **Layout Templates** | **Launch Images**. ![The launch image dialog shows one of two default images. The shown default image depicts a children's party.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_personalization_launch_image.png) 2. Click the Plus icon to create launch images for the first time or to add new sizes OR click the Edit icon to edit existing launch images. 3. Click the Plus icon. 4. Click **SELECT FILES** and select the images on your computer. 5. (Optional) Drag the files into the desired order. ![The upload default images dialog, where you can drag files to a desired order, and then upload them.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_personalization_launch_images_default.png) 6. Click **UPLOAD**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Images must be uploaded in JPG format. ## Troubleshooting All image sizes must be updated when swapping launch images If you do not create replacement images for all existing launch image sizes users can be served old images. Consider this scenario: - You have uploaded a 2048px x 2732px and a 1668px x 2224px size image - Some time goes by and you update the 2048px x 2732px image The above will result in users on 1668px x 2224px screens to still get the old image. # Configure a Max-Age for HSTS Add additional security to your B2C Commerce instance with the max-age for HSTS setting. Setting a max-age determines how long the HSTS settings stay enabled. Where: This change applies to Business Manager Production and Development instances. How: In Business Manager, go to **Administration** | **Global Preferences** | **Security** | **Access Restriction**. Select **HSTS Max-Age**. # Configure a Payment Gateway Configure payment gateways in Point of Sale CMS to securely process customer payments. By connecting preferred payment providers, you streamline transactions and enhance the customer checkout experience. Accept a variety of payment methods, reduce friction, and improve overall sales efficiency. - Modern POS App build: Depends on the Payment Gateway used by the merchant - Platform Support: iPhone & iPad - Offline Support: No 1. In the CMS, go to **Integrations** | **Payment Gateways**. 2. Click **CREATE** to create a new configuration. 3. Select a Payment Gateway from the dropdown or click the Edit icon to edit an existing one. 4. Complete all of the required fields and click **SAVE**.![The payment gateway option listing payment gateways, environment, fulfillment type, store ID, payment method, and device ID.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_pay_gate_config.png) ![The payment gateway details dialog shows options for a payment gateway, environment, fulfillment type, store ID, payment method, and device ID.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_pay_gate_config_fiields.png) ## Payment Gateway Fields | Payment Gateway Fields | Adyen | Elavon | PayPal Here | Fiserv | HiPay | UTA | Verifone PSDK | | --- | --- | --- | --- | --- | --- | --- | --- | | Payment Gateway | Required | Required | Required | Required | Required | Required | Required | | Environment | Required | Required | Required | Required | Required | Required | Required | | Fulfillment Type | Required | Required | Required | Required | Required | Required | X | | Store ID | Required | Required | Required | Required | Required | Required | X | | Payment Method | Required | Required | Required | Required | Required | Required | X | | Device ID | Required | Required | Required | Required | Required | Required | X | | Default Device ID | X | Required | X | X | X | X | X | | URL Base | Required | Required | Required | X | Required | Required | X | | Secondary URL Base | X | X | X | X | X | X | X | | Merchant Gateway ID | Required | X | X | X | X | Required | X | | Merchant Key | Required | X | Required | X | Required | Required | X | | Merchant Secret | X | X | Required | X | X | Required | X | | Merchant Token | X | X | Required | X | X | X | X | | Merchant Organization ID | X | Required | X | X | X | X | X | | Services | Required | Optional | X | X | X | X | X | | Terminal Certificate Name Suffix | Required | X | X | X | X | X | X | | Terminal Gateway ID | Required | Required | X | X | X | X | X | | Terminal Username | Optional | X | X | X | Required | X | X | | Terminal Password | Optional | X | X | X | Required | X | X | | Terminal Key Identifier | Optional | X | X | X | X | X | X | | Terminal Key Encryption Version | Optional | X | X | X | X | X | X | | Terminal Key Passphrase | Optional | X | X | X | X | X | X | | Terminal Beacon ID | Optional | X | X | X | X | X | X | | Terminal Request Timeout Interval In Seconds | Optional | Optional | X | Optional | X | X | X | | Payment Status Check API Timeout In Seconds | Optional | Optional | X | X | X | X | X | | Transaction Verification Days | Optional | X | X | X | X | X | X | | Skip Fraud Check | Optional | X | X | X | X | X | X | | Has Cart Summary On Payment Terminal | Optional | X | X | X | X | X | Optional | | Manual Credit Card Entry | Optional | Optional | X | X | X | X | Optional | | Manual Payment Capture | Optional | X | X | X | X | X | Optional | | Adyen Company Account Name | Optional | X | X | X | X | X | Optional | | Adyen Store Code | Optional | X | X | X | X | X | X | | Adyen Terminal Management URL Prefix | Optional | X | X | X | X | X | X | | Pay By Link Base URL | Optional | X | X | X | Required | X | Optional | | Pay By Link URL Expiration In Hours | Optional | X | X | X | X | X | Optional | | Callback URL | Should Exist | X | Should Exist | X | Should Exist | X | Should Exist | X - Not Applicable ## Common Fields Environment: Test / Live based on if this is for a test account or live account. Fulfillment Type: Choose DEFAULT if you wish to create this config for a POS app to perform transactions. Store ID: Choose DEFAULT if you wish to have the same config across all stores. Otherwise, choose a particular store from the store drop-down to apply these settings to a particular store. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important If you've yet to set up an Adyen and Point of Sale account, please ensure your StoreIDs are the same for both accounts. If your Point of Sale account is already live but have yet to set up Adyen, please ensure your Adyen's StoreID is the same as your Point of Sale's StoreID. If your Adyen account is already live but have yet to set up Point of Sale, please ensure your Point of Sale's StoreID is the same as Adyen's StoreID. Payment Method: Choose CHECK if the configured payment gateway is for check flow. Otherwise, Credit Card for all other cases. Device ID: Choose DEFAULT if you wish to have the same config across all the store devices. Enter a particular device ID to apply these settings to a particular device. ## Payment Gateway Types The Point of Sale platform integrates with many of the most commonly used payment gateways. The following tables list the supported payment gateway types with their related configuration articles.
Supported Payment Gateway Types Related Articles
Adyen
Elavon
Paypal Here
Fiserv TBD
HiPay
UTA TBD
# Configure a Payment Gateway for Exchanges RMA (B2C Only) If you don’t use Salesforce Payments, you can configure a payment gateway to manage payments. Payment packages for some vendors are available on AppExchange. ### Required Editions
View supported editions.
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important If you’re using exchanges with B2B or D2C Commerce, steps 1-4 are already configured during the Order Management implementation. Go straight to step 5. 1. Create a payment gateway adapter class using the Salesforce Apex connector framework. To help you get started, see these [reference classes](https://github.com/forcedotcom/Core-Payments-Reference-Gateway-Integration-Adapters). 2. Create a payment gateway provider record that points to the adapter class that you created. 3. In Setup, define a named credential that contains the gateway provider’s authentication and login information. The adapter class callout definition calls the named credential. 4. Link the payment gateway provider record and the named credential by creating a payment gateway record. 5. Associate the payment gateway to the webstore record. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_example.png) Example To associate the payment gateway to the web store record, use a script like this ``` // Script to add a connection between the web store and the payment gateway for B2C Commerce stores String webStoreName = 'SiteGenesis'; String paymentGatewayName = 'SalesforceAdapter'; // obtain webstoreid List webstores = [SELECT Id, Name FROM WebStore WHERE Name = :webStoreName]; System.debug('Webstores: ' + webstores); if(webstores.isEmpty()){ System.debug('Error obtaining webstore with name ' + webStoreName); } String webStoreId = webstores[0].Id; System.debug('WebStoreId: ' + webStoreId); // obtain payment gateway id from the payment gateway name List paymentGateways = [SELECT Id, PaymentGatewayName FROM PaymentGateway WHERE PaymentGatewayName = :paymentGatewayName]; System.debug('paymentGateways: ' + paymentGateways); if(paymentGateways.isEmpty()){ System.debug('Error obtaining payment gateway with name ' + paymentGatewayName); } String paymentGatewayId = paymentGateways[0].Id; System.debug('paymentGatewayId: ' + paymentGatewayId); // If a StoreIntegratedService already exists for Payment on the WebStore then update the Integration field with the paymentGatewayId List storeServices = [SELECT Id FROM StoreIntegratedService WHERE StoreId = :webStoreId AND ServiceProviderType ='Payment' ]; System.debug('storeServices: ' + storeServices); if(storeServices.isEmpty()){ StoreIntegratedService storeService = new StoreIntegratedService( StoreId = webStoreId, Integration = paymentGatewayId, ServiceProviderType ='Payment'); insert storeService; } else { StoreIntegratedService existingStoreService = storeServices[0]; existingStoreService.Integration = paymentGatewayId; update existingStoreService; } ``` #### See Also - [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns.") - [Exchanges with RMA Returns Overview](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_overview.htm&release=264.0.0&type=5 "An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer.") # Configure a Payment Gateway for Order on Behalf Of (B2C Only) If you don’t use Salesforce Payments, you can configure a payment gateway to manage payments. Payment packages for some vendors are available on AppExchange. ### Required Editions
View supported editions.
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important If you’re using OOBO, steps 1-4 are already configured during the Order Management implementation. Go straight to step 5. 1. Create a payment gateway adapter class using the Salesforce Apex connector framework. To help you get started, see these [reference classes](https://github.com/forcedotcom/Core-Payments-Reference-Gateway-Integration-Adapters). 2. Create a payment gateway provider record that points to the adapter class that you created. 3. In Setup, define a named credential that contains the gateway provider’s authentication and login information. The adapter class callout definition calls the named credential. 4. Link the payment gateway provider record and the named credential by creating a payment gateway record. 5. Associate the payment gateway to the webstore record. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_example.png) Example To associate the payment gateway to the webstore record, use a script like this ``` // Script to add a connection between the webstore and the payment gateway for B2C Commerce stores String webStoreName = 'SiteGenesis'; String paymentGatewayName = 'SalesforceAdapter'; // obtain webstoreid List webstores = [SELECT Id, Name FROM WebStore WHERE Name = :webStoreName]; System.debug('Webstores: ' + webstores); if(webstores.isEmpty()){ System.debug('Error obtaining webstore with name ' + webStoreName); } String webStoreId = webstores[0].Id; System.debug('WebStoreId: ' + webStoreId); // obtain payment gateway id from the payment gateway name List paymentGateways = [SELECT Id, PaymentGatewayName FROM PaymentGateway WHERE PaymentGatewayName = :paymentGatewayName]; System.debug('paymentGateways: ' + paymentGateways); if(paymentGateways.isEmpty()){ System.debug('Error obtaining payment gateway with name ' + paymentGatewayName); } String paymentGatewayId = paymentGateways[0].Id; System.debug('paymentGatewayId: ' + paymentGatewayId); // If a StoreIntegratedService already exists for Payment on the WebStore then update the Integration field with the paymentGatewayId List storeServices = [SELECT Id FROM StoreIntegratedService WHERE StoreId = :webStoreId AND ServiceProviderType ='Payment' ]; System.debug('storeServices: ' + storeServices); if(storeServices.isEmpty()){ StoreIntegratedService storeService = new StoreIntegratedService( StoreId = webStoreId, Integration = paymentGatewayId, ServiceProviderType ='Payment'); insert storeService; } else { StoreIntegratedService existingStoreService = storeServices[0]; existingStoreService.Integration = paymentGatewayId; update existingStoreService; } ``` #### See Also - [Salesforce Payments](https://help.salesforce.com/s/articleView?id=commerce.payments_product_intro.htm&type=5&language=en_US) - [Video: Order on Behalf Of Setup](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2) - [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.") # Configure a Payment Gateway for PBL in POS Configure a payment gateway to support Point of Sale's Pay by Link functionality. PBL works with Adyen and Verifone payment gateway terminals. Modern POS App Build: - Adyen: Version 7.13.5 (Version 9.8.1 required for multi-tendering) - Verifone: Version 10.0.1 - Platform Support: iPad & iPhone - Offline Support: Not supported ## Configure Adyen Payment Gateway If you’re using Verfione, skip this section and proceed to Configure Adyen Payment Gateway. Prerequisites: - Configured Adyen company account with callback URL as specified in the Adyen Payment Configuration. See [Adyen Payment Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5 "You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale."). - Configured CMS Adyen Payment Gateway. - For in-store Pay by Link (PBL), ensure one Adyen CMS payment gateway is configured with the following default values: FulfillmentType: DEFAULT, StoreId: DEFAULT, PaymentMethod: CreditCard, DeviceId: DEFAULT. - To turn on multi-tendering with remote Pay by Link (PBL), configure and turn it on in the Adyen portal. 1. In CMS, go to **Integrations** | **Payment Gateways**. 2. Edit the **Adyen Payment Gateway**. 3. Go to **Pay By Link Settings** and configure these fields: - Pay By Link Base URL: Enter the PBL endpoint by referring to [Adyen](https://docs.adyen.com/unified-commerce/pay-by-link/create-payment-links/api/#create). - Pay by Link URL Expiration in Hours: Enter the expiration time of the payment links. Although it is recommended to set the value at a minimum of 24 hours with a max of 1,680 (70 days), you may set it lower as needed. The minimum value is 1 hour. This configuration setting applies to the POS platform. You must also set the same expiration value in your Adyen account to ensure the values match between the POS configuration and your Adyen account settings. - Send Store ID to Adyen: If enabled, the POS will send the store details in the payload when a payment link is created. The store ID (provided via CMS store feed) must match the Adyen store ID. This field can be found in your Adyen console under **In-store payments** | **Stores**. ## Configure Verifone Payment Gateway These settings for enabling PBL for Verifone are supported in app builds 10.0.1 or later. To turn on PBL for Verifone, you must set up the settings under Pay By Link Configuration. You must also set up the Connectivity and Authentication settings. - Configured Verifone company account - Configured CMS Verifone Payment Gateway 1. In CMS, go to **Integrations** | **Payment Gateways**. 2. Edit the **VerifonePSDK Payment Gateway**. 3. Go to **Pay By Link Configuration** and configure these required fields. - Organization ID: Enter the merchant organization ID, which is unique for each store. This value can be found in your Verifone portal by going to "Administration > Organization Company and Sites". Select the company or organization site from the table list and copy the "Organization ID". - Pay By Link Base URL: Enter the base URL used to construct the Pay by Link URL for making Verifone API requests. See [Verifone Getting Started](https://verifone.cloud/docs/online-payments/getting-started). - Pay By Link Expiration in Hour: Enter the expiration time for created checkout links. The minimum is one hour and the maximum is 1,680 hours. - Token Scope ID: Enter the token scope ID to be used to tokenize card details. This value can be found in your Verifone portal by going to "Administration > Organization Company and Sites". Select the company or organization site from a table list and copy the "Token Scope". Note, this value can only be found if an admin user is logged in. - Credit Card Payment Contract ID: Enter the credit card payment contract ID to be sent in API request for card configuration. This value can be found in your Verifone portal by going to "Administration > Payment Provider Contracts". Edit a contract and go to "Payment Provider Contract ID value". - Gift Card Payment Contract ID: Enter the gift card payment contract ID to be sent in API request for card configuration. This value can be found in your Verifone portal by going to "Administration > Payment Provider Contracts". Edit a contract and go to "Payment Provider Contract ID value". - 3-D Secure Contract ID: Enter the 3-D Secure Contract ID, which is needed to secure payments in European countries where it is mandated. This field is optional for all other regions. This value can be found in your Verifone portal by going to "Administration > 3DS Contracts". Select the company or organization site from the table list and copy the "3-D Secure Contract ID". - Google Pay: If enabled, Google Pay can be used for PBL. - Apple Pay: If enabled, Apple Pay can be used for PBL. 4. Go to **Connectivity and Authentication** and configure these required fields: - User ID: Enter user ID to be used in API request for authentication. This user ID will be the admin of the merchant site organization for which pay by links will be created. This value can be found in your Verifone portal, click on API Keys under Profile and click on the first four letters of the API Key from the list. Copy the User ID. - API Key: API key will be used in API request for authentication and will be created from the user ID in Verifone portal. This value can be found when creating a new API key. It is recommended to copy and save the key as closing the dialogue after creating the key doesn't fully show the key again. API key has an expiration date and must be renewed on the Verifone portal. Users will receive email notifications from Verifone when the API key is about to expire. After configuring a Verifone gateway, set up notifications via Verifone so that Point of Sale can receive authorization and sale approval/decline updates. This enables Point of Sale to update the status of pending remote pay by link transactions, which are initially in a pending state by default. To learn how to set up the notifications, see [Configuring Notifications for Verifone](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configuring_notifications_verifone.htm&release=264.0.0&type=5 "Use Verifone Central Notifications in Point of Sale to receive transaction status updates and automate business processes, such as order management and report downloads."). # Configure a Promotion Create a promotion for your B2B store by adding segments, discounts, qualifiers, and coupons. Customize each element to target specific customer groups, maximize engagement, and boost sales. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Configure a Promotion for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_guided_workflow.htm&release=264.0.0&type=5)** Use the guided workflow to walk you through creating a promotion, including setting up discounts, qualifiers, and coupons. Choose from prebuilt templates to get started, or use Einstein to generate a promotion. - **[Edit a Promotion for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_promotion_record.htm&release=264.0.0&type=5)** Manage promotions by configuring a promotion record. You can edit a promotion’s details, such as the discount type, qualifying conditions, and duration, in the promotion record. # Configure a Promotion for a B2B Store Use the guided workflow to walk you through creating a promotion, including setting up discounts, qualifiers, and coupons. Choose from prebuilt templates to get started, or use Einstein to generate a promotion. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Create a Promotion Using the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_template.htm&release=264.0.0&type=5)** Draft a promotion with products and categories from your B2B store. - **[Create a Promotion Using the Guided Workflow with Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_smart.htm&release=264.0.0&type=5)** Draft a promotion for your B2B store with just a few clicks by using Einstein and Commerce data. Quickly create basic and advanced promotions using natural language instructions and generative AI. - **[Einstein Prompts for Creating Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_prompts_for_promotions_smart.htm&release=264.0.0&type=5)** When creating promotions with Einstein, use natural language text to describe the promotion. - **[Considerations for Einstein Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_smart_considerations.htm&release=264.0.0&type=5)** To create Einstein Promotions with Einstein Generative AI, consider supported functionality, usage, limitations and allowances, limits, and other issues. - **[Define a Discount for a B2B Store from Within the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_discount_workflow.htm&release=264.0.0&type=5)** Set a target type and an adjustment type, and specify the amount to discount. - **[Choose What Qualifies for a Promotion for a B2B Store from Within the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_qualifier_workflow.htm&release=264.0.0&type=5)** Use a qualifier to set specific requirements for a discount to be added to a promotion. For example, you can require that customers spend a minimum amount to qualify for a percentage discount on a particular product. - **[Create a Coupon for a B2B Store from Within the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_coupon_workflow.htm&release=264.0.0&type=5)** Create coupons that customers can redeem. The coupon has the same discount and qualifier rules as the promotion that it’s associated with. # Configure Access to the Console App Provide access to the console app for a permission set. 1. From Setup, in the Quick Find box, search for and select **Permission Sets**. 2. To create a permission set, click **New**. To add permissions to an existing set, select it. 3. If you’re creating a permission set: 1. Enter a unique label. We recommend OM Console. 2. Deselect **Session Activation Required**. 3. For License, select **None**. 4. Click **Save**. 4. In the Apps section, click **Assigned Apps**. 5. Click **Edit**. 6. For Available Apps, select **Order Management (standard\_\_OMConsole)**, and then click **Add**. 7. Click **Save**. 8. Configure the permission set to access Account records. 1. Click **Permission Set Overview**. 2. In the Apps section, click **Object Settings**. 3. Select **Accounts**. 4. Click **Edit**. 5. If you’re using person accounts to represent shoppers, in the Account: Record Type Assignments section, select **Assigned Record Types** all the record types. 6. If your org restricts sharing for Account records, in the Object Permissions section, enable **View All Records**. To check whether sharing is restricted for account records, from Setup, in the Quick Find box, enter Sharing Settings, and then select **Sharing Settings**. 7. Save the changes. 9. Repeat the process for each permission set that you want to provide console app access to. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Configure Add-On Products in the POS App Configure and implement add-on products on the POS app. Add-ons are specific to a product in the cart. For example, a warranty for jewelry and furniture or an embroidery charge (SKU) linked to an item to be monogrammed are add-ons. Add-ons appear on the product details page (PDP) with an option to add them to the cart. You can also control whether add-ons are eligible for refunds during the return process. Prerequisites: - Modern POS App Build: 6.4.2 or later - Platform Support: iPhone & iPad - Offline Support: No - Files: Product Feed configured with add-on products ## Set Up the Product Feed Configure add-on products through the [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters."). 1. In the Product Feed, create an add-on product. In the [example CSV file](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_add_on_products_configure.htm&release=264.0.0&type=5), add-on items with ID ModernHome1 and ModernHome2 are in rows 45 through 46. 2. For each product that can have an add-on, create a column to list the product IDs for the add-ons. In the sample file, ModernHome1 lists as an add-on under the column addOnSKU for products MD300000, MD299999, MD300001, and MD300002. Use a pipe (|) delimiter if a product has multiple add-ons. For example, ModernHome1|ModernHome2 lists as add-ons for products MD2000, MD100000, and MD100001. 3. Upload the Product Feed [manually](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_manual_run.htm&release=264.0.0&type=5 "Sometimes you need to run a data feed right away. You can manually run data feeds in Point of Sale to update your data immediately, rather than waiting for the next scheduled run. Implement these steps when you need the most current data.") or [schedule](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule.") it. 4. After the Product Feed successfully uploads, configure Field Mappings in CMS by going to **Feeds** | **Field mappings** | **Products**. 5. Under Source Field, look for the column that lists all the add-ons and map to any available custom string under Target Fields. For example, CustomString10. 6. Save your changes. ![Map add-ons to custom strings in the product feed.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_product_feed_mapping.png) ## Create the PDP Layout Show add-ons on the POS app by configuring a PDP layout. 1. In CMS, go to **Layouts** | **Layout Templates** | **PDP**. 2. Create a new PDPV2 or edit an existing one. 3. Edit a cell in the layout, and on the toolbar menu to the right, select **PDP Components** | **Add On SKU**. ![Configure add-ons on the PDP layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_pdp_layout.png) 4. On the window that appears, configure add-on items. - Selection Behavior determines how to select add-ons on the app. Single selection limits you to one add-on at a time, while multiple selection enables selecting multiple add-ons on the POS app. - More Details Icon / Field provides more details on the add-on by customizing an information icon. Create a column for more details for the add-on and map the column to a custom string field on the Field Mappings. ## Set Up the PDP Mapping Configure the PDP Mappings to show the appropriate PDP layout for products with add-ons. 1. In CMS, go to **Apps** | **All**. 2. Edit the app configuration that you want to apply the PDP layout with add-ons. 3. Go to **UI** | **PDP Layouts**. 4. Select the pencil icon to edit. 5. Under Product Attribute Rules, select **+Add Rule**. 6. Under Show this PDP Layout, select the PDP layout that you created. 7. Under When Product Attribute, select the custom string Target Field that you mapped in the product field mappings. For example CustomString10. 8. Under Contains Value, enter ^(\\s|\\S)(\\S)+(\\s|\\S)$. This regex pattern validates strings that start and end with any character and contain at least one nonwhitespace character in between. This pattern makes sure that the appropriate PDP layout appears on the POS app for products that have add-ons configured in the Product Feed. You see the layout only for products with configured add-ons. ![Configure the PDP mappings to show the PDP layout for products with add-ons.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_pdp_mappings.png) 9. Set the mapping and save your changes. ### Configure a Recommendation Engine Configure a Recommendation Engine for add-ons on the POS app. The engine shows product recommendations based on other products that are often purchased together. 1. In CMS, go to **Integrations** | **Recommendations Configurations**. 2. Select **Create**. 3. Configure these fields: 1. Under Type, select ADD\_ON. 2. Under Provider, select PRODUCT\_FEED. 3. Under Lookup Field, enter the CustomString Target Field that you mapped in the product field mappings. For example, CustomString10. 4. (Optional) Turn on **Auto Add-On** to preselect add-on products on the product detail page. 5. Save your changes. ## Configure Add-On Refundability Optionally configure the refundability of add-ons. By default, the system doesn’t refund add-ons during the return process. 1. In CMS, go to **Store Management** | **Return Policy Configuration**. 2. Add or edit an existing poilcy. 3. Under General Settings, turn on **Allow Returns for Add-on Products**. 4. Save your changes. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Example file: [productFeedWithAddonsNumbers.csv](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/productFeedWithAddonsNumbers.csv) ## Add-On Products in the POS App Reporting See reporting information on add-on products on the POS App. ### Receipts Add-ons are printed on the receipt and are listed under the main product. ### Transaction Lots (TLogs) Add-ons are recorded in the [TLogs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog.htm&language=en_US) with the main product recorded with the attribute OrderItemID. Add-ons are recorded with both the OrderItemID and ParentOrderItemID attributes, establishing a linkage between the main product and its associated add-ons. - Order Item ID: Unique identifier for each item - ParentOrderItemID: Links add-ons to their corresponding main product using the OrderItemID of the main product (or NULL for main products) In the table, Row #1, with OrderItemID = 1 and ParentOrderItemID = NULL, represents the main product, which is a watch. Row #2, with OrderItemID = 2 and ParentOrderItemID = 1, represents the warranty for the watch. This establishes a linkage between the main product (watch) and its associated add-on (warranty). | Row | orderitemid\` | parentorderitemid | item | | --- | --- | --- | --- | | #1 | 1 | NULL (wonʼt show in TLogs) | Watch (main product) | | #2 | 2 | 1 | Warranty for watch (add-on) | ## Add-On Products in the POS App Considerations See information on add-on products on the POS App. ### Product Details If you select a product on the PDP, and if you configured the add-ons in the Product Feed, the app shows the add-on section with the add-on's product title, price, and a toggle to add it to the cart along with the original item. ![See the add-ons associated with a product.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_product_details.png) ### Cart Add-ons inherit the fulfillment group, notes, and attributions of the main product. If the main product is deleted, add-ons are automatically removed from the cart. However, deleting an add-on only removes the selected add-on and not the main product. ![Add-ons are associated with a main product in the cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_cart.png) ### Product Forms If the main product or any add-ons are configured with a [Product Form](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_product_forms.htm&release=264.0.0&type=5 "The Point of Sale product forms are designed to link forms with specific products in the POS app, allowing merchants to obtain product-specific details before a sale. Additionally, these forms can be applied to add-on products like insurance and protection plans."), the checkout process can't be completed until you fill out all associated forms. ### Saved Cart / Quotes / Order History You can see add-ons on the relevant app screens if the cart is suspended, if a quote is created, and after completing checkout. ### Returns If you enable **Allow Returns for Add-on Products**, add-ons are listed as individual items on the Returns & Exchanges screen, and each item can be returned using a toggle. If you don’t allow returns for add-on products, add-ons are listed, but they can't be refunded. ![See the Allow Returns for Add-on Products toggle.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_allow_returns.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important If you disable **Allow Returns for Add-on Products** at the time of purchase but enable it after the purchase, add-ons purchased won't be eligible for return. Toggle Enabled: ![See Return this product enabled on the Returns & Exchanges screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_toggle_enabled.png) Toggle Disabled: ![See Return this product disabled on the Returns & Exchanges screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_toggle_disabled.png) ### Known Issues & Restrictions Depending on the Allow Returns for Add-on Products setting, add-ons can be eligible for returns, but they can't be exchanged. Additionally, if the main product is exchanged, its add-on will no longer be linked to the original main product. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Product Feed configured with add-on products: [productFeedWithAddonsNumbers.csv](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/productFeedWithAddonsNumbers.csv) # Configure Advanced Pricing for Commerce in Your B2B Store Configure Advanced Pricing powered by Revenue Cloud in order to use several Commerce features, including subscriptions and product configurator. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Advanced pricing configuration involves these steps: 1. Determine whether your org uses a pricing recipe - Enable Advanced Pricing for automatic recipe setup - Add pricing elements to an existing pricing recipe 2. Sync pricing data 3. Configure pricing procedure 4. Refresh B2B store pricing decision tables ## Determine Whether Your Org Uses a Pricing Recipe Before you begin, check whether your org uses a pricing recipe. 1. From Setup, in the Quick Find box, enter Pricing Recipes, and then select **Pricing Recipes**. 2. Check the recipes list to see if a pricing recipe is available. 3. Choose your setup path. - If your org doesn't have a pricing recipe, see _[Enable Advanced Pricing for Automatic Recipe Setup](#enable_advanced_pricing_automatic "Follow these steps if your org doesn't have a pricing recipe. Salesforce automatically enables the pricing recipe, decision tables, and pricing procedure template for you.")_. - If your org has a pricing recipe, see _[Add Pricing Elements to An Existing Pricing Recipe](#add_pricing_elements_existing_recipe "Follow these steps if your org already has a pricing recipe. You can either merge the pricing elements from the Commerce default pricing recipe with your existing pricing recipe or use the Commerce default pricing recipe.")_. ## Enable Advanced Pricing for Automatic Recipe Setup Follow these steps if your org doesn't have a pricing recipe. Salesforce automatically enables the pricing recipe, decision tables, and pricing procedure template for you. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**. 3. Go to the Pricing tab. 4. Under Advanced Pricing Setup, turn on **Advanced Pricing for Commerce Powered by Revenue Cloud**. If you don't see the setting enabled, refresh your browser. This setup can take a few minutes to complete. After you enable Advanced Pricing for Commerce Powered by Revenue Cloud, the Commerce Default Pricing Procedure is added and activated in your org. 5. Under Subscription Management, turn on **Subscriptions**. If you don't see the setting enabled, refresh your browser. 6. Proceed to [Sync Pricing Data](#sync_pricing_data "Sync your pricing data to provide the most recent information to decision tables mapped to a pricing recipe."). ## Add Pricing Elements to an Existing Pricing Recipe Follow these steps if your org already has a pricing recipe. You can either merge the pricing elements from the Commerce default pricing recipe with your existing pricing recipe or use the Commerce default pricing recipe. 1. [Modify price adjustment matrices](https://help.salesforce.com/s/articleView?id=ind.insurance_admin_price_adjustment_matrix.htm&language=en_US). Map each decision table to the pricing components where that table is used. For a list of Commerce decision tables and their corresponding pricing component types, see [Refresh B2B Store Pricing Decision Tables](https://help.salesforce.com/s/articleView?id=commerce.comm_refresh_your_b2b_or_d2c_store_pricing_decision_table.htm&release=264.0.0&type=5 "To ensure accurate price calculations, map your price records to the correct pricing logic. Use the table to identify which Decision Table handles each pricing component type."). ![Screenshot of the Add Price Adjustment Matrix page with the pricing component type selected for each lookup table](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_advancedpricing_priceadjustmentmatrix.png) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_tip.png) Tip If your org has multiple pricing recipes, add custom decision table mappings to the active recipe. Pricing procedures can only access custom mappings from the active recipe. Custom mappings added to inactive recipes are ignored. For more information, see [Considerations for Working with Multiple Pricing Recipes](https://help.salesforce.com/s/articleView?id=commerce.comm_multiple_pricing_recipes_considerations.htm&release=264.0.0&type=5 "If your org uses both Revenue Cloud and B2B Commerce, you likely have a Revenue Cloud default pricing recipe and a B2B Commerce default recipe. Note these considerations when managing multiple pricing recipes:"). 2. If the pricing procedure isn't active, activate it. See [Simulate and Activate Your Pricing Procedure](https://help.salesforce.com/s/articleView?id=ind.pricing_simulate_activate_pricing_procedure.htm&language=en_US). 3. From your store, select **Settings** | **Store**. 4. Go to the Pricing tab. 5. Under Advanced Pricing Setup, make sure **Advanced Pricing for Commerce Powered by Revenue Cloud** is turned on. 6. Under Subscription Management, turn on **Subscriptions**. If you don't see the setting enabled, refresh your browser. 7. Proceed to [Sync Pricing Data](#sync_pricing_data "Sync your pricing data to provide the most recent information to decision tables mapped to a pricing recipe."). ## Sync Pricing Data Sync your pricing data to provide the most recent information to decision tables mapped to a pricing recipe. 1. From Setup, in the Quick Find box, search for and select **Salesforce Pricing Setup**. 2. In the Select a Pricing Recipe section, select **CommerceDefaultRecipe**. 3. Sync pricing data. 4. Proceed to [Configure Pricing Procedure](#configure_pricing_procedure "Configure a pricing procedure for your store to calculate prices."). ## Configure Pricing Procedure Configure a pricing procedure for your store to calculate prices. 1. From the App Launcher, find and select **Pricing Procedures** and check if a procedure exists. Depending on your setup, either clone the default template or create a new version of your existing procedure. - If you don't have a pricing procedure, clone the default template: 1. From the App Launcher, find and select **Expression Set Templates**. 2. Select **Commerce Default Pricing Procedure**. 3. If your org supports multiple currencies, under Pricing Setting, map the Currency field to the `CurrencyIsoCode` context tag. 4. Save the template as a new pricing procedure. Assign a rank, and mark the pricing procedure as active. Salesforce recommends that you don't change the default name of the pricing procedure. - If you have a pricing procedure, create a new version: 1. From the App Launcher, find and select **Pricing Procedures**. 2. Select your existing pricing procedure. 3. Click **Save As** and select **New Pricing Procedure Version**. 4. Enter a new version number and save. 5. If your org supports multiple currencies, under Pricing Setting, map the Currency field with the `CurrencyIsoCode` context tag. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note To turn on multicurrency in your org that has active pricing procedures linked to predefined Salesforce Pricing lookup tables, deactivate your pricing procedure, turn on multicurrency, and then activate your pricing procedure. 6. In Expression Set Properties, assign a rank, and then activate the pricing procedure. Salesforce recommends that you don't change the default name of the pricing procedure. 2. Verify that your pricing procedure is active in the org and in your store. 1. From the App Launcher, find and select **Pricing Procedures**. Make sure your new or modified pricing procedure is displayed. 2. In your store, go to **Website Design**, and then click **Experience Builder**. Go to the Product page and refresh it to verify that the correct price is displayed. 3. Proceed to [Refresh B2B Store Pricing Decision Tables](https://help.salesforce.com/s/articleView?id=commerce.comm_refresh_your_b2b_or_d2c_store_pricing_decision_table.htm&release=264.0.0&type=5 "To ensure accurate price calculations, map your price records to the correct pricing logic. Use the table to identify which Decision Table handles each pricing component type."). #### See Also - [Manage Pricing Recipes in Revenue Cloud](https://help.salesforce.com/s/articleView?id=ind.pricing_pricing_recipes.htm&language=en_US) - [Clone and Select a Pricing Procedure](https://help.salesforce.com/s/articleView?id=ind.pricing_set_default_pricing_procedure.htm&language=en_US) - [Support Multiple Currencies in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_currency_considerations.htm&language=en_US) - [Simulate and Activate Your Pricing Procedure](https://help.salesforce.com/s/articleView?id=ind.pricing_simulate_activate_pricing_procedure.htm&language=en_US) # Configure Advanced Shipping Notice (ASN) Receiving Set up accurate inventory receiving, check merchandise against prearrival notifications, and set reason codes for inventory mismatches in Point of Sale. The Advanced Shipping Notice (ASN) Receivings feature is part of Point of Sale's [Inventory Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses."). ASN is a notification received by a store before products arrive at the store from a warehouse. This means that the system contains information about the merchandise before it physically arrives. ASNs help receiving stores to verify the successful arrival of all delivered merchandise. The receiving process can be completed by scanning barcodes, labels, pallets, cartons, or UPC tags. ## Prerequisites - Modern POS App Build: 5.5.2 or later - [Supported POS Device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - Offline Support: no - Files: up-to-date [ASN Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs.htm&release=264.0.0&type=5 "Use data feeds to import and update critical product, inventory, pricing, and store data in Point of Sale. Data feeds include detailed specifications and examples, such as ASN, category, notification, and POS register feeds. Note that the POS register feed only updates existing registers and does not create new ones. You can also manage product bundles, inventory, promotions, store associates, and tax rates using data feeds. With data feeds, you can ensure your Point of Sale data is accurate and up-to-date, which leads to improved sales and customer satisfaction.") ## Configuring CMS Settings for ASN Receiving Field-map an up-to-date ASN feed, configure reason codes, and establish a deep link for access within the POS app. ### ASN Field Mappings 1. Configure ASN Feed Field Mapping by going to **Feeds > Field Mappings > Advanced Shipping Notice (ASN)**. 2. Configure and schedule ASN Feed by going to **Feeds > Scheduled Upload**. ![Field Mappings configured for Advanced Shipping Notices in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_asn_field_mappings.png) ### Reason Codes [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.") are required for inventory mismatches. 1. In CMS, go to **Store Management > Reason Codes**. 2. Select **Shipment Inventory Mismatch** to configure reason codes related to inventory mismatches. 3. Save your changes. ![Reason Codes configured in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_reason_codes.png) ### Configure a Deep Link via Layout A deep link is needed to access ASN Receivings in the POS app. 1. Create a layout or use an existing one. 2. Select a cell and select **Deep Link** in the toolbar menu on the right. 3. Go to **Store Associate > Inventory Management**. 4. Select **Receive Shipments from Warehouse / Other Stores**. 5. Set and save your changes.![Deep links configured for ASNs in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_config_deep_links_asn.png) ## Manage ASN Receiving in the POS App Use the Point of Sale (POS) app to receive real-time updates on item quantities, verify accurate receiving and inventory management, and reduce receiving errors. Tap on the **Receive Shipments from Warehouse / Other Stores** deep link, you’ll receive an interstitial to scan the pallet ID, carton ID, or tracking number.![A window in the POS app that](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_asn_pos_tracking_number.png) An error message appears if the package is unidentified or has been received. The Container ID is a general warning for a container, pallet, or carton that's been scanned but not found.![An error message in the POS app that state no shipments for the container ID were found.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_app_container_id_error.png) ### Receivings for App Versions before 10.1.1 For app versions less than 10.1.1, see the receiving instructions next. For app versions 10.1.1 or greater, refer to [Receivings for App Versions 10.1.1 or Greater](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_asn_receiving.htm&release=264.0.0&type=5). After identifying, view the list of cartons or carton details, including **Pallet Number**, **ASN Number**, **Shipped from location**, and status (**New, Received, or Partial**). - **New** - Pallet / Carton was delivered to the store - **Received** - Pallet / Carton - **Partial** - Pallet / Carton is partially received as some cartons are yet to be received. ![An ASN report that shows cartons in Partial, Received, or Paused status.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_receving_app_old.png) Tap one of the cartons to see details like products to scan, carton ID, status, and more. You can also tap **Receive All** to receive all the cartons without scanning (item-level receiving will be turned off).![An ASN report in the POS app showing shipments in a New status.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_receivings_new.png) ### Receivings for App Versions 10.1.1 or Greater For app versions 10.1.1 or greater, after a carton ID has been scanned, you can tap **Receive All** to receive all the cartons without scanning (item-level receiving shall be turned off). ### Scanning Products For each product listed, you'll see the total quantity of items, along with the quantity scanned and the remaining quantity to scan. As you scan, these quantities update in real time to reflect the current status for each product.![A list of items in a carton received by the merchant, showing in the POS app app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_asn_scanning.png) ## Manage Specialized Receiving Decide how to receive shipments, considering logistics, merchandise specifics, and the store's setup. Set these methods in Point of Sale CMS ### Receiving by Pallete Receiving by pallet is best for large shipments. You scan a pallet ID to get the whole contents. This makes it perfect for receiving large amounts of items without having to scan each carton or item individually. ### Receiving by Carton Receiving by carton is suitable for smaller shipments or for breaking down larger ones. You can use the unique carton tracking label to receive all items within the carton simultaneously. This method is used if you have carton information and don't want to scan individual items. ### Individual Receivings In some cases, scanning individual items can be necessary. The CMS flag "**Enforce Item Level Inventory Receiving**" can enforce this mode, requiring the scanning of each item in the palette or carton. In CMS, go to **Store Management > Store Settings > Inventory**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This removes the option to "Recieve All" on the app. ### Case Pack Receivings For app builds 8.9.1 or greater, case pack receiving involves scanning the case pack ID, automatically populating the quantity based on the contents. After it’s successfully scanned, the quantity count will automatically increase and a new field, **Cases scanned**, increases by one. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note "**CasePackID**" and "**CasePackQuantity**" fields are listed in the Product Feed and Field Mapped. ![A Case Pack Receiving-set receiving option in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_case_pack_receiving.png) ### Serialized Items Handling If you have serialized products, it is recommended to turn on the flag "**Enable Serialized Inventory**" for tracking and managing these items. Any action or transaction, including receiving, will require scanning or entering the product's serial number. Serialized products are identified by the 'SerialNumberRequired' attribute, which can be configured via Product Feed. If this attribute is set to **True** and the flag is enabled, users are prompted to scan the product's serial number. In CMS, go to **Store Management > Store Settings > OMS** and turn on **Enable Enable Serialized Inventory**. If processing an ASN receipt for serialized products, scan each item to capture its serial number, which is listed after the product description. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If scanning a barcode with serialized inventory enabled, our system prioritizes checking for serial numbers that match the scanned value. If no corresponding serial numbers are found, it then searches for product IDs. ![The POS app showing inventory filtered by Serialized Item Receiving.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_serialized_items_handling.png) If using the device’s camera, the prompt to scan the product's serial number will appear at the top of the screen as shown in the screenshot. Scan again to add the product for the transfer. ![The device's camera used to scan a serialized item when it's received.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_scan_serialized_items.png) However, if you're using an external scanner, a serial number entry window appears, allowing you to scan or manually enter the serial number. The POS app shows an error message if an incorrect serial number is entered or scanned. It also alerts you if a serial number is scanned twice.![An error message in the device's camera that the scanned product isn't in the received carton.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_no_scanned_product.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Case pack IDs and serialized inventory can't be used together. Their unique serial numbers individually track serialized products, preventing them from being grouped into case packs for collective scanning. Manage each serialized item independently to maintain accurate inventory records.![An error message in the POS app notifying you that you have to scan each serialized item in the carton.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_scan_serialized_items_individually.png) After a serialized product is successfully scanned, a checkmark appears to the left of it. If there are discrepancies due to overscanning or underscanning, tap **Rescan** to restart the scanning process for the product. After the receiving process is complete, the details are recorded in an event file. Serial numbers for each product are listed using a pipe delimiter. After the receiving process is complete, details can be exported through event exports by mapping the field **ASN\_SerialNumbers**. Serial numbers for each product will be listed using a pipe delimiter. ![In the POS app, serialized numbers listed using a pipe delimiter.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_pipe_delimited_serial_numbers.png) ### Receiving Items Not Included in the Original ASN The POS app offers the ability to receive items that weren't originally included in the ASN. The POS app only gets items from the ASN. You can either get more or less than the items that are in the ASN. However, to get items that weren't first listed in the ASN, you can set a flag in the CMS to turn on manual receipt of unspecified items. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important To turn on manual receipt of items, turn off serialized inventory. This can be done by navigating to **Store Management > Store Settings > OMS > Advanced > hasSerializedInventory**. To permit manual receipt of items not included in the ASN: In CMS, go to**Store Management > Store Settings > Inventory** and turn on **Allow ASN Manual Receive Items**. After the setting is turned on, the POS app checks if the scanned item is present in the product database. If it's not found, the app provides the user with the option to manually receive the item. ![A message in the POS app asking you if you still want to receive this item even though it's not listed in the carton.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_item_not_in_carton.png) If bulk receiving (**hasBulkQuantityInventory**) is enabled, users can enter the quantity for the nonlisted item after scanning it one time. Bulk receiving doesn't apply to items originally listed in ASNs. ![A message in the POS app asking you if you still want to receive an item that you scanned that's not listed in the carton, and enter a quantity.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bulk_receiving_asns.png) The manually received items are displayed in a dedicated section, and if necessary, you can delete them. Additionally, information about unlisted items is recorded in an event file along with their product details. ![A manually received item shown in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_unlisted_items_asns.png) ### Pause and Resume For app builds 8.10.1 or greater, ASN receiving can be paused and resumed at any point during the receiving process. If you've scanned a certain number of items before pausing, the app saves the scanned quantity. This makes sure that progress isn't lost, and that the received items are recorded. ![A window in the POS app that asks if you want to receive the carton or pause receiving.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_pause_receive_asns.png) Any items flagged with discrepancies and associated reason codes can also be saved during the paused session. If paused, the status of the ASN transitions is **Paused**. During this state, the app restricts the scanning or receiving of additional items until the session is resumed. To resume the ASN session, you can either scan or manually type the pallet ID that was paused. Alternatively, you can access the ASN report and select the specific carton that was paused, allowing them to resume directly from there. It's important to note that the system doesn't currently support recording pause events in the [Electric Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud."). ![The POS app showing an option to Resume Receiving at the bottom of the screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_resume_receiving.png) ## Manage ASN Quantity Discrepancies To complete the receiving process, choose to receive only the scanned items or all expected items, and track inventory movement. ### Rescanning Items If you make a scanning error (overscanning or underscanning), tap Rescan to clear the previous scan and rescan the item. ![An item in the POS app with the Rescan option.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rescan.png) ### Reason Codes When the scanned quantity differs from the expected quantity (underscanning or overscanning), enter a reason code. ![A reason code in the POS app for a receiving discrepancy.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_reason_codes_discrepancy.png) ### Manager Approval If you configure the ASN Discrepancy Approval policy, the receiving associate enters a discrepancy reason for each flagged product. The POS blocks further workflow and requires a manager to authenticate. The manager reviews a discrepancy resolution matrix showing the original ship quantity, scanned quantity, and reason for each discrepant item. ![The discrepancy resolution matrix in the POS app showing ship quantity, scanned quantity, and reason for each item.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_approval_discrepancy.png) The manager resolves each discrepancy using one of two methods: - **Audit Flow**: Manually recount or rescan items and apply a new audit reason code. - **Direct Approval**: Accept the associate's variance data without recounting. ![Recount window in the POS app for resolving receiving discrepancies.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_recount_discrepancy.png) After the manager resolves all discrepancies, they tap Approve Receiving to finalize the process. To configure approval policies, see [Approval Policy Features](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_approval_policy_features.htm&release=264.0.0&type=5 "Configure approval policies for returns, exchanges, ASN receiving discrepancies, and other point-of-sale transactions in Point of Sale CMS."). ### Event File Logging An event file logs details of quantity discrepancies, including expected and actual quantities and reason code numbers. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_exporting_inventory.htm&release=264.0.0&type=5 "Create an inventory export event in the CMS to export inventory data from the Retail Cloud Backend via Secure File Transfer Protocol (SFTP).") ### Completing Receiving After you scan all items, choose from two options to finalize the receiving process: - Receive Scanned Items: Receives all scanned items shown on the screen. Enter a reason code for mismatched quantities. - Receive All: Receives the full carton, including all expected quantities for every product, even if you've scanned individual items. Don't scan each item separately. ![A window in the POS app with options to pause or complete inventory receiving.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_complete_receiving.png) After you select an option, the app returns to the list of cartons screen. Proceed to receive the next carton if it's available. ![A message in the POS app that the carton was received successfully.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_received_carton_successfully.png) ### Inventory Movement For incoming ASNs, the In Transit inventory bucket increases. After you receive inventory, both On-Hand and Available increase, while In Transit decreases. ## View ASN Reports and Known Issues See all available ASNs, view details of the inventory, and understand ASN issues. ### ASN Reports To view a list of all available ASNs, whether they are new, completed, or received, Retail Cloud offers the ASN Report. The report is accessible in the CMS and in the POS app (if a deep link is configured). You can also view details of the received inventory or initiate the receiving process from this report. ### Known Issues & Restrictions - For app versions earlier than 9.8.1, while receiving, failure to save your progress can result in the loss of all work, including scanned items, if you tap the merchant logo in the POS app. However, for versions 9.8.1 and later, users are provided with the option to save before exiting. - If a transfer includes a serialized item, users can't select "**Receive All**" and shall individually scan each product in the transfer. Even after scanning the serialized items, the "**Receive All**" action remains blocked for the remaining items. - Tracking numbers are supported only at the item level for ASNs, and multiple tracking numbers aren’t supported per ASN. - We only support tracking numbers at the item level for ASN, and the tracking number is the same for all items. - Point of Sale doesn't apply any logic to check for duplicates if creating an ASN in the CMS via API or feed. ## View ASN Reporting Frequently Asked Questions (FAQs) Explore frequently asked questions regarding Advanced Shipment Notifications (ASN) reporting. ### What happens if a shipment arrives at a store and there's an issue with the ASN, and the POS doesn't have an ASN to receive against? You can either triage the ASN issue and resend it, or use the blind receiving flow to receive the inventory as quickly as possible. ### What happens if, after blind receiving, the ASN flows down correctly? How does the store clear the ASN? Can an ASN be recalled? Because ASNs can't be canceled, if the ASN is released, there are two ways to clear it and achieve a net inventory of zero: - Bring up each carton, don't scan any items, and select "Receive Scanned Qty." You will need to select a reason code for each item, but the items will be received with a quantity of "0." This will show the ASN as received with a "0" quantity and clear the in-transit status. - Receive the ASN in full and then adjust the items out. ### Can Point of Sale's ASN feature receive noninventoried items? Yes, if the SKU is included in the ASN, it'll be validated against the product file. If it passes validation, it'll be added to the ASN and can be received in-store. For Blind Receiving, the system will validate the SKU, and even if it’s a nonmerchandise SKU, you can still receive it. # Configure Adyen and CMS for Point of Sale Returns Configure Adyen and CMS settings so store associates can process returns in the Retail Cloud POS app. To avoid multiple refunds for the same customer, set a delay of 10 minutes for unreferenced refunds in your Adyen merchant account, and allow offline credit card refunds. Also, enable returns in the Returns Policies configuration and store settings within CMS. ## Configure Adyen to Support Refunds Contact your Adyen POS Support Team to set up these configurations. 1. Allow unreferenced refunds. This setting is required to perform credit card refunds in offline mode. 2. Delay Refund Capture in Adyen. Set a delay of 10 minutes for refunds that aren’t referenced in your Adyen merchant account. This lets POS cancel the refund if the return order submission fails for some reason. This can be set by contacting the Adyen support team. This setting is critical to avoid multiple refunds made for the same customer in case of return order submission failure. 3. Set the maximum offline refund amount. ## Enable Returns in CMS You can configure returns in the Returns Policies configuration or store settings. These settings are linked, so enabling one automatically enables the other. 1. In CMS, go to **Store Management** | **Return Policy Configuration**. 2. Turn off **Block Returns (blockReturns)**. If this setting is left on, returns can’t be initiated on the POS app. 3. (Optional) In CMS, go to **Store Management** | **Store Settings** | **OMS**. 4. (Optional) Expand **Advanced**. 5. (Optional) Turn off **Block Returns (blockReturns)**. ## Configure Returns Deeplink The returns functionality and workflow are exposed in the POS app with a deeplink. The deeplink can be launched from a layout or from the hamburger menu. Returns and exchanges are controlled with App Config settings. See [Segment App Configs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_seg.htm&release=264.0.0&type=5 "POS offers deep customization through App Config Segmentation. This feature lets retailers tailor the POS experience based on device, personnel roles or associates, and store locations. This enhanced method simplifies configuration and provides granular control over the POS interface for different users and contexts."). 1. In CMS, go to **Store Associate** | **Returns and Exchanges**. 2. Select your desired workflow to allow returns only or allow returns and exchanges. 3. Got to **Modules** | **POS** and set the following App Config settings: - Return Order Search Page V2 UI (This flag has been deprecated as of April 2024) - Return Reasons (Ensure to set the non-deprecated reasons) - No items selected by default on refund screen (If you don’t want to auto-select all the items in the order for return) - Support Exchanges 4. Relaunch your POS app. Now that you've set the deeplink, you'll also need to configure and enable settings in the CMS. See [Returns Policy Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_returns_policy_configuration.htm&release=264.0.0&type=5 "The Point of Sale (POS) app lets store associates perform returns on purchased items based on configured policies."). # Configure an Einstein Next Best Action Component for a Commerce Reorder Portal After you set up a Commerce Reorder Portal, configure an Einstein Next Best Action component on the Order record page. Based on a recommendation from this component, a rep can invite a buyer to the portal. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Add the [Einstein Next Best Action component](https://help.salesforce.com/s/articleView?id=platform.nba_lab_cmp.htm&type=5&language=en_US) to the Order record page. 1. In the App Launcher, find and select **Orders**. 2. Open an Order record. 3. Click the Setup icon ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Edit Page**. 4. From the Components menu, drag the Einstein Next Best Action component onto the Order Record Page layout in the Activity sidebar. 5. Use the Order Recommend Reorder flow as Action Strategy input for the component. 6. Click **Save**. ![Order Record Page with Einstein Next Best Action component configured in Lighting App Builder.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_order_record_nba.png) 2. Enable any missing Field Level Security settings for Order.QuoteId, Order.ContractId, Order.CustomerAuthorizedBy, Quote.ContactId, and Contract.CustomerSignedId. See [Field Level Security](https://help.salesforce.com/s/articleView?id=platform.users_profiles_field_perms.htm&type=5&language=en_US). 3. Set External and Internal Organization-Wide Sharing Defaults to private for the Order Summary object. 4. Invite a buyer to a Commerce Reorder Portal using the Einstein Next Best Action component. 1. Open an Order record. 2. From the Einstein Next Best Action component, click **Invite to Reorder Portal**. 3. Follow the screen flow steps. #### See Also - [B2B Store Setup Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_store_setup_considerations.htm&release=264.0.0&type=5 "The Commerce Setup Assistant and the Store Setup Assistant work together to create a guided path for store creation. This path is simplified to get you up and selling as fast as possible. However, you can customize a store for your specific needs by configuring locales, languages, and currencies. If you haven’t configured these before creating your store, only the default options configured for your Salesforce org show. You can update these values after creating your store.") # Configure and Manage Adyen Payment Terminals Integrate the Ayden payment platform into the Point of Sale (POS) app. Acceppt payments globally, reuce fraud, and streamline reconciliation while providing a seamless checkout experience. - **[Donations with Adyen Giving](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_terminal_donations.htm&release=264.0.0&type=5)** Configure the Point of Sale (POS) app to capture information about donations made with Adyen terminals. Customize donation options, secure payment processing, fee coverage, comprehensive reporting, and integrate into existing systems. - **[Adyen Payment Methods](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_adyen_payment_methods.htm&release=264.0.0&type=5)** Integrate supported Adyen payment methods integrate with Point of Sale (POS), allowing your customers to use a variety of payment options. - **[Tap to Pay Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_tap_to_pay_overview.htm&release=264.0.0&type=5)** Accept contactless payments directly on an iPhone using the Point of Sale (POS) app. - **[Support Tipping on Adyen Terminals](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_tipping_adyen_terminals.htm&release=264.0.0&type=5)** Allow customers to provide tips during checkout using Adyen terminals in the Retail Cloud Point of Sale (POS) app, which enhances the payment experience. - **[Adyen Mail Order Telephone Order (MOTO)](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_adyen_moto.htm&release=264.0.0&type=5)** Process mail and telephone orders with the Point of Sale (POS) app and Adyen terminals. - **[Set the Adyen Terminal to Different Merchant Account](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_assign_ayden_different_acct.htm&release=264.0.0&type=5)** Reassign an Adyen terminal so that transactions are processed under the correct merchant account in Point of Sale. - **[Adyen - Buy Now Pay Later](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_adyen_buy_now_pay_later.htm&release=264.0.0&type=5)** Use Point of Sale (POS) app and Adyen terminals to accept Affirm payments, offering customers a Buy Now, Pay Later option. - **[Ayden QR Code Payments](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_qr_code_pay.htm&release=264.0.0&type=5)** Enable your customers to complete in-store payments quickly and securely with their preferred QR code wallet apps via Adyen. The Point of Sale (POS) app supports payments through AliPay and WeChat Pay. - **[Adyen Payment Terminal Onboarding and Pairing to POS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_connect_ayden_and_pos.htm&release=264.0.0&type=5)** Set up Adyen terminals to connect to the Modern POS and process payments. Connect your Adyen terminal to Wi-Fi, board the device, and then pair it with the POS app. - **[Ayden Payment Resources](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_payment_resources.htm&release=264.0.0&type=5)** Integrate Adyen payment resources with Point of Sale CMS to process point-of-sale transactions. Use either Adyen SDK or Terminal API configurations for terminals. - **[Adyen - Line Item Display](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_adyen_line_item_display.htm&release=264.0.0&type=5)** Display purchase details on the Adyen terminal before payment. Showing the cart summary on the payment terminal gives shoppers an overview of their purchase, including quantity, discounts, and taxes. - **[Adyen Terminal Discovery via Terminal Management API](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_term_manage_api.htm&release=264.0.0&type=5)** Turn on the terminal management APIs for your account and configure terminals with store associate-friendly names to take advantage of this feature. - **[Reassign Payment Terminals to a Different Store in Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_reassign_term_ayden.htm&release=264.0.0&type=5)** Reassign a payment terminal to a different store in the Retaio Cloud Point of Sale (POS) app. - **[Adyen Payment Gateway Information](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5)** You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale. - **[Configure Standalone Mode](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_standalone_mode.htm&release=264.0.0&type=5)** Configure Adyen terminals to accept payments via Point of Sale without a store associate Point of Sale (POS) app connection during an outage. - **[Dynamic Currency Conversion](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_dynamic_currency_conversion.htm&release=264.0.0&type=5)** Select the currency to use for completing credit card transactions, either the local currency or the card’s billing currency. Configure Dynamic Currency Conversion (DCC) keys in Point of Sale CMS to print on physical receipts. - **[Adyen - Enabling Beacons](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_enabling_beacons.htm&release=264.0.0&type=5)** Beacon functionality in Adyen Terminal allows it to broadcast its presence to nearby Bluetooth devices. We use beacons in the Adyen terminals to locate them from the Point of Sale Point of Sale (POS) app and connect them to the one to carry out the particular transaction. - **[LAN Setup for Adyen Card Reader and Star Printer](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_lan_setup.htm&release=264.0.0&type=5)** The Point of Sale platform supports fully wired LAN—ethernet-connected networking setups for the Modern Point of Sale system. - **[Processing Installment Payments for Mexico Retail Stores with Adyen Terminals](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_adyen_mexico_installments.htm&release=264.0.0&type=5)** If you have Point of Sale stores in Mexico, you can process installment payments through Adyen integrated terminals. Work with Adyen to install the necessary configurations and update your terminal to receive installment prompts during payment processing. Add a tag to your receipt layout to print installment details for shoppers. Review the limitations if your terminal uses the card acquisition flow and the necessary workarounds for debit card payments. - **[Turn on Card BIN Capture for Adyen Payment Terminals](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_adyen_enable_bin_capture.htm&release=264.0.0&type=5)** Capture richer payment data with extended Bank Identification Numbers (BIN) in reporting. Retain the first 6–8 (depending on the institution) digits of the card BIN in TLogs and transaction JSONs for payments done on Adyen portals. Turn on card BIN capture in your Adyen Customer Area. # Configure and Manage Barcode Scanners Setup barcode scanners to capture and enter data into the Point of Sale (POS) app. Improve data accuracy, save time, and increase productivity. - **[Zebra Scanner Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_zebra_scanner_support.htm&release=264.0.0&type=5)** Configure your wired or wireless Zebra scanners in the Point of Sale (POS) to make sure of accurate and efficient barcode scanning. - **[Socket Mobile Scanner Setup Guide](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_socket_mobile_scanner_guide.htm&release=264.0.0&type=5)** Integrate your Socket scanner with the Point of Sale (POS) app to streamline barcode scanning. Supported models connect via Bluetooth, enhancing the checkout process. - **[Datalogic Scanner Support in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_datalogic_scanner_support.htm&release=264.0.0&type=5)** The Datalogic Magellan 1500i is a corded barcode scanner that connects to a supported Epson printer's USB port. The USB port passes the scanned data to Point of Sale (POS). - **[Barcode Scanning with Device Camera in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_barcode_scanning_camera.htm&release=264.0.0&type=5)** Use barcode scanning in the Point of Sale (POS) app to quickly process sales and create a smooth, contactless experience. # Configure and Manage Cash Drawers Connect a supported cash drawer to the Point of Sale (POS) app to manage transactions and track cash flow. Streamline the checkout process and reuce errors. - **[APG 320 Cash Register Setup Guide](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_apg_320_setup.htm&release=264.0.0&type=5)** Integrate your APG 320 cash register with your receipt printer for ‌operations within the Point of Sale (POS) app. - **[APG IP Cash Drawer](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_setup_apg_ip_cash_drawer.htm&release=264.0.0&type=5)** Integrate Point of Sale with APG Cash NetPro cash drawers using an IP connection. - **[Set up Start Micronics CD3-1616 Cash Register](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_start_micronics_cd3_setup.htm&release=264.0.0&type=5)** Configure the Star Micronics CD3–1616 Cash Register to function with with your receipt printer in Point of Sale CMS. # Configure and Manage Elavon Payment Terminals Process customer payments securely and efficiently with Elavon Payments in the Retail Cloud Point of Sale (POS) app. Streamline transactions, automate billing processes, and enhance customer experiences through secure and seamless payment processing. - **[View Features Supported by Elavon](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_features_supported_elavon.htm&release=264.0.0&type=5)** Stay informed about transaction payment capture, offline support, and other key functionalities of Elavon features and how they interact with Point of Sale. - **[Set up and Troubleshoot Elavon Terminals](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_onboard_troubleshoot_elavon.htm&release=264.0.0&type=5)** Configure your Elavon terminal to work with Point of Sale for secure payment acceptance, whether in-store or online. - **[Configure Elavon Terminal for Payments](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_elavon_terminal_payments.htm&release=264.0.0&type=5)** Set up Elavon Terminals to use with the Point of Sale (POS) app. The Elavon card reader terminals can process payments using Ingenico Move 5000, Lane 7000, and Link 2500 Elavon card reader terminals. - **[View Virtual Receipts for Elavon Terminal Purchases](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_elavon_virtual_receipts.htm&release=264.0.0&type=5)** Show Point of Sale customers their cart summary on the Elavon payment terminal during checkout. By configuring an Elavon Payment Gateway, the terminal displays line item details, discounts, and taxes. # Configure and Manage Export Jobs Use export jobs to extract data from Point of Sale by using Secure File Transfer Protocol (SFTP). Configure and schedule these jobs in CMS to automate data extraction, and monitor their progress in the Export Logs for timely, efficient data retrieval. #### See Also - [_Salesforce Help:_ Manage Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage.htm&release=264.0.0&type=5 "Configure Point of Sale data feeds to manage and schedule the transfer of product, pricing, and inventory data. Managing feeds ensures accurate data synchronization between systems, such as exporting documents in CMS. You can manually run feeds, schedule them for automated updates, and implement multi-region feeds for global operations. You can also monitor feed pipelines and logs to identify and address any issues, and configure and manage export jobs for efficient data delivery.") ## Create and Schedule an Export Job 1. In CMS, go to **Feeds** | **Export Jobs**. 2. Click the + icon to create an export job. 3. Select the type of job. 4. Configure the rest of the fields:
FieldDescription
General
ActiveTurn on to run this export. Not applicable for jobs that run only when you trigger them, such as Product Catalog Export.
TitleEnter a descriptive title for this export.
Allow Instant Order ExportTurn on to run real-time order exports. This setting is available only for order exports.
Schedule
ScheduleNot applicable for jobs that run only when you trigger them, such as Product Catalog Export.
Destination
ProtocolSelect FTP or SFTP. SFTP is the default.
HostEnter the export destination portal URL.
UsernameEnter your username for the export destination portal.
PasswordEnter your password for the export destination portal.
FolderEnter the export folder path.
Export File TypeSelect the export file type. CSV, TSV, and RetailNext formats include only limited subsets of order data. For full functionality, we recommend using JSON or XML formats.
FilenameEnter the export file name.
Add HeaderTurn on to include a column header in the exported file.
One Order Per FileTurn on to match the export file to the CMS file.
![A screenshot shows the settings for creating an export job.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_export_jobs_create.png) ## Run an On-Demand Export Some export job types, such as Product Catalog Export, run only when you trigger them. These types don't include an Active toggle or a Schedule section, and they don't require field mapping. Every column in the product table exports automatically. 1. In CMS, go to **Feeds** | **Export Jobs**, and open the export job. 2. Click **Export Now**. 3. Confirm the export in the dialog that appears. ## Delete an Export Job In CMS, admins with the [Feeds: Edit](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_user_management.htm&release=264.0.0&type=5 "Customize users in CMS to control access to reports, configurations, and other features within a company.") permission can delete inactive export jobs. 1. Highlight an inactive job. 2. Click the trash icon. ![A screenshot showing the delete icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_export_jobs_delete.png) 3. Confirm the deletion by entering Delete. ## View Export Logs After you create export jobs, access their logs to check status—successful exports, failures, or jobs in progress. 1. In CMS, go to **Feeds** | **Export Logs**. 2. Under Export Type, select the type of job.![A screenshot shows logs of export jobs.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_export_jobs_logs.png) For inventory events, search by transfer ID and manually republish events as needed.![A screenshot shows logs of inventory events.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_export_jobs_inv_events.png) # Configure and Manage Other Payment Terminal Settings Accept diverse payment methods using the Point of Sale (POS) app, including gift cards, manual credit card entry, and external credit card readers, to provide customers with flexible options. - **[Configure Gift Card Payments in Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_gift_cards_terminal.htm&release=264.0.0&type=5)** Configure Point of Sale's Point of Sale (POS) to accept gift card payments, add value, cash out, and check balances, using a payment terminal. Merchants can select the integration approach that suits their needs, verifying all transactions are available through gateway reporting. - **[Aurus Device Setup and Pairing to POS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_aurus_device_setup.htm&release=264.0.0&type=5)** Connect the Aurus terminal and configure Aurus as a supported payment reader in Retail Cloud. - **[Use Fiserv (Mexico) to Make Payments](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_fiserv_mexico_payments.htm&release=264.0.0&type=5)** Use the Point of Sale (POS) app to make payments with Ingenico Link 2500 terminals over Bluetooth. - **[Configure Authorization mode for Endless Aisle and Online Transactions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_auth_mode_payments.htm&release=264.0.0&type=5)** Use the Point of Sale (POS) app to authorize payments for Endless Aisle or Online transactions and collect money whenever items are sent to customers. - **[Credit Card with Manual Key Entry](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_manual_card_entry.htm&release=264.0.0&type=5)** Enter credit card information manually via Adyen, Elavon and Verifone payment terminals using the Point of Sale (POS) app. - **[External Credit Card Reader Transactions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_external_credit_card_reader.htm&release=264.0.0&type=5)** Use an external credit card reader that isn’t connected to the Point of Sale app to process sales and refunds. - **[Capture Customer Information From Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_caputre_cust_info_pay_term.htm&release=264.0.0&type=5)** Allow customers to directly enter information, such as email addresses, on Adyen and Verifone terminals, streamlining data collection. Reduce the need for store associates to verbally collect information. Configure custom layouts in Point of Sale CMS and designate text input or checkbox fields for terminal input to tailor the data collection process. # Configure and Manage Printers Configure printers to produce customer documents from the Point of Sale (POS) app. Show the printer name instead of the MAC address. - **[Configure Registers to Support AirPrint for Customer Documents](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_airprint_setup.htm&release=264.0.0&type=5)** Turn on AirPrint and configure the Point of Sale platform so you can print different document types, including A4 documents, to conventional printers using AirPrint. - **[Display Printer Name for Store Associates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_display_printer_name.htm&release=264.0.0&type=5)** Easily find and select printers in the Point of Sale (POS) app at stores that maintain a 1-to-Many topology. - **[Epson Bluetooth Printer Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_bluetooth_printer_setup.htm&release=264.0.0&type=5)** Configure the printer settings in Point of Sale CMS and connect to the printer in the Point Of Sale (POS) app. You can then print receipts and manage cash drawers efficiently. - **[Epson IP Printer Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_epson_ip_printer_setup.htm&release=264.0.0&type=5)** Configure your Epson IP printer in Point of Sale CMS, connect it to the Point of Sale (POS) app, and switch to DHCP to connect to the network and print receipts. - **[Epson Printer Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_epson_printer_troubleshooting.htm&release=264.0.0&type=5)** Solve common issues with Epson printers in Point of Sale to quickly restore printer functionality and minimize disruptions. - **[Network Tethering Using Epson Printers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_epson_printer_tethering.htm&release=264.0.0&type=5)** Use network tethering to connect your register to a network via an Epson printer if Wi-Fi is unstable or there are limited ethernet ports. Connect the register to the printer using a USB cable for a stable and reliable Point of Sale (POS) system, while also charging the iOS device. - **[Star Micronics Printer Setup Guide](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_star_micronics_printer_setup.htm&release=264.0.0&type=5)** Connect Star Micronics mC-Print3 printers to your POS app to print receipts. Make sure your Point of Sale (POS) app meets the minimum build requirement before you configure app settings in the CMS. - **[Star Micronics Printer Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_star_printer_troubleshooting.htm&release=264.0.0&type=5)** Address common issues with your Star Micronics printer in Point of Sale and get it working again. - **[Star mPop Setup Guide](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_star_mpop_setup.htm&release=264.0.0&type=5)** Connect the Star mPOP receipt printer to your iPad via Bluetooth to print receipts. In Point of Sale CMS, configure the register by selecting Star mPop as the model and Bluetooth as the connection type. - **[SteadyLAN using Star Printers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_steadylan_star_printers.htm&release=264.0.0&type=5)** Make sure of reliable Point of Sale (POS) system operation, even if stores have unstable Wi-Fi or a shortage of ethernet ports. # Configure and Manage Verifone Payment Terminals Integrate Verifone payment devices with the Point of Sale (POS) app,to securely process transactions. Streamline payment operations and improve accuracy. - **[Configuring Notifications for Verifone](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configuring_notifications_verifone.htm&release=264.0.0&type=5)** Use Verifone Central Notifications in Point of Sale to receive transaction status updates and automate business processes, such as order management and report downloads. - **[Set Up Verifone Store and Forward (SAF)](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_saf.htm&release=264.0.0&type=5)** Configure Verifone Store and Forward (SAF) so the Point of Sale (POS) app keeps processing credit card transactions if the network isn't working. - **[Verifone - Line Item Display](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_line_item_display.htm&release=264.0.0&type=5)** Show your Point of Sale customers an overview of their purchase on Verifone payment terminals before they pay. The cart summary displays the number of items, taxes, and the order total on the terminal. - **[Verifone Payments](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_payments.htm&release=264.0.0&type=5)** Perform a sale using a Verifone Payments terminal integrated with Point of Sale. - **[Verifone Payments: Feature Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_feature_support.htm&release=264.0.0&type=5)** View a comprehensive list of supported features for Verifone Payments integration with Point of Sale, so you can decide if it fits your business needs. See which POS versions support transaction payment capture, terminal payment cancellation, refunds, and other functions. - **[Verifone Payment Onboarding](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_payment_onboarding.htm&release=264.0.0&type=5)** This article goes over the onboarding steps for using the Verifone Payments terminals with Point of Sale. # Configure App Roles in Your Identity Provider Create app roles in Microsoft Entra ID and map them to Point of Sale CMS user roles. App roles grant employees access to the CMS based on their assigned role. 1. Log in to the Microsoft Entra Admin Center. 2. Go to **App registration > App roles**. 3. Create a corresponding app role for each CMS user role. The app role's **Value** has to match the CMS user role label. For example, for a CMS user role of Associate, the app role’s value is also “Associate” (1).![The App roles page in the CMS, showing the CMS user role Associate.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_config_app_role_user.png) You can label the app role however you prefer, but using a name similar to the CMS user role makes mapping management easier. For example, use the label “Associate” for the Associate CMS user role. 4. If the app role’s Value includes special characters, you must percent-encode the characters. For example, “UI/UX Designer” becomes “UI%2FUX%20Designer.” Refer to the table to find the percent-encoded values for special characters. | Character | Percent-encoding | | --- | --- | | ':' | %3A | | '/' | %2F | | '?' | %3F | | '#' | %23 | | '\[' | %5B | | '\]' | %5D | | '@' | %40 | | '!' | %21 | | '$' | %24 | | '&' | %26 | | "'" | %27 | | '(' | %28 | | ')' | %29 | | '\*' | %2A | | '+' | %2B | | ',' | %2C | | ';' | %3B | | '=' | %3D | | '%' | %25 | | ' ' | %20 | # Configure Appeasements in Point of Sale CMS Use appeasements in the POS App to modify customer orders and receive price adjustments within a set time frame. Associates can efficiently process changes with approval policies and reason codes configured in the CMS, enhancing both customer satisfaction and operational efficiency. - Modern POS App Build: 10.2.1 or greater - Platform Support: iPhone & iPad - Offline Support: No 1. Specify the types of appeasements allowed on the POS app. 1. In CMS, go to **Store Management** | **Store Settings** | **OMS**. 2. Expand **Advanced**. 3. Under Allow Editing of Order (editOrderOptions), select the type of order editing allowed in the app. See [Supported Functionality by Edit Order Types](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_supported_edit_order_types.htm&release=264.0.0&type=5 "POS app supports order edits and appeasements, each with its own set of functionalities. This table outlines the supported features for each type of order edit."). 4. Under Appeasement Policy Window In Days (appeasementPolicyWindowInDays), set the number of days allowed for providing an appeasement. For example, if the window is set to five days, line item price overrides and transaction discounts aren’t allowed after five days. Note, all appeasement-related functionality adheres to the rules of the appeasement window: - EDIT\_ORDER: Appeasement window is irrelevant - APPEASEMENT: If window has passed, no discounts can be applied at either the line or order level - EDIT\_ORDER\_AND\_APPEASEMENT: If window has passed, discounts can only be applied at the order level, not at the item level - NOT\_ALLOWED: Not applicable as order editing isn't allowed 2. Configure the type of associate roles to process appeasements. 1. In CMS, go to **Store Management** | **Associates** | **Approval Policies Configuration**. 2. Click **Create**. 3. For Policy Feature, select **Appeasement**. 4. For Approval Roles, select the roles allowed to complete appeasements on the POS app. 3. Configure reason codes for item and order level discounts. 1. In CMS, go to **Store Management** | **Reason Codes**. 2. Create codes for Item Level Discounts and Transaction Level Discount. See [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments."). # Configure Authorization mode for Endless Aisle and Online Transactions Use the Point of Sale (POS) app to authorize payments for Endless Aisle or Online transactions and collect money whenever items are sent to customers. Prerequisites: - Modern POS App Build: 6.4.2 and later - Platform Support: iPhone & iPad - Offline Support: yes - Payment Terminal: Adyen or Verifone - Payment Gateway: integration with Adyen or Verifone to accept a payment. Payment capture is done by the merchant after the item(s) are shipped. Merchants can use this feature if they prefer not to capture funds immediately upon placing orders for Endless Aisle transactions. Store associates can place orders seamlessly through the POS app without needing additional details during checkout. ## Configure Point of Sale CMS Payment Gateway Settings 1. In CMS, go to **Integration > Payment Gateways**. 2. Select a previously created Adyen or Verifone payment gateway or create one. 3. Under **Manual Payment Settings**, turn on the **Manual Payment Capture** switch.![The Manual Payment Settings section with the Manual Payment Capture setting turned on.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_manual_pay_settings.png) 4. Save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Even with the flag, if all items in the cart are "In Store" fulfillment, the POS app captures funds after the order is placed. ## Configure Adyen Account If you have a Verifone terminal, skip this section and go to the Configure Verifone section below. 1. Log in to your [Customer Area](https://ca-test.adyen.com/) with your merchant-level account. 2. Go to **Account > Settings**. 3. Under **POS Capture Delay**, select "**manual**". ![The Capture Delay setting in the Ayden Settings screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_capture_delay.png) 4. Select **Submit**. 5. Turn on [Multiple Partial Capture](https://docs.adyen.com/checkout/capture#multiple-partial-captures) to support mixed cart mode and online orders where items are shipped separately. This setting can be enabled by contacting your Adyen support team. ## Configure Adyen Terminal 1. Enter "**9**" and “**O**”. 2. Enter the admin key for the terminal. 3. Select **Config**. 4. Select **Update**. ## Configure Verifone For a detailed guide on how to set up your Verifone account and terminal, see [Verifone Payments Onboarding](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_payment_onboarding.htm&release=264.0.0&type=5 "This article goes over the onboarding steps for using the Verifone Payments terminals with Point of Sale."). As Verifone doesn't support partial capture, the terminals will execute either AUTH or capture based on this criteria: - If all items in the cart have "In Store" fulfillment, the amount will be fully captured. - For online or mixed carts: - If the Verifone Payment Gateway: “**Manual Payment Capture**” flag is turned on in Point of Sale CMS, the terminal writes an AUTH. - If the Verifone Payment Gateway: “**Manual Payment Capture**” is turned off in Point of Sale CMS, the terminal fully CAPTURES the funds. AUTH is not supported if using a Debit Card. In such cases, the terminal shows an error, stating "**Unsupported**," and the POS shows "**Invalid Payment type for the current transaction**." # Configure Ayden Terminal for Point of Sale Connect an Adyen terminal to a network so you can board it and complete the pairing process with the Point of Sale (POS) app. ## Configure Network 1. On select of **Configure Network**, a screen appears with multiple options.![The configure network screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_config_network_ayden_term.png)![Multiple options shown after tapping COnfigure Network](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_config_network_multi_options.png) 2. Select **Network > Wi-Fi > +** (+ icon appears at the bottom) to scan and view all the available network options. Select the preferred network and connect by tapping on it and entering the network password.![Wi-Fi turned on in the Ayden Terminal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_select_network_wifi.png)![A list of available Wi-Fi networks in the Ayden Terminal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_available_networks_ayden.png) 3. After the network connects, select **X**, which takes you back to the home screen. 4. Make a note of the terminal’s IP, which is used in the iPad app for pairing. This can be viewed under **Network > Overview**.![The Network Overviw button in the Ayden Terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_network_overview.png)![The Ayden Terminal's IP address.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_config_ip_address.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Visit the Ayden page for further information on how to [update](https://docs.adyen.com/point-of-sale/network-configuration#using-wi-fi). Refrain from playing with the settings, this can impact the ability to take credit. ## Boarding Ayden Terminal A new Adyen terminal needs to fetch the configuration set up from the portal during the boarding process. 1. It needs to be first connected to a network to continue with the boarding‌ process. 2. If it’s boarded, you can go into the admin menu by clicking 9 and then O (green O). 3. Enter the admin menu password to continue configuring the network (reach out to the terminal admin for this password).![The admin menu with PIN](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_board_new_terminal.png) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Customize the idle screen of the payment device, such as displaying marketing images directly on the Adyen portal. ### New Device If it's a new device, the **Board Terminal** option shows after configuring the network. Select **Board Terminal**. 1. If the terminal prompts for a one-time password, enter the one-time password to fetch the configuration associated with the terminal from the Adyen console. 2. If the terminal prompts to select a store, select the terminal’s store and proceed.![Board a new terminal device screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_new_board_term.png)![Enter the passwrod to connect a new device to the terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_board_terminal_passwd.png) ### Existing Device 1. If it's an existing device, complete the reassigning process. The terminal can be accessed from the Adyen console. 2. After the reassign is done in the console, press **9** and then **O** on the Adyen Terminal to go to the admin menu. 3. Enter the admin menu password to view the admin menu. 4. Select **Config > Update** from the admin menu to fetch the changes in the console. 5. The terminal updates and shows the Board Terminal option. 6. Select **Board Terminal** 1. If the terminal prompts for a one-time password, enter the six-digit OTP, which you can receive from the adyen console. Be patient! This process will take about 10mins to process. 2. The terminal updates to the reassigned new store. ## Connecting to Wi-Fi Connect the iPad and Adyen terminal to the same Wi-Fi to turn on communication between them. Make sure that the Wi-Fi network is a 2.4GHz network as most Adyen devices don't support 5GHz. Subpar network bandwidth impacts the device's performance and authentication. 1. Press **9** and then **O** on the Adyen Terminal to go to the admin menu. 2. Enter the Admin password (reach out to the terminal admin for this password).![The admin menu with PIN](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_board_new_terminal.png) 3. To find the admin password from the Adyen portal: 4. Go to: [https://ca-test.adyen.com/ca/ca/login.shtml](https://ca-test.adyen.com/ca/ca/login.shtml) ![Ayden portal homepage](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_auden_portal_admin_pwd.png) 5. Select **Point of Sale > Terminals**.![The Point of Sale interface.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_pos_term.png) 6. Select the terminal. 7. Select **![The Terminal interface in the Ayden Portal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_terminal_interface.png)** | **Menu** and **Access** in the side menu. Select **View Decrypted** at the bottom of the side menu to see the admin menu pin. ![Your password decrypted at the bottom of the UI.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_access_decrypted.png) 8. Select **Network > Wi-Fi > +** (+ is seen at the bottom) to scan and view all the available network options. Select the preferred network and connect by tapping on it and entering the network password.![DHCP on the Nwtwork screen in the Ayden Terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_terminal_dhcp.png) 9. Select **Network > Overview** and make a note of the IP in the terminal. 10. Make sure to set a static IP before beginning to connect to the iPad app. The instructions are listed in the next section. ## Setting Static IP Address You can set up a static IP for a Wi-Fi network in the Adyen terminal by disabling DHCP. The IP will remain tied to the network until you reload Wi-Fi in the terminal or forget the network in the terminal. You will need to get the proper IP, Subnet, Gateway, and DNS from your internal network team. 1. Follow the step for Connecting to Wi-Fi. 2. Go to the **Admin** menu by pressing **9** **O** and select **Network**. 3. In the admin menu, select **Network > Wi-Fi > Select Your Wi-Fi > IP Settings**. ![A series of screen shots showing your network details in the Ayden Terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_network_settings.png) 4. Deselect **DHCP** and enter the IP address to set the network connection.![Unchecked DHCP setting in the Ayden Terminal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_uncheck_dhcp.png) 5. Apply changes by choosing the tick mark at the bottom-right of the terminal screen. ### SF01 Terminal To configure the static IP for SF01 Adyen terminals: 1. Open the Network menu in settings and tap **Wi-Fi**.![Network Settings on Wi-Fi for Ayden Terminal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_sf01_term.png) 2. Select the connected network and tap the pencil in the top right corner.![Edit the connected netowrk by clicking on the pencil icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_edit_connected_network.png) 3. Scroll down to the **IP settings** section and tap **Static**.![Select static in the I settings section.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_static_ip_ayden.png) 4. Enter the IP and save your changes. ## Configure Ayden Payment Gateway Before you can add a terminal to your POS, set up an Adyen Payment Gateway in your CMS. Follow the instructions in [this article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5 "You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale.") to learn how. ## Connect Ayden to POS ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important If you're pairing, make sure you've left the menu in your Adyen terminal and you're on the home screen (you see Adyen or your company logo). Otherwise, it can have pairing problems. 1. Go to **CMS > Apps > Store**. 2. Edit the app configuration of your choice: **Modules > Peripherals > Card Readers**. 3. Set **Default Card Reader** to '**VerifoneAdyen**'. 4. Select **Save**. ![The Ayden terminal home screen in the CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_verifoneayden.png) 5. Then, go to **POS App Device Manager > Add Terminal** to manually add the Adyen terminal to the Modern POS. 6. Add the terminal option and it will show a popup to add the terminal ID and the IP details. 1. Scan the IP number by selecting **5** and **O** in your Adyen terminal and scanning the QR code.![Adding a terminal popup window in your POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_qr_ip_address.png) 2. You can also manually add it by entering the IP number. 3. You can also manually add the terminal ID number. This step is only for terminal API implementation. 4. The added terminal is automatically connected to the POS app. The POS shows a blue check mark to confirm the same. ![The POS app showing the Ayden terminal connected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_blue_check_confirm_pos_app.png) ## Update Terminal Logo You can update the logo on Adyen terminals through the Adyen portal. 1. Log in to your Adyen portal and go to your merchant account. 2. Go to **In-person Payments > Terminals**. 3. Search for your specific device using its serial number and select the corresponding device row. 4. Go to **Customization > Logo**. 5. Upload or replace the logo image and save your changes. After you upload an image at the merchant level, all terminals under your merchant account will inherit this logo. 6. On your Adyen terminal, go to **Config** and select **Update**. The device will restart and show the new logo.![Update the Point of Sale Logo in your app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_update_logo.png) # Configure B2C Commerce Alerts for Slack Send Business Manager alerts and notifications directly to Slack. Connect your Slack workspaces to Business Manager and configure notifications such as security vulnerabilities, campaign and promotion updates, or site alerts. Where: This feature can be configured in the notifications section of Slack. Who: Administrators for B2C Commerce can set up alerts in Business Manager. Why: By connecting Slack with Business Managers, users can access updates and alerts quicker and more easily than ever. How: Admins can connect their Slack workspaces to Business Manager by acquiring a Slackbot token. #### See Also - [Get a Slack Token for Commerce](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_slack_bot_token.html) - [Configure B2C Alerts in Business Manager and Slack](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_configure_alerts_for_your_site.html) - [Connect a Slack Workspace to Business Manger](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_connect_slack_to_business_manager.html) # Configure BOPIS for SFOMS Integration Buy Online Pick-up In-Store (BOPIS) is an omnichannel fulfillment method where customers can shop online and go to the store or pickup location once the order is ready. This allows businesses to drive in-store traffic by connecting their offline and online experiences. This is a guide to enable and use Point of Sale's BOPIS feature. For a general overview of SFOMS integration in CMS, refer to this [Configure the Salesforce (SF) Order Management System (OMS) in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_sfoms.htm&release=264.0.0&type=5 "Discover the steps to configure the Salesforce Order Management System (OMS) in CMS. Point of Sale platform has an inbuilt Salesforce OMS connector. The connector is built on the best practices and collaboration with the Salesforce team."). For information on enabling BORIS, read [Enable BORIS for SFOMS Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_oms_boris.htm&release=264.0.0&type=5 "Buy Online Return In-Store (BORIS) allows customers to purchase products online and have them shipped. Customers can return the product to a physical store or alternative location if they are unsatisfied with their purchase. Enable Point of Sale's BORIS feature so customers have options for how they receive and return their products. Review the sections and corresponding components in the CMS to get started."). ## OMS Configuration Review each of these sections and fields to ensure that they are filled out matching your business requirements. These sections can be accessed by going to **CMS** | **Integrations** | **OMS Configuration.**
CMS OMS Integration SectionsDescription
Order Search ConfigurationFor Sales Channel IDs, please ensure that the correct IDs are input for the sources that you want to pull your BOPIS orders from
BOPISEnsure that the Enable BOPIS flag is toggled on. Make sure that the values in each of the Status fields are matching to the corresponding Status values in SFOMS. These are order statuses for the Fulfillment Order Objects.
Digital WalletIf your SFOM or Salesforce Commerce use certain digital wallet types for payment, you will need to choose the specific options for the Payment Method (Digital Wallet Type) and enter the value to map them in POS and Salesforce.
Additional Payment TypesSimilar to Digital Wallet, choose from the payment type options and enter the corresponding values from Salesforce to map them in POS
AdvancedIf using the SFOMS Rest API Cancellation endpoints, ensure that the toggle for Enable Cancellation APIs is toggled on.
## App Config – BOPIS Store Fulfillment Modules These flags can be accessed in your app config by going to **Modules** | **BOPIS Store Fulfillment**.
FlagDescription
BOPIS Item Level CancellationThis flag can allow the cancelation of individual items in BOPIS orders. Toggle on this feature if your business supports this workflow.
Has Store FulfillmentThis flag can display the store fulfillment UI on the Manage BOPIS Orders screen. Toggle on this feature if your business supports this workflow.
Allow Partial RefundThis flag can allow store associates to issue partial refunds on purchases. Toggle on this feature if your business supports this workflow.
## Store Management These sections can be found in CMS by going to Store Management.
Section Description
Return Policy Configuration Create a Return Policy for Ecomm Stores if one has not been created already. Check to ensure that the settings match your online order policy as closely as you can.
Email & Print Templates Ensure that both BOPIS Ready for Pickup and BOPIS Order Picked Up templates have been configured and published.
Store Settings
  1. OMS
    • Advanced: Enable Allow Editing of Order toggle.
    • Email: Enable Send Order Picked up Email.
  2. Reason Codes
    • Ensure that the Return/Cancel codes match to the Return Reason codes in OMS Objects. Additionally, make sure that there is an “Unknown” reason code set in the OrderProductSummaryChange Reason Picklist.
# Configure Brotli Compression Speed in Business Manager Business Manager now offers Brotli Compression speed settings, which simplifies managing and optimizing static web assets. This update ensures smaller payloads and faster delivery times, enhancing the overall user experience. **Why:** This update simplifies configuring Brotli Compression, which can significantly improve your web assets' performance. By providing a user-friendly interface, it reduces the need for technical expertise and streamlines the setup process. **How:** In Business Manager, select the **Apps Switcher** | **Administration** | **Site** | **Embedded CDN Settings** | **Settings**. Select the Speed tab and check Brotli. To make sure Brotli is used, include the "br" option in the HTTP Request Header "Accept-Encoding." If Brotli is disabled, the eCDN defaults to auto compression selection from the CDN provider. For a gzip response, set the request header to "gzip." Including all options in the request header (gzip, br, zstd) prioritizes Brotli. ![Brotli compression selection.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_7/b2c_25_7_rn_brotli_compression.png) #### See Also - [Configure a Zone for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_configuring_a_zone.htm&type=5&language=en_US) - [Enhance Site Speed](https://help.salesforce.com/s/articleView?id=cc.b2c_enhance_site_speedxml.htm&type=5&language=en_US) # Configure Checkout to Support Subscriptions for B2B Stores To support subscriptions, your B2B store must use Custom Checkout with Salesforce Payments as your payment provider. You can customize the Salesforce native shipping service with an Apex extension to support subscriptions. Or, you can use a third-party shipping provider. After you configure checkout, you can sell subscription products in your store. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Unlimited and Developer editions
Available in: B2B Commerce
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before you begin, - Confirm that your store is using Custom Checkout. If there's a label at the top of the page that ready Managed Checkout, scroll to the bottom of the page, click **Use Custom Checkout**, and follow the prompts. - [Select Salesforce tax solution and set up a tax provider for custom checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_salesforcetaxsoln.htm&language=en_US). - Set up Salesforce Payments. See [Set Up Payments with the Commerce Setup Assistant](https://help.salesforce.com/s/articleView?id=commerce.payments_setup_intro.htm&language=en_US). - Configure the supported ship-to-countries for your store. If you don't configure at least one supported ship-to-country, address validation fails. See [Configure Store Language, Currency, and Tax](https://help.salesforce.com/s/articleView?id=commerce.comm_create_international_store.htm&language=en_US). - Make sure that your store is associated with a legal entity. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Starting in Spring ’24, the Cart Calculate API is enabled by default for LWR stores (`OptionsCartCalculateEnabled` is set to true). The Cart Calculate API must be enabled to sell subscription products. See [Cart Calculate API](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html). Watch the video to help you sync pricing and configure checkout to support subscriptions for your store. If you can’t watch the video in full screen, open the video on a new tab: [Sync Pricing and Configure Checkout](https://play.vidyard.com/q8HACNo7KxuYv6ho5YUbTv). To configure checkout to support subscriptions, 1. In the navigation sidebar, select a store from the Store dropdown. 2. Click **Settings** | **Checkout**. 3. In the Payments tab, configure Salesforce Payments as your payment provider. 1. On the Payments tab, click the dropdown menu on the Salesforce Payments tile and select **Open App**. If you don't see a Salesforce Payments tile, contact your Salesforce account executive. 2. On the Payments Merchant Accounts page, click **Add Account**, and follow the prompts to set up a merchant account. See [Set Up a Merchant Account for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.payments_add_merch_acct.htm&language=en_US). 3. Save your changes and return to your store's checkout settings. 4. In the Taxes tab, update the values of the Tax Policy ID and the Merchant Account fields. 5. Set up Salesforce native shipping. Salesforce’s native shipping service supports subscriptions with a custom Apex extension. If you prefer to use a third-party shipping service, see [Add a Third-Party Shipping Service for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_shipping.htm&language=en_US). 1. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. From Debug, click **Open Execute Anonymous Window**. An Apex Code editor opens. 3. Copy this code snippet into the Apex editor window. `ID webStoreId = '0ZE000000000000000'; // !!! please replace !!! // 1. Set up the default shipping profile (ShippingConfigurationSet entity object) ShippingConfigurationSet[] shippingConfigs = new List(); ShippingConfigurationSet shippingProfile = new ShippingConfigurationSet(Name='General', TargetRecordId=webStoreId, IsDefault=true); shippingConfigs.add(shippingProfile); insert shippingConfigs; // 2. Set up rate group (ShippingRateGroup entity) ShippingRateGroup[] shippingRateGroups = new List(); ShippingRateGroup shipRateGroup1 = new ShippingRateGroup(Name='Shipping rate group 1', ShippingProfileId=shippingProfile.Id); shippingRateGroups.add(shipRateGroup1); insert shippingRateGroups; // 3. Set up a shipping zone (ShippingRateArea entity) ShippingRateArea[] shippingRateArea = new List(); ShippingRateArea shipRateArea1 = new ShippingRateArea(Name='Shipping rate area US', ShippingRateGroupId = shipRateGroup1.Id, Countries='US'); shippingRateArea.add(shipRateArea1); insert shippingRateArea; // 4. Set up three simple shipping rates (StandardShippingRate entity) StandardShippingRate[] standardShippingRates = new List(); StandardShippingRate shipRate1 = new StandardShippingRate(Name='Free Shipping 7-10 Days', ShippingZoneId = shipRateArea1.Id, Price=0.0); StandardShippingRate shipRate2 = new StandardShippingRate(Name='Overnight Shipping', ShippingZoneId = shipRateArea1.Id, Price=12.0); StandardShippingRate shipRate3 = new StandardShippingRate(Name='Express Shipping 2-3 Days', ShippingZoneId = shipRateArea1.Id, ConditionFactor='OrderPriceFactor', ConditionRangeMin=0.0, ConditionRangeMax=100.0, Price=5.0); standardShippingRates.add(shipRate1); standardShippingRates.add(shipRate2); standardShippingRates.add(shipRate3); insert standardShippingRates;` 4. Replace the store ID with your 18-character ID. You can find your ID in your store’s home page URL. It begins with “webStoreId=”. 5. Execute the code. 6. Extend the Salesforce native shipping service to support subscriptions. 1. Copy the sample shipping calculator code from [ShippingCartCalculatorSample](https://github.com/forcedotcom/commerce-extensibility/blob/main/commerce/domain/shipping/cart/calculator/classes/ShippingCartCalculatorSample.cls). 2. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 3. In Quick Find, find and select **Apex Classes**. 4. Click **New**. 5. Paste the code sample into the Apex editor window. 6. Save your changes and return to the Commerce app. 7. Select the customized shipping extension as your provider. 1. In the navigation sidebar, click **Settings** | **Checkout**. 2. On the Shipping tab, click **Select Provider** on the Shipping–Cart & Checkout Calculator tile. 3. Select **SHIPPING\_EXTENSION**. 4. Click **Next**, and confirm your changes. 8. Create shipping profiles and rates to calculate shipping charges on order. 1. In the navigation sidebar, click **Settings** | **Checkout**. 2. Go to **Shipping**. 3. Under Providers, click **Add New Profile**. 4. Add shipping zones and shipping rates to the profile, and click **Done**. After you’ve configured your payment, tax, and shipping services, confirm that your store’s checkout page is set up to collect payment correctly using Salesforce Payments. See [Customize the Payment Section of Checkout in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_customize_payments.htm&language=en_US). Also, customize your store’s product and profile pages so that shoppers can browse and manage subscription products. See [Configure Subscription Shopping in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_configure_shopper_experience.htm&language=en_US). Optionally, assign a tax policy to individual products in your store. See [Assign a Tax Policy to a Product](https://help.salesforce.com/s/articleView?id=commerce.comm_tax_assigntaxpolicytoproduct.htm&language=en_US). #### See Also - [Configure Checkout for a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_container.htm&language=en_US) - [Custom Checkout for a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_checkout.htm&language=en_US) # Configure CMS to use App Config Segmentation Customize Point of Sale app configurations for different user groups to enhance personalization and control. Toggling settings in CMS allows you to disable defaults and enable layout groups, ensuring a tailored experience. iOS users can select from a variety of native, license-free fonts by typing the name directly. Set and edit segmentation preferences to refine the user experience at associate and manager levels. ## Enable App Config Segmentation Enable Point of Sale App Config Segmentation to customize app configurations for different user groups, enhancing personalization and control. By toggling specific settings in the CMS, you can disable role-level or associate-level defaults and enable layout groups, ensuring a more tailored user experience. 1. In CMS, go to **Store Management** | **Store Settings** | **System**. 2. Expand Rollout. 3. Toggle on **Use App Config Segments** (useAppConfigSegments). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Enabling this flag will disable selection of a role-level or associate-level default app config. 4. Go to **Store Management** | **Store Settings** | **Personalization**. 5. Expand Advanced. 6. Toggle on **Enable Layout Groups** (layout.groups.enabled). ## Create App Config Segmentation Create a Point of Sale app configuration in CMS to customize your app's look and feel with logos, fonts, and other settings. iOS users can use a variety of native, license-free fonts by typing the name directly. 1. In CMS, go to **Apps**. 2. Click **+** to create an app configuration. 3. Select the app config type and click **Next**. 4. On the App Config Details screen, set the logo, fonts, and other related settings to customize the app's look and feel.![A screenshot shows the App Config Details screen, complete with typical configuration data.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_app_cms_create.png) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip iOS supports [many fonts](http://iosfonts.com/) natively. You can type in a font name even if it doesn't appear in the dropdown list. These are license-free fonts available for use. 5. Click **Next** when done. You are directed to the App Config Segment Preferences screen. ## Set App Config Segment Preferences Set segmentation preferences for Point of Sale app configs to tailor the user experience. If Modern POS is selected as the app config type, set preferences at the associate and manager levels. 1. Enable **Is Default** to set this app config as the default before associate login. Default app configs are marked with a blue Default label underneath them. If this is the first app config, the flag will be enabled by default and noneditable as long as there’s only one app config. 2. Select the device type for Device Type Segmentation (iPhone, iPad, or both). 3. For Personnel Segmentation, select the personnel type: 1. Role: Multiselect dropdown to specify applicable roles 2. Store Associate: Multiselect dropdown to specify applicable users 3. All: This app config will be available to all personnel 4. For Location Segmentation, select the location type: 1. Store Group: Enter the store group ID 2. Store: Select the store ID 3. All: This app config will be available to all locations ![A screenshot of the App Config Segment Preferences screen shows typical segmentation preferences.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_app_cms_set.png) ## Edit App Config Segmentation Preference Easily modify Point of Sale app config segment preferences by accessing the Apps section in CMS. 1. In CMS, go to **Apps**. 2. Next to the ‌app config, select the pencil. 3. Edit the preferences.![A screenshot shows the App Config Segment Preferences dialog with typical settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_app_cms_edit.png) # Configure Commerce Delivery Service for B2C Commerce Configure the Commerce Delivery Service (CDS) Commerce App to forecast delivery dates using your fulfillment locations, real-time inventory, processing and cutoff times, and carrier transit times. The estimated delivery dates appear on the Checkout and Product Detail pages on your Storefront Next site. ### Required Editions
View supported editions.
Before beginning this task, make sure the [Order Fulfillment Setup section](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5 "The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS).") is enabled. Prerequisites - In Business Manager, install the Commerce Delivery Service Commerce App. See [Install a Commerce App for B2C Commerce](https://help.salesforce.com/s/articleView?language=en_US&id=cc.b2c_install_commerce_app.htm). - Verify that your organization has the Order Management Growth license and the Omnichannel Inventory license. See [Salesforce Order Management Licenses and Allocations](https://help.salesforce.com/s/articleView?id=commerce.om_licenses.htm&release=264.0.0&type=5 "Salesforce Order Management (SOM) license allocations are based on either the anticipated gross merchandise volume (GMV) of the order summary record or the number of order summary records created. Order summary records can be either managed or unmanaged."). - Complete the Delivery Estimation prerequisites, including turning on Omnichannel Inventory. See [Delivery Estimation Prerequisites](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_prereqs.htm&release=264.0.0&type=5 "After you install, configure, and turn on both Order Management and Omnichannel Inventory, there are a few prerequisites for Delivery Estimations."). 1. From Setup, in the Quick Find box, enter Order Management. 2. Under **Feature Settings** | **Order Management**, select **Setup** and turn on **Delivery Estimation Service**. 3. Assign at least one of these Order Management permission sets to each user who sets up or uses delivery estimation. - Order Management Agent - Order Management Operations Manager - Order Management Shopper 4. Set up a managed shipping carrier and method so that CDS has carrier transit times for each location. See [Set Up Shipping for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_set_up_shipping.htm&type=5&language=en_US). 5. Create a delivery estimation. Select a channel, location group, and routing type, and set the processing time and business hours that define your eligible shipping days and order cutoff time. See [Set Up a Delivery Estimation](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_create_estimation.htm&type=5&language=en_US). 6. Connect the Delivery Estimation Service to your B2C Commerce instance. See [Connect the Delivery Estimation Service to B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_connect_to_commerce.htm&type=5&language=en_US). 7. Connect the Commerce Delivery Service to your B2C store. See [Configure Delivery Estimation for a B2C Store](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_config_for_b2c_store.htm&type=5&language=en_US). 8. To push your configuration to Commerce Delivery Service, enable and sync the delivery estimation. See [Enable and Sync a Delivery Estimation](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_sync_to_cds.htm&type=5&language=en_US). Next step: [Set Up a Delivery Estimation](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_create_estimation.htm&release=264.0.0&type=5 "A delivery estimation contains information about a store and sales channel, including hours, processing times, and whether the store or sales channel support Buy Online Pickup In Store (BOPIS). The delivery estimation sets processing and store hour information for an entire location group. You can change this information for individual locations on the Location Assignment tab.") #### See Also - [Delivery Estimations for Order Management Overview](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_overview.htm&release=264.0.0&type=5 "Provide customers with accurate delivery times by showing delivery dates on your store’s product detail and checkout pages.") # Configure Commerce Pages to Support Subscriptions To create subscription products in a B2B store, modify the Price Book Entry and Product page layouts to show the product selling model option. After you modify these page layouts, you can create subscription product selling models and subscription products. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Unlimited and Developer editions
Available in: B2B Commerce
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Add shipping and asset fields to the Product page layout. 1. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. Select Object Manager, and in the Quick Find box, enter and select **Product**. 3. Go to **Page Layouts** and select **Product Layout**. 4. Drag the Shipping Charge Not Applicable and Is Assetizable fields to the Product Detail section. 5. Save your changes. 2. Add the Product Selling Model tab to the pricing workspace to manage subscription pricing. 1. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. Select Object Manager, and in the Quick Find box, enter and select **Price Book Entry**. 3. Click **Fields**. 4. Drag the Product Selling Model tab to the Fields section. 5. Save your changes. 3. Add the Product Selling Model tab to the Product page to add subscription pricing to a product. 1. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. Select Object Manager, and in the Quick Find box, enter and select **Product**. 3. Go to **Page Layouts** and select **Product Layout**. 4. Under **Product Layout**, select **Related Lists**. 5. Drag the Product Selling Model Option tab to the Related Lists section. 6. Under Product Layout, select **Fields**. 7. Drag the **IsAssetizable** field to the Product Detail section. 8. Save your changes. Now that the Price Book Entry and Product pages can support selling subscriptions, make sure your store’s checkout settings support subscriptions. See [Configure Checkout to Support Subscriptions for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_checkout.htm&language=en_US). #### See Also - [Add Related Lists to the Price Book Entry Page for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_pbe_page_layout.htm&language=en_US) # Configure Current Register Hardware Check the current register hardware configuration in the Point of Sale (POS) app. View the current configuration for each device connected to the register, device details, and the configuration source. ## Prerequisites Modern POS App build: 8.4.1 Platform Support: iPhone & iPad Offline Support: yes ## Hardware Configuration Deep Link The Hardware Configuration screen can be triggered using **Debug Hardware Configuration** deep link on the CMS. A deep link can be added either in the Hamburger menu or any layout on the POS app.![Set the Debug Hardware Configuration Deep Link in the POA App](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_debug_hardware_config.png) ## Printer Configuration Mobile Config: Go to **CMS -> All/Store -> Edit Mobile Config -> Modules** | Configuration | Notes | | --- | --- | | Peripherals -> Printers -> Max Print Attempts | Maximum number of attempts POS will make to print the receipt. This will occur if the POS can’t connect to the printer or can’t send receipt data to the printer. | ## End-User Documentation To see the register hardware configuration screen, open the hamburger menu and select the option "Hardware Configuration".![The Reguster Hardware Configuration screen in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_hardware_config_option.jpeg) The hardware configuration screen has one section for each peripheral that can be connected to the register. There's the legend "Configured at:" attached to each of the peripherals details. Let’s pause for a moment to define which are the different values that can be presented here and what they mean. ## Configuration Level By design, the POS is fully configurable, allowing users to configure each peripheral's connection to the register via a CMS. During this process, various levels of settings can be applied to the devices: | Configuration Level | Description | | --- | --- | | Merchant | The device is configured directly at the store level. | | Register | The device is configured at the register level, inside the store. | | Mobile Config | The device is configured in the mobile configuration. | | User | The user decides inside the app and changes the configuration manually (using the device manager, for instance). | | System | The configuration is set by the POS system itself. These are all the cases if the configuration needs to be decided based on device specifics (because of SDKs and or device software/hardware capabilities/restrictions/specifications). | These levels of configuration can be set for the different settings of each peripheral, being the ones currently included on the system: the device's model or type, the device's connection type, and the device connection topology. ## Hardware Configuration Screen Layout The hardware configuration screen has four parts. Each part is for the different parts of the register (Scanner, Printer, Terminal, and Cash Drawer). Each section is composed of four or five lines: | Line # | Information | Description | | --- | --- | --- | | 1 | Device type | Describing the default device model configured, and the source of its configuration. | | 2 | Connected device | Device currently connected to the register. The information displayed consists of the device model, and (if applicable) serial number. | | 3 | Connection type\* | Describing the peripheral connection type (IP, Bluetooth, USB) and its source of configuration. | | 4 | Topology | Describing the topology configured for the peripheral and the source of its configuration. This value isn't presented on Scanner and Cash Drawer because the topology is considered 1:1 by default. | | 5 | Model | Describes the configured device model. Printers only. POS >= 9.0.1 | ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: "Any" is no longer supported for cash drawers and printers. Explicitly provide this setting to avoid unexpected Modern POS behavior. # Configure Custom Checkout for a B2B Store Custom checkout gives you more control over your store’s checkout configuration. You can use third-party apps instead of Salesforce’s native merchant services for payments, tax, and shipping. Or, you can extend native merchant services using custom checkout. You can design your own checkout page in Experience Builder with preset layouts, custom sections, and components. For B2B stores, custom checkout is the only option for configuring checkout. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Set Up Salesforce Payments for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.payments_add_merch_acct.htm&release=264.0.0&type=5)** If you created a B2B store with an LWR template, we recommend using Salesforce Payments, our native payment service. Salesforce Payments includes safeguards for transactions, express payment options, and a saved payment option. It provides two components—Salesforce Payments and Express Checkout, which you can add to your checkout page to collect payment information. These components automatically pull in the accepted payment methods that you configured for your store, and they provide fraud protection by using 3D Secure authentication. - **[Add a Third-Party Payments Service for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_payment_service_thirdparty.htm&release=264.0.0&type=5)** For a B2B store using custom checkout, instead of using Salesforce’s native payment service, you can use a third-party gateway adapter to integrate with your store's checkout process. - **[Set Up Taxes in B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_setuptaxes.htm&release=264.0.0&type=5)** Setting up tax calculations for your B2B store ensures compliance with regional tax requirements, exempt certificates, VAT, and real-time rate changes during checkout. Salesforce B2B Commerce provides flexible options to calculate taxes based on your business model and operational needs. - **[Set Up Salesforce Native Shipping for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_native_shipping.htm&release=264.0.0&type=5)** Provide customers accurate shipping methods, including default free shipping, flat rates, and custom rates with the Salesforce native shipping service for your B2B store.. You can use the shipping service with custom checkout or managed checkout, but if you configure your store using custom checkout, you must add the shipping service manually. You can create custom shipping zones and turn off shipping if you don’t sell physical goods. - **[Add a Third-Party Shipping Service for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_shipping.htm&release=264.0.0&type=5)** A shipping calculation service determines how much customers pay for shipping in your B2B store. Instead of using Salesforce’s native shipping service, you can add a third-party shipping application to your store or set up your own shipping service. - **[Enable Shipping to Multiple Addresses for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_split_shipping_for_commerce_stores.htm&release=264.0.0&type=5)** Let customers ship items in one order to multiple addresses in a B2B store or a Pay Now site. At checkout, customers can split a single cart into multiple shipments. You can’t use split shipping with managed checkout or with digital or subscription products. - **[Enable Order Fulfillment from Multiple Addresses for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_split_order_fulfillment.htm&release=264.0.0&type=5)** When a customer chooses to send products in one order to different addresses, you can fulfill the order from multiple locations. The Split Order Fulfillment flows create a fulfillment order for each address. You can also manually split fulfillment for an order. - **[License Requirements for Custom Checkout Order Tracking](https://help.salesforce.com/s/articleView?id=commerce.comm_license_requirements_custom_checkout.htm&release=264.0.0&type=5)** To comply with B2B Commerce licensing requirements, make sure that your custom checkout implementation is tracking orders for Gross Merchandise Value (GMV) and Price Per Order (PPO). If your cart-to-order process invokes the Cart to Order flow core action or the Commerce Webstore Checkout Orders Connect REST API, no additional steps are required. # Configure Custom Field Permissions When you add a custom field to an object for use in Order Management, Order Management users need access to that custom field. Update each permission set that includes the custom field. 1. From Setup, in the Quick Find box, find and select **Permission Sets**. 2. Select the permission set that controls access for your Order Management users. 3. In the Apps section, click **Object Settings**. 4. Select the object that has the custom field. 5. Click **Edit**. 6. In the Field Permissions section, select **Edit Access** for the custom field. 7. Click **Save**. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Configure Custom Product Attributes on Point of Sale Receipts Print custom product attributes, such as tax codes or brand names, on Point of Sale receipts. Map any product attribute, including custom fields like CustomString0, to a label that prints on customer receipts. The label prints as entered, and the app automatically replaces the attribute name with its value for each transaction. 1. In CMS, go to **Store Management** | **Store Settings**, and under Modules, select **Product**. 2. In the **Product Attributes to Include on Receipts** field, enter a comma-separated list of label:attribute name pairs, where label is the text you want printed on the receipt, and attribute name is the attribute name as it appears in your product feed. For example, enter Tax Code:CustomString0,Brand:BrandName. The receipt prints the labels Tax Code and Brand as entered. The app replaces CustomString0 and BrandName with the matching values from the product feed. ![The Product Attributes to Include on Receipts field with a sample mapping entered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_product_attributes_field.png) 3. Save your changes. 4. To print the mapped attributes on e-receipts, go to **Layouts** | **Layout Templates** | **Email & Print Templates**, and edit a receipt template. 5. In the product section of the template, add the {ProducReceiptAttributes} tag. 6. To print the mapped attributes on printed receipts, go to **Layouts** | **Layout Templates** | **Print Receipts**, and open edit a receipt template. 7. In the product section of the template, add the :ps\_p\_receipt\_attributes tag. 8. Save your changes. Place a test order and trigger both an e-receipt and a printed receipt. Confirm that each mapped attribute prints with its label and the correct value. For the full list of Point of Sale receipt tags, see [Comprehensive Print Tags List](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_list.htm&release=264.0.0&type=5 "Show dynamic data in your layouts by using Point of Sale print tags as placeholders. Each tag includes its description, location, receipt components, group list, and data mapping. Grouped lists output multiple data points for each tag."). ![A receipt showing custom product attributes printed with their mapped labels.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_product_attributes_result.png) #### See Also - [_Salesforce Help:_ Configure Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts.htm&release=264.0.0&type=5 "Customize your customer's checkout experience by setting up various receipt layouts, including alterations and SKU-level gift receipts in Point of Sale. Efficiently manage invoice documents and meet specific Mexico requirements for order receipts. This flexible configuration process allows you to present essential transaction details clearly and even brand your receipts with a logo image, enhancing customer satisfaction and streamlining record-keeping.") # Configure Customer 360 Clienteling for Point of Sale Configure the connector or service that powers each Customer 360 area in the POS app, giving store associates a unified view of customer data from Commerce or Service. The configured connector or service applies only to the Customer Profile, Address, and Wish List flows. Before configuring Customer 360 in the CMS, review these integrations: - SCAPI ERP connection configured in POS CMS. See [Configure SCAPI ERP Configuration in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_scapi.htm&language=en_US). - (Optional) Shopper Profile Sync configured in B2C Business Manager. If you configure this, your POS and B2C Commerce use the same customer ID. A shopper who buys online and in store is matched to one customer profile in both systems. See [Configure Shopper Profile Sync](https://help.salesforce.com/s/articleView?id=cc.b2c_configure_shopper_profile_sync.htm&language=en_US). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important The built-in wish list is deprecated. If you don't select a provider for Wish List, the wish list stays empty in the customer profile and customers can't add products to it. To use the wish list, select **Service Provider Integration (SPI)** or another supported provider. For details about implementing the SPI, see [Wishlist SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/references/wishlist-spi?meta=Summary). 1. In the CMS, go to **Integrations** | **Customer 360 Configuration**. 2. For each module, select a provider or connector: - **Customer Profile** - Basic customer information including name, contact details, and preferences - **Wish List** - Customer's saved items and product preferences - **Online Cart** - Customer's current online shopping cart contents - **Address** - Customer's shipping and billing addresses - **Order History** - Customer's past purchases and transactions - **Loyalty** - Customer loyalty membership and points balance ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Selecting Commerce for the customer profile automatically applies to wish list, online cart, and address modules. Selecting Service lets you choose SPI for wish list and Service for address. Service doesn't support online cart. 3. Review the configuration status for each module. 4. Save your changes. ![Customer 360 Configuration settings in the CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_customer_360_config.png) #### See Also - [_Salesforce Help:_ Manage Clienteling for Point of Sale (can be out of date or unavailable during preview)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_manage_clienteling.htm&language=en_US) # Configure Customer Search Webview in Point of Sale Set up a URL deep link to access WebViews so you can create appointment booking services within the Point of Sale (POS) app. ## Prerequisites - POS App Build: 9.9.1 and later - Platform Support: iPad & iPhone - Offline Support: no - Technical Requirements: merchant-provided URL to WebView ## Configure Customer Search Login Event in Point of Sale CMS Set a customer login event in Point of Sale CMS to happen whenever a WebView loads. ### Configure Customer Login Event Name Configure the customer login event that triggers as a WebView loads. The POS app uses this event to extract the customer ID from the event data and initiate a customer login API call. 1. In CMS, go to **Apps > All**. 2. Edit an app configuration. 3. Go to **Modules > Webview**. 4. Under **Customer Login Event Name**, enter the event name (for example **customerSelected**). ![The Customer Login Event Name setting highlighted in the WebView section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_config_customer_login_event.png) ### Configure a URL Deep Link Configure a deep link to access WebView. 1. In CMS, edit a layout or hamburger menu. 2. Add a section for the deep link. 3. On the right toolbar menu, go to **Deep Link > URL**. 4. Paste the merchant-provided WebView URl. 5. Set and save the changes.![Adding the WebView URI to the Deep Link URL section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_deep_link_webview.png) ### Customer Data Sent and Received If a WebView is configured, Salesforce sends this information: - Store ID - Logged-in store associate - Attributed store associate ID If a WebView is configured, the Salesforce customer ID is returned. ## View Customer Search Webview in the POS App The Point of Sale app flow in determines how the app responds to customer ID information. ### Match Found If Point of Sale receives the Salesforce customer ID, it initiates a lookup in Salesforce using the provided ID. If a match is found in Salesforce, the customer is added to the cart. This is like how customers are chosen using our native search connector. Subsequently, the store associate is automatically redirected to the cart for further action. ### No Match Found If no match is found for the customer ID in Salesforce, the system refrains from adding the customer to the cart. Instead, a message prompts the store associate with: "`Customer not found, please search again.`" ### Response Without Customer ID In case the response doesn't include a customer ID, Point of Sale skips the Salesforce lookup process altogether. # Configure Cycle Count Options Improve cycle counts using serialized inventory and bulk entry to identify and track individual items uniquely in Point of Sale CMS. During a cycle count, editing quantities or deleting items from a batch isn't possible. However, new items can be added, and existing item quantities can be increased by scanning them again. Scanning a serialized item prompts the user to enter its serial number, preventing duplicates. ## Configure Serialized Inventory Serialized inventory, in terms of inventory management, refers to individual items that are uniquely identified and tracked. To support this feature for cycle counts: 1. In CMS, go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Turn on **Enable Serialized Inventory**. 4. Set **SerialNumberRequired** to **True** for all serialized product settings. Scanning a serialized item prompts the user to enter its serial number. Scanning the same serial number across multiple batches results in posting multiple quantities for the same serialized item. Entering multiple serial numbers appends them to the list. An error message appears if products share the same serial number. The Point of Sale (POS) app only checks if the serial numbers are the same. It doesn't check if the serial numbers you enter are correct. ## Configure Bulk Entry Bulk entry refers to the process of adding more than one item or product to the inventory system simultaneously. Instead of manually entering each item's information one by one, bulk entry allows you to input data for multiple items at once. This can be used for receiving cases of products, such as in a winey. Other examples include seasonal items like clothing or holiday products. In the context of furniture retail, it can be used to update inventory for different furniture types in a single entry. 1. In CMS, go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Turn on **Enable Bulk Receiving of Items**. Scanning the same serial number across multiple batches results in posting multiple quantities for the same serialized item. # Configure Deep Link Dependencies Deep links in the POS app can launch specific views, but some require additional configurations. Learn which deep links need dependencies and how to set them up to avoid errors and ensure smooth functionality. For example, the Set Gift Card Tender deep link in the Cart Options Layout will not work unless Gift Card is configured as a supported tender under Store Settings. ## Configure Store Search Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}**. 2. Edit your app config. 3. Go to **Modules** | **Store Locator**. 4. Enable the Store Locator flag. POS Error Shown: No ## Configure Wishlist Deep Link ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important The default/built-in wishlist has been deprecated. To use wishlist functionality, you must configure a data source using the Service Provider Interface (SPI) or integrate with an external system such as Demandware or an ERP system. 1. Configure your wishlist data source using SPI or an external integration (Demandware/ERP). For detailed information on implementing the Wishlist SPI, see [Wishlist SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/references/wishlist-spi?meta=Summary). 2. In CMS, go to **Integrations** | **Customer 360 Configuration**, and select **Service Provider Integration (SPI)** for the Wish List module. If you skip this step, the wishlist stays empty in the customer profile and the heart icon doesn't work on the product details page. For more information, see [Configure Customer 360 Clienteling for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_customer_360_config.htm&release=264.0.0&type=5 "Configure the connector or service that powers each Customer 360 area in the POS app, giving store associates a unified view of customer data from Commerce or Service. The configured connector or service applies only to the Customer Profile, Address, and Wish List flows."). 3. In CMS, go to **Apps** | **Store** | **{your app config}**. 4. Edit your app config. 5. Go to **Modules** | **Wishlists**. 6. Enable the Wishlist flag. POS Error Shown: No ## Configure Product History Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}**. 2. Edit your app config. 3. Go to **Modules** | **Search**. 4. Enable the IPadProductHistory flag. POS Error Shown: No ## Configure Open Drawer Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}**. 2. Edit your app config. 3. Go to **Modules** | **Peripherals**. 4. Enable the HasHardwarePrinter flag. POS Error Shown: No ## Configure No Sale Transaction Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}**. 2. Edit your app config. 3. Go to **Modules** | **Peripherals**. 4. Enable the HasHardwarePrinter flag. 5. Go back to CMS, go to **Store Management** | **Store Settings** | **Store Register**. 6. Under Till Management, make sure Auto is NOT selected. POS Error Shown: Yes ## Configure Current Cash Drawer Deep Link 1. In CMS, go to **Store Management** | **Store Settings** | **Payment**. 2. Under Supported Tenders, Cash needs to be configured. 3. If a register is configured, go back to Store Management. 4. Go to Registers and select a store. 5. Edit a register by clicking on the pencil icon to the right. 6. Under Supported Tenders, Cash needs to be configured. POS Error Shown: Yes ## Configure Offline Mode Deep Link 1. In CMS, go to **Store Management** | **Offline Configuration**. 2. Enable the Support Offline Mode flag. For more details on offline mode and related settings, refer to [POS Offline Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_settings_pos_offline_support.htm&release=264.0.0&type=5 "Continue operating the POS app if the device isn't connected to WiFi or Ethernet, or your internet service is down. Sync the POS app data after you're back online."). POS Error Shown: No ## Configure Offline Logs Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}**. 2. Edit your app config. 3. Go to **Modules** | **POS**. 4. Enable the Support Offline Mode flag. POS Error Shown: Yes ## Configure Safe Management Deep Link Manager Role access is required. For more information, see [App Config Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_app.htm&release=264.0.0&type=5 "Customize and manage multiple app configs to tailor the appearance and behavior of POS for different use cases or segments, ensuring each register uses the most appropriate settings for its specific scenario. This flexibility enhances user experience and operational efficiency."). POS Error Shown: Yes ## Configure Print And Email Receipt Deep Link 1. In CMS, go to **Layouts Pages** | **Order Confirmation**. 2. Select Add From Template. 3. Select the Order Confirmation layout. 4. Configure the layout. POS Error Shown: No ## Configure Print And Email Gift Receipt Deep Link 1. In CMS, go to **Layouts Pages** | **Order Confirmation**. 2. Select **Add From Template**. 3. Select the Order Confirmation layout. 4. Configure the layout. POS Error Shown: No ## Configure Print SKU Level Gift Receipt Deep Link 1. In CMS, go to **Layouts Pages** | **Order Confirmation**. 2. Select **Add From Template**. 3. Select the Order Confirmation layout. 4. Configure the layout and publish it. POS Error Shown: No ## Configure Set Cash Tender Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under Supported Tenders, Cash needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: Not Always ## Configure Set Credit Card Tender Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under Supported Tenders, Credit Card needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: Not Always ## Configure Start In Store Pay By Link Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under Supported Tenders, In-Store Pay By Link needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: Not Always ## Configure Start Remote Pay By Link Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under Supported Tenders, Remote Pay By Link needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: Not Always ## Configure Set Gift Card Tender Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under Supported Tenders, Gift Card needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: Not Always ## Configure Set Finance Tender Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under **Supported Tenders**, Finance needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either **Advanced Cart Options Layout** or **Cart Options Layout**. POS Error Shown: Not Always ## Configure Start Multi Tender Flow Deep Link See [Multi-Tendering on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_multitender_config.htm&release=264.0.0&type=5 "Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app.") for more details. POS Error Shown: No ## Configure Set Check Tender Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under **Supported Tenders**, Check needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either **Advanced Cart Options Layout** or **Cart Options Layout**. POS Error Shown: Not Always ## Configure Set Miscellaneous Tender Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under **Supported Tenders**, Miscellaneous needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either **Advanced Cart Options Layout** or **Cart Options Layout**. POS Error Shown: Not Always ## Configure Set Reward Tender Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under **Supported Tenders**, Reward Card needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either **Advanced Cart Options Layout** or **Cart Options Layout**. POS Error Shown: Not Always ## Configure Set Store Credit Tender Deep Link 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store and edit a register. 3. Under **Supported Tenders**, Store Credit needs to be configured. 4. Back in CMS, go to **Apps** | **Store** | **{your app config}**. 5. Edit your app config. 6. Go to **Modules** | **Cart**. 7. Configure either **Advanced Cart Options Layout** or **Cart Options Layout**. POS Error Shown: Not Always ### Set Transaction Discount Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.** 2. Edit your app config. 3. Go to **Modules** | **Cart**. 4. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: No ### Configure Void Cart Before Tendering Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.** 2. Edit your app config. 3. Go to **Modules** | **Cart**. 4. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: No ### Configure Sales Attribution Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.**. 2. Edit your app config. 3. Go to **Modules** | **Cart**. 4. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: No ### Configure Loyalty Lookup Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.** 2. Edit your app config. 3. Go to **Modules** | **Cart**. 4. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: No ### Configure Loyalty Reward Tender Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.**. 2. Edit your app config. 3. Go to **Modules** | **Cart**. 4. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: No ### Configure Show Redeemable Rewards Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.** 2. Edit your app config. 3. Go to **Modules** | **Cart**. 4. Configure either Advanced Cart Options Layout, Cart Options Layout, or Clienteling Profile Layout (Modules > Clienteling). POS Error Shown: No ### Configure Start Standalone Transaction Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.**. 2. Edit your app config. 3. Go to **Modules** | **Cart**. 4. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: No ### Configure Override Tax Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.**. 2. Edit your app config. 3. Go to **Modules** | **POS** 4. Under Discounts & Overrides, enable the Tax Override flag. POS Error Shown: No ### Configure Tax Exempt Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.**. 2. Edit your app config. 3. Go to **Modules** | **Cart**. 4. Configure either Advanced Cart Options Layout or Cart Options Layout. POS Error Shown: No ### Configure Advanced Cart Options Layout Deep Link 1. In CMS, go to **Apps** | **Store** | **{your app config}.**. 2. Edit your app config. 3. Go to **Modules** | **Cart**. 4. Configure Advanced Cart Options Layout. POS Error Shown: No # Configure Default Store Navigation Use Experience Builder to set up the default navigation of your B2B store to use product categories. Customers use the categories to navigate the store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before a category can be included in store navigation, you mark it for inclusion in a menu. To select the categories to include, see [Create Categories and Subcategories](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_create.htm&release=264.0.0&type=5 "Organize products into categories and subcategories to enhance product discoverability. Providing a structure improves search and navigation, making it easier for customers to find what they’re looking for."). Then update your search index for the changes to take effect. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, click the gear icon and select **Settings** | **Navigation**. 4. From the Default Navigation dropdown, select **Edit**. 5. Make sure that **Storefront Categories** is listed under the menu structure. If not, follow these steps to set up the store to use categories in the default navigation. 1. Click **Add Menu Item**. 2. From the Type dropdown, select **Data Source**. 3. From the Data Source dropdown, select **Storefront Categories**. 4. Select **Publicly available**. 6. (Optional) Add links to other pages in your storefront to the default navigation, in addition to the category links. For example, if you have a content page that describes your products or your company’s initiatives, you can add a link to that page. The page link is displayed beside the category links. 1. Click **Add Menu Item**. 2. Enter a name for the menu item. 3. From the Type dropdown, select **Site Page**. 4. From the Data Source dropdown, select the page that you want to link to. 5. Select **Publicly available**. 7. Click **Save Menu**. For a B2B store, if you want buyers and guest users to see only categories that have entitled products, contact Salesforce customer support to enable this functionality. To view a category or its descendent categories, the buyer or guest user must have entitlement to at least one product within the category. If a buyer has a direct link to a category that isn’t entitled, the category still appears but doesn’t show any products. #### See Also - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") # Configure Delivery Estimation for a B2C Store Connect the Commerce Delivery Service to your B2C store and implement the delivery estimation service for checkout. Use this section as a guideline only. Your configuration may differ. ### Required Editions
View supported editions.
Before beginning this task, make sure the [Order Fulfillment Setup section](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5 "The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS).") is enabled. 1. Add a role, instance, and scope. 1. In Commerce Account Manager, select **Account Manager | API Client**. 2. Add the Salesforce Commerce API role and its associated instances. 3. Add the sfcc.commercedeliveryservice.shopper allowed scope. 2. In Business Manager, create custom product line attributes. 1. Log in to Business Manager with Administrative privileges. 2. Go to **Administration | Site Development | System Object Types**, and select **ProductLineItem**. 3. On the Attribute Definitions tab, click **New** and create these attributes. | **Attributes** | **Value** | | --- | --- | | EarliestEstimated​DeliveryDateTime | Type Date+Time | | LatestEstimated​DeliveryDateTime | Type Date+Time | | EstimatedDelivery​Reference | Type String | 3. (Optional) Add the product line attributes to a group. 1. On the Attribute Grouping tab, add a group named Commerce Delivery Service. 2. Edit the group, and add the attributes that you created. | **Attributes** | **Value** | | --- | --- | | EarliestEstimated​DeliveryDateTime | Type Date+Time | | LatestEstimated​DeliveryDateTime | Type Date+Time | | EstimatedDelivery​Reference | Type String | 4. (Optional) Create custom site attributes. 1. In Business Manager, select **Administration | Site Development | System Object Types | SitePreferences**. 2. On the Attribute Definitions tab, click **New** and create these attributes.
Attributes Value
accountManager

Value Type: Enum of Strings

Value = account.demandware.com

Display Value = Prod

cdsClientId

Value Type: String

The UUID in Account Manager

cdsPassword

Value Type: String

Password associated with your UUID/ClientID

realmInstanceId

Value Type: String

Realm_instance identifier

5. (Optional) Set custom site preferences. 1. In Business Manager, select **Merchant Tools | Site Preferences | Custom Preferences**. 2. For Commerce Delivery Service, click **ID Link**. 3. Enter these properties, and then click **Save**. | **Attributes** | **Value** | | --- | --- | | cdsClientId | Find in Account Manager. | | cdsPassword | Password associated with the UUID/ClientID. | | RealmInstanceId | To find, go to **Administration | Global Preferences | Salesforce Order Management Integration Administration**. | 6. (Optional) Call Account Manager to receive the correct bearer token. Use the token in the request that calls the Commerce Delivery Service. ``` function callAccountManager() { var sitePrefs : SitePreferences = dw.system.Site.getCurrent().getPreferences(); var realmInstanceId : String = sitePrefs.getCustom()["realmInstanceId"]; var clientId : String = sitePrefs.getCustom()["cdsClientId"]; var password : String = sitePrefs.getCustom()["cdsPassword"]; var url : String = sitePrefs.getCustom()["accountManager"]; var wholeUrl : String = 'https://'+ url + '/dw/oauth2/access_token?grant_type=client_credentials&​scope=SALESFORCE_COMMERCE_API%3A'+realmInstanceId+'%20​sfcc.commercedeliveryservice.shopper'; var httpClient : HTTPClient = new HTTPClient(); var message : String; httpClient.open('POST', wholeUrl,''+ clientId + '',''+ password +''); httpClient.setRequestHeader('Accept','application/json'); httpClient.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); httpClient.setTimeout(3000); httpClient.send(); if (httpClient.statusCode == 200) { message = httpClient.text; } else { // error handling message="An error occurred with status code "+httpClient.text; } return JSON.parse(message).access_token; } ``` 7. Create a request to use in the body for the call to the CDS Service. 1. Create a request function. ``` function createCdsRequest(applicableShippingMethods, products) { var siteName: String = dw.system.Site.getCurrent().name; let jsonObj = {}; jsonObj.deliveryEstimationSetupName = dw.system.Site.getCurrent().name; jsonObj.shippingCarrier.methods = []; jsonObj.products = []; jsonObj.deliveryAddress = {}; for (var i = 0; i < products.length; i++) { jsonObj.products.push({}); jsonObj.products[i]['stockKeepingUnit'] = products[i].productID; jsonObj.products[i]['quantity'] = products[i].quantityValue; } jsonObj.deliveryAddress.country = request.httpParameterMap.countryCode.stringValue; jsonObj.deliveryAddress.state = request.httpParameterMap.stateCode.stringValue; jsonObj.deliveryAddress.postalCode = request.httpParameterMap.postalCode.stringValue; jsonObj.deliveryAddress.city = request.httpParameterMap.city.stringValue; for (i = 0; i < applicableShippingMethods.length; i++) { jsonObj.shippingCarrier.methods.push({}); jsonObj.shippingCarrier.methods[i]['name'] = applicableShippingMethods[i].ID; } return jsonObj; } ``` 2. Call your request function. ``` applicableShippingMethods = cart.getApplicableShippingMethods(address); products = cart.getProductLineItems(); ... createCdsRequest(applicableShippingMethods, products) ``` 8. (Optional) Use the dates and reference numbers in the storefront. Call the CDS Service to pull the response and use the dates and reference numbers in the storefront. ``` function callCdsService(bearer, request) { var httpClient: HTTPClient = new HTTPClient(); var message: String; var sitePrefs: SitePreferences = dw.system.Site.getCurrent().getPreferences(); var realmInstanceId: String = sitePrefs.getCustom()["realmInstanceId"]; httpClient.open('POST', 'https://api.salesforce.com/commerce/delivery/v1/estimate/delivery-date'); httpClient.setRequestHeader('Authorization', 'Bearer ' + bearer + ''); httpClient.setRequestHeader('Accept', '*/*'); httpClient.setRequestHeader('Content-Type', 'application/json'); httpClient.setRequestHeader('Accept-Encoding', 'gzip, deflate, br'); httpClient.setRequestHeader('Connection', 'keep-alive'); httpClient.setRequestHeader('Correlation-ID', '12345'); httpClient.setRequestHeader('SALESFORCE_COMMERCE_API', '' + realmInstanceId + ''); httpClient.setRequestHeader('x-salesforce-region', 'us-east-2'); httpClient.setTimeout(5000); httpClient.setBody(payload); httpClient.send(request); if (httpClient.statusCode == 200) { message = httpClient.text; } else { // error handling message = "An error occurred with status code " + httpClient.errorText; } return message; } ``` **Sample request** These fields are mandatory: methods, name, products, stockKeepingUnit. ``` { “deliveryEstimationSetupName”: “{externalName}”, "shippingCarrier": { "name": "FEDEX", "methods": [ { "name": "GROUND" } ] }, "products": [ { "stockKeepingUnit": "PROD123", "quantity": 3, } ], "deliveryAddress": { "country": "USA", "state": "WA", "city": "Seattle", "postalCode": "98108", "latitude": 25.191274, "longitude": -80.13145 }, "excludedLocations": [ "US-EAST", "US-WEST" ] } ``` **Sample response** ``` { "estimatedDeliveryReference": "e40cf167-dbd7-11ee-ae25-f1239303df20", "deliveryEstimates": [{ "shippingCarrierMethod": "Ground", "productDeliverEstimations": [{ "stockKeepingUnit": "1", "quantity": 2, "routingCalculationType": "NONE", "estimatedShipDate": { "type": "Default", "min": "2024-03-08T13:00:00", "max": "2024-03-08T13:00:00" }, "estimatedDeliveryDate": { "type": "Default", "min": "2024-03-14T13:00:00", "max": "2024-03-17T13:00:00" } }, { "stockKeepingUnit": "2", "quantity": 3, "routingCalculationType": "NONE", "estimatedShipDate": { "type": "Default", "min": "2024-03-08T13:00:00", "max": "2024-03-08T13:00:00" }, "estimatedDeliveryDate": { "type": "Default", "min": "2024-03-14T13:00:00", "max": "2024-03-17T13:00:00" } } ] }, { "shippingCarrierMethod": "2-Day", "productDeliverEstimations": [{ "stockKeepingUnit": "1", "quantity": 2, "routingCalculationType": "NONE", "estimatedShipDate": { "type": "Default", "min": "2024-03-08T13:00:00", "max": "2024-03-08T13:00:00" }, "estimatedDeliveryDate": { "type": "Default", "min": "2024-03-10T13:00:00", "max": "2024-03-12T13:00:00" } }, { "stockKeepingUnit": "2", "quantity": 3, "routingCalculationType": "NONE", "estimatedShipDate": { "type": "Default", "min": "2024-03-08T13:00:00", "max": "2024-03-08T13:00:00" }, "estimatedDeliveryDate": { "type": "Default", "min": "2024-03-10T13:00:00", "max": "2024-03-12T13:00:00" } } ] }, { "shippingCarrierMethod": "Overnight", "productDeliverEstimations": [{ "stockKeepingUnit": "1", "quantity": 2, "routingCalculationType": "NONE", "estimatedShipDate": { "type": "Default", "min": "2024-03-08T13:00:00", "max": "2024-03-08T13:00:00" }, "estimatedDeliveryDate": { "type": "Default", "min": "2024-03-08T13:00:00", "max": "2024-03-09T13:00:00" } }, { "stockKeepingUnit": "2", "quantity": 3, "routingCalculationType": "NONE", "estimatedShipDate": { "type": "Default", "min": "2024-03-08T13:00:00", "max": "2024-03-08T13:00:00" }, "estimatedDeliveryDate": { "type": "Default", "min": "2024-03-08T13:00:00", "max": "2024-03-09T13:00:00" } } ] } ] } ``` **Sample parse through response** ``` // Create two maps, min and max var maxDate = new Map(); var minDate = new Map(); ... // Apply response values to display when seeing all Shipping Methods in the order for (i = 0; i < JSON.parse(response).deliveryEstimates.length; i++) { if (JSON.parse(response).deliveryEstimates[i].shippingCarrierMethod == applicableShippingMethods[i].ID) { minDate.set(JSON.parse(response).deliveryEstimates[i].shippingCarrierMethod, new Date(Date.parse(JSON.parse(response).deliveryEstimates[i].productDeliverEstimations[0].estimatedDeliveryDate.min)).toLocaleDateString()); maxDate.set(JSON.parse(response).deliveryEstimates[i].shippingCarrierMethod, new Date(Date.parse(JSON.parse(response).deliveryEstimates[i].productDeliverEstimations[0].estimatedDeliveryDate.max)).toLocaleDateString()); } } ... // Apply response values to each Product Line Item (OrderItem) for (var i = 0; i < JSON.parse(response).deliveryEstimates.length; i++) { if (JSON.parse(response).deliveryEstimates[i].shippingCarrierMethod == cart.getDefaultShipment().getShippingMethod().ID) { for (var c = 0; c < cart.object.productLineItems.length; c++) { cart.object.productLineItems[c].custom.EstimatedDeliveryReference = JSON.parse(response).estimatedDeliveryReference; cart.object.productLineItems[c].custom.EarliestEstimatedDeliveryDateTime = new Date(Date.parse(JSON.parse(response).deliveryEstimates[i].productDeliverEstimations[0].estimatedDeliveryDate.min)); cart.object.productLineItems[c].custom.LatestEstimatedDeliveryDateTime = new Date(Date.parse(JSON.parse(response).deliveryEstimates[i].productDeliverEstimations[0].estimatedDeliveryDate.max)); } } } ``` 9. (Optional) Update any .isml pages to use the values returned in the response from the Commerce Delivery Service. In this example, to display the dates, minimum and maximum dates are placed in a new Map() and then displayed based on the shipping method. ```javascript
Delivery Estimation: $ { pdict.MinDate.get(shippingMethod.ID)} - $ { pdict.MaxDate.get(shippingMethod.ID)} < /div> ``` Next step: [Enable and Sync a Delivery Estimation](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_sync_to_cds.htm&release=264.0.0&type=5 "After you’ve configured estimations and shipping, and you’ve connected Commerce Delivery Services to B2C Commerce as necessary, enable your delivery estimation.") #### See Also - [Delivery Estimations for Order Management Overview](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_overview.htm&release=264.0.0&type=5 "Provide customers with accurate delivery times by showing delivery dates on your store’s product detail and checkout pages.") # Configure Deposits at Item Level for POS Customize deposit percentages within the POS app to meet specific business needs. Configure rules in CMS for different store types and define requirements based on product attributes or specify that fulfillment and shipping methods require full payment. Deposit details are clearly displayed in the POS app, including during returns and order edits, ensuring transparency and control over payment options. - POS App Build: 10.1.1 or greater - Platform Support: Ipad & iPhone - Offline Support: No - Support Payment Gateways: Adyen Adyen AMS1 and M450 terminals are supported for app builds 10.5.1 or greater. ## Turn On Deposits 1. In CMS, go to **Store Management** | **Store Settings** | **Payment**. 2. Expand **Advanced**. 3. Turn on the flag, Allow Orders To Be Placed With Partial Payment/Deposits (allowPartialPayments). ## Configure Default Deposits Configure default deposits based on store type. Only one configuration is allowed per store type. 1. In CMS, go to **Store Management** | **Deposit Configuration**. 2. Click **Create**. 3. Under Store Type, select the type of store for this deposit configuration (for example Regular or Outlet). 4. Under Default Deposit Percentage, configure a default deposit percentage for products not defined in advanced deposits. For example, entering 100% means full payment will be required by default. ## Configure Advanced Deposits Configure deposit rules based on product attributes. 1. In CMS, go to Advanced Deposit Percentage Based on Product Attribute. 2. Under Product Attribute, select a product attribute to apply a deposit rule (e.g., ProductID). 3. Under Deposit Rules, enter an attribute value (for example 3661601594847). 4. Enter the deposit percentage for the product attribute and its value (for example 75%). 5. (Optional) To enforce deposit collection before completing an order, turn on the flag Deposit Must Be Collected to Complete Order. If this flag is disabled, the deposit amount still displays to the customer on the POS app but as a suggestion. ## Configure Full Payments Configure fulfillment and shipping methods that require full payment. 1. In CMS, go to Scenario(s) When Deposit is Not Allowed. 2. Under Deposit isn’t allowed for selected fulfillment type(s), select the fulfillment types that require full payment (for example, In Store). See [Omnichannel (V2) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_v2_overview.htm&release=264.0.0&type=5 "Integrate shopping experiences across channels with Point of Sale's Omnichannel."). 3. Under Deposit is not allowed for selected shipping method ID(s), select the shipping method IDs that require full payment. See [Shipping Methods Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_shipping_methods_management.htm&release=264.0.0&type=5 "Create different types of shipping methods for orders and transitions in Point of Sale CMS."). ## Configure Tokenized Deposits For Adyen terminals, merchants can opt to tokenize deposit orders made with credit cards or Tap to Pay. If the deposit total is less than the order total and tokenization is configured, the cart will be tokenized. After a customer pays on the terminal (by inserting a credit card), a tokenized value for that credit card is created for the order. This tokenized value allows merchants to make additional payments later (payments against the remaining balance). You can find this information in the TLogs after an order is placed. Note: Tokens are stored per merchant account by default. Token groups can be created under a company account if you want to have multiple merchant accounts to share tokens. Reach out to your Adyen Support team to turn on token groups. 1. In CMS, go to **Integrations** | **Payment Gateways**. 2. Create or edit an Adyen configuration. 3. Go to **Terminal Configuration** | **Payment Tokenization Events** then select **Deposits**. # Configure Discounts and Price Corrections for POS Configure the Point of Sale settings and manager approval policies for discounts and price corrections before applying them in the POS app. You can also limit the changes that associates can make. ## Allow Item-Level Discounts, Price Corrections, and Tax Exemptions Select which fulfillment types allow item-level discounts and price corrections, and control whether associates can apply tax exemptions to individual products. 1. In CMS, go to **Apps**. 2. To edit you store’s app configuration, hover over your store’s iPad image, then click ![pencil icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/pos_pencil_icon.png) **Edit**. 3. Go to **Modules** | **POS**. 4. Under Discounts & Overrides, edit the **Product-Level Discounts, Overrides, and Tax Exemptions** setting. ## Enable Transaction-Level Discounts Let associates apply a discount to an entire transaction instead of to individual items at checkout. 1. In CMS, go to **Apps**. 2. To edit you store’s app configuration, hover over your store’s iPad image, then click ![pencil icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/pos_pencil_icon.png) **Edit**. 3. Go to **Modules** | **POS**. 4. Under Discounts & Overrides, turn on **Transactional Discounts**. ## Set Discount Limits Configure the maximum amount or percentage discount that a store associate can apply without requiring a manager's override. 1. In CMS, go to **Store Management** | **Store Settings** | **Cash**. 2. Expand **Transaction Limits**. 3. Set the maximum amount or maximum percentage that a store associate can apply at checkout. ## Exclude Price-Corrected Items from Promotions Control whether promotions apply to items that have a manual price correction, so associates can set a final price without stacking an extra promotional discount. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This feature is available in POS app builds 12.5.1 and later, including in offline mode. 1. In CMS, go to **Store Management** | **Store Settings** | **Promotion**. 2. Turn on **Exclude Price-Corrected Items from Promotions**. When this setting is off, price corrections and promotions stack on the same item, which is the default behavior. ## Create Manager Approval Policies for Manual Discounts and Price Corrections Configure approval policies for both item-level and transaction-level discounts and price corrections. When these policies are in place, manager credentials authorize adjustments made in the POS app. 1. In CMS, go to **Store Management** | **Associates** | **Approval Policies Configuration**. 2. Click **Create**. 3. For Policy Feature, select: - Line Item Discount for item-level discounts. - Transaction Discount for transaction-level discounts. - Price Correction for price overrides. 4. For Approving Policies, select roles that can approve this policy. ## Create Reason Codes for Discounts and Price Corrections Configure [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.") for discounts made on the app before creating them. 1. In CMS, go to **Store Management** | **Reason Codes**. 2. Create codes for item-level discounts, transaction-level discounts, and price corrections. # Configure Displayable Fields in Commerce (Beta) Before you enable displayable fields for your B2B Commerce org, you must set up displayable fields in the Commerce App and configure product fields in Experience Builder for all of your stores. You can complete steps 1 and 2 in either order, but the product fields that you configure in Experience Builder must be set up as displayable before you enable displayable fields to see improvements on your search, product, cart and checkout pages. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Displayable Fields is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this pilot or beta service is at the Customer's sole discretion. ![Configure displayable fields in Commerce.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_configure_displayable_fields_graphic.png) ## Set Up Displayable Fields [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) In the Commerce App, select displayable fields. See [Set Up Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_displayable_fields.htm&release=264.0.0&type=5 "Set up the category, custom, and standard product fields that you want to enable as displayable on your search, product, cart, and checkout pages for B2B Commerce stores."). ## Configure Product Fields [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) In Experience Builder, configure product fields. See [Configure Product Fields for Search Results in a Commerce Store (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_product_fields_for_search_results.htm&release=264.0.0&type=5 "Configure the standard product fields that you want to display in the search results on your search, product, cart, and checkout pages."). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important Repeat steps 1 and 2 for all of your stores before completing the next step. ## Enable Displayable Fields [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) In the Commerce App, enable displayable fields. See [Enable Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_displayable_fields.htm&release=264.0.0&type=5 "Enable displayable fields to decrease page load times and retrieve product data faster on search, product, cart, and checkout pages for B2B Commerce stores."). #### See Also - [Displayable Fields for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_displayable_fields_top.htm&release=264.0.0&type=5 "Displayable fields help to decrease page load times and retrieve product data faster on search, product, cart, and checkout pages.") # Configure Dynamic Revenue Orchestrator to Pause Status Changes Coordinate fulfillment between Dynamic Revenue Orchestrator (DRO) and Order Management by configuring pause steps that wait for specific Order Management milestones. For example, pause fulfillment until all ordered items are delivered. Before you begin, turn on Dynamic Revenue Orchestrator in your org. Map OMS fields to your context definition so Expression Sets can evaluate them when determining whether to release pause steps in orchestration plans. 1. Extend your context definition to map OMS fields. 1. In Setup, go to **Dynamic Revenue Orchestrator Settings** and select the preconfigured context definition. 2. Add context tags for the OMS fields you want to track. Common examples: - **ItemStartQuantity**: Maps to OrderItemSummary.QuantityOrdered - **ItemEndQuantity**: Maps to OrderItemSummary.QuantityDelivered or QuantityShipped 3. Map these tags to fields on the SalesTransactionItem object. 4. Save the context definition. 2. Create a transient attribute for calculations. Expression sets require transient attributes to hold temporary calculation values. 1. In your context definition, add a custom attribute to the same node as your mapped fields. 2. Set the **Display Name** and **Description** to match the attribute name exactly. 3. Mark the attribute as **Transient** so that the data doesn’t persist. 4. Save your changes. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important If Display Name and Description don’t match the attribute name, the ExpressionSet evaluation fails. 3. Create an expression set for fulfillment conditions. 1. In Setup, search for **Expression Sets** and create an expression set. 2. Select your extended context definition. 3. Set **Usage Type** to **Fulfillment Condition**. 4. Configure the logic to compare OMS field values. Example: Release pause when all items are delivered. 5. Add a **List Group** to handle multiple OrderItemSummaries in an OrderSummary. 6. Calculate the difference between ItemStartQuantity and ItemEndQuantity for each item. 7. Sum the differences by using the Aggregate List function. If all quantities match, the sum equals 0. 8. Add a local boolean variable named `isExecuteStep` with default value `False`. 9. Set the condition: If sum equals 0, set `isExecuteStep = True`. 10. In the final calculation step, check **Include in output** for the `isExecuteStep` variable. 11. Save the ExpressionSet. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important Set the output variable exactly to `isExecuteStep` (case sensitive). When True, DRO resumes the step. When False, DRO keeps the step paused. 4. Configure a pause step in your fulfillment workflow. 1. In your fulfillment step definition, add a new **Pause** step. 2. In the step configuration, select **Use ExpressionSet** as the condition type. 3. Select the ExpressionSet you created in Step 3. 4. Configure how often DRO re-evaluates the condition (polling interval). 5. Save your fulfillment step definition. When an order is submitted, DRO evaluates the expression set at each polling interval. After Order Management updates the OrderItemSummary quantities and the condition returns True, the pause step releases and fulfillment continues. ![Example Use Cases](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_example.png) Example Use Cases | Pause Until | ExpressionSet Logic | | --- | --- | | All items delivered | OrderItemSummary.QuantityDelivered = QuantityOrdered | | All items shipped | OrderItemSummary.QuantityShipped = QuantityOrdered | | Partial shipment threshold | OrderItemSummary.QuantityShipped >= (QuantityOrdered × 0.8) | | Inventory allocated | OrderItemSummary.QuantityReserved = QuantityOrdered | Troubleshooting | Issue | Resolution | | --- | --- | | The ExpressionSet shows "Something went wrong." | Define `isExecuteStep` and select **Include in output**. | | The context tags aren’t available in the ExpressionSet. | Confirm the Display Name and Description match the attribute name for transient attributes. | | The pause step never releases. | Check that `isExecuteStep` is a boolean variable and the logic sets it to True when conditions are met. | | A generic evaluation error shows. | Turn on DynamicCommonOrchestrator org permission. | #### See Also - [Dynamic Revenue Orchestration with Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_dro_order_management.htm&release=264.0.0&type=5 "Use the Dynamic Revenue Orchestrator (DRO) with Order Management to manage orders containing both physical products and digital services. With DRO and Order Management, customer service reps (CSRs) can see physical logistics and digital orchestration in one order summary, without switching between systems.") - [Expression Sets](https://help.salesforce.com/s/articleView?id=ind.expression_sets.htm&type=5&language=en_US) - [Context Definitions](https://help.salesforce.com/s/articleView?id=ind.context_service_context_definitions.htm&type=5&language=en_US) - [Pause Steps in Fulfillment Workflows](https://help.salesforce.com/s/articleView?id=sf.dro_pause.htm&type=5&language=en_US) # Configure eCDN for Staging in Business Manager Starting with the 24.4 release, Business Manager will support configuring eCDN for staging environments. eCDN settings are specific to each instance (development, staging, and production), and you manage them individually. When you create a proxy zone in production, the zone doesn’t replicate a corresponding proxy zone in your development or staging instance. The new eCDN configuration feature simplifies onboarding new sites for staging instances, making it easier to mimic your production instance. Because the configuration uses the existing CDN-API, you can use either Business Manager or the API to manage your eCDN configurations. ![Embedded CDN Settings Menu Selection](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/24_4/rn_b2c_24_4_ecdn_staging_1.png) ![Embedded CDN Settings Page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/24_4/rn_b2c_24_4_ecdn_staging_2.png) #### See Also - [Configure the Embedded CDN (The documentation at this link will be updated when the release notes are published)](https://help.salesforce.com/s/articleView?id=cc.b2c_configure_the_embedded_cdn.htm&language=en_US) # Configure eCDN Zones for Staging Instances You can now configure eCDN zones for staging instances using the new CDN API. Create an eCDN zone and certificate or implement an existing custom certificate. You can upload customer certificates to test Salesforce Commerce APIs. You can also configure vanity host names for staging instances on eCDN. How: To set up eCDN zones for staging instances: - Create an eCDN zone and certificate or implement an existing custom certificate - Migrate site traffic - Maintain and renew certificates # Configure Elavon Terminal for Payments Set up Elavon Terminals to use with the Point of Sale (POS) app. The Elavon card reader terminals can process payments using Ingenico Move 5000, Lane 7000, and Link 2500 Elavon card reader terminals. ## Prerequisites - Modern POS App Build: 5.9.1 and later - Platform Support: iPhone & iPad - Offline Support: no ## Set up Point of Sale CMS for Elavon Terminal Use Configure the Point of Sale CMS settings so you can use Evalon Terminals with the Retail Cloud Point of Sale (POS) app. ### Set App Config Settings Turn on Elavon as a supported payment reader in your app configs. 1. Go to **Apps** and edit the app config. 2. Go to **Modules > Peripherals > Card Readers**. 3. Under **Supported Card Readers For Store Associate Checkout**, check "**Elavon**". 4. Under **Default Card Reader**, select "**Elavon**". 5. Save your changes. ### Set Payment Gateway Settings Create a payment gateway for Elavon. 1. Go to **Integrations > Payment Gateways**. 2. Select **Create** in the upper right corner. 3. Under **Payment Gateway**, select "**Elavon**". 4. Configure the rest of the fields by referring to the table:
Setting Description
General Settings
Environment* Select the type of account for this configuration
Fulfillment Type* Select "Default" if you want to create this configuration for a POS app to perform transactions
Store ID* Select "Default" for all stores or a specific store
Payment Method* Select the payment method for this configuration
Merchant Configuration
Default Device ID*

Enter your Elavon Terminal ID. Note that this setting can be overridden with the (optional) register-level settings in Store Management > Registers by editing a particular register entry:

  • Under Card Reader > Model, set the model to "Elavon"
  • Under Card Reader > Terminal ID, set the Terminal ID to the register-specific setting
URL Base* Enter your Elavon's Gateway URL
Merchant Organization ID* Enter your Elavon's Location Name
Services Select the services supported for this configuration
Terminal Configuration
Terminal Gateway ID* Enter your Elavon Chain Code
Terminal Request Timeout Interval In Seconds Time interval determines how long the POS will wait for a response from the terminal for payment. The recommended time is 150 seconds.
Payment Status
Payment Status Check API Timeout In Seconds The payment status check API timeout. The minimum interval is five seconds, and it can be adjusted up to 150 seconds based on the store's network quality. Setting the interval too short won’t give the terminal sufficient time to process and respond.
Other Settings
Has Cart Summary On Payment Terminal Turn on to show the cart summary on the payment terminal
Manual Payment Settings
Manual Credit Card Entry On Terminal Turn on to permit manual credit card entry on the payment terminal
_\*An asterisk (\*) indicates a required field_ ### Configure Order Number Range Settings 1. Go to **Advanced > Order Number Range Config**. 2. Select **Create** and select "**Payment Transaction ID Policy**". 3. Configure the rest of the fields by referring to the table:
Setting Description
General Information
Operating Mode* Noneditable field. Verify this is set to "Online"
Entity Type* Noneditable field. Verify this is set to "PAYMENT_TRANSACTION_ID"
Number Configuration
Prefix Verify this field is left empty
Starting Order Number* The starting number for Elavon transactions. We recommend setting the starting value as 0000001.
Store and Device-Specific Configuration
Store ID* Set this to "DEFAULT"
Payment Device ID* Set this to "DEFAULT". If there are multiple device IDs available for the merchant, create PAYMENT_TRANSACTION_ID for each device ID
_\*An asterisk (\*) indicates a required field_ ## View POS App Flow with Elavon Terminals Understand how the Elavon Terminal functions together with the Point of Sale (POS) app. Connect to Elavon Terminal on POS Device Manager Screen Elavon Terminals can be connected using Wi-Fi (Move 5000, Link 2500) as well as wired Ethernet (Lane 7000). It's necessary for the terminal and the iPad (POS register) to be on the same network to establish communication. ### Add and Connect to a Terminal The terminal is added to the device manager screen by selecting "**Add Terminal**" under the Terminal section.![The Add Terminal option under the Terminal heading in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_pos_add_term.png) To do this, enter the IP address of the terminal. You can find the IP address by first selecting **0** and then pressing the **green O** on the Elavon pin pad and entering the admin password.![The Add Terminal window where you enter the terminal's IP Address](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_add_elavon_term_pos.png) After you select "**add**," the terminal is added, and a connection is established instantly.![The Elavon terminal added and showing in the Terminal section of the POS app app.rt\_cms\_](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_added_terminal_elavon_pos.png) ### Verify Connectivity The info icon next to the terminal can be used to view the IP address of the terminal and to run diagnostics to check the connectivity between the terminal and the PS POS App. If you select "**Run Diagnostics**", the app establishes a connection and confirms it. If the connection fails, the app shows a connection failure message along with the reason for the failure.![The Run Diagnostics option for the IP Address of the terminal that you connected to the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_ip_address.png) Next is a screenshot depicting a successful connection:![A Connection Success message in the POS App for the terminal that you entered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_term_ip_connected.png) ### Payment Using Card Option on Cart Screen The **Credit Card** option on the **Split Cart** screen allows you to start a payment for the order using the connected Elavon terminal. If there's no Elavon terminal connected for payment, the POS app permits you to go to Device Manager to add a new terminal. If there's no Elavon terminal connected for payment, the POS app permits you to go to the device manager screen to add a new terminal. If there's no Elavon terminal connected for payment, the POS app permits you to go to the device manager screen to add a new terminal. The terminal prompts for card insertion or swiping, processes the payment, and provides **APPROVED/DECLINED** messages based on the success of the transaction. An approved payment in the Elavon terminal shows the **Thank You** screen on the app, while a declined payment is followed by the app showing the details of the issue in a popup. Next are some screenshots for the same: ![The Present Your Card popup in the POS App](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_pay_using_card_screen.png)![The Thank You screen for an approved transaction in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_payment_approved_elavon_pos.png) ### Card Payment in Multitender screen Cards are one of the payment options available on the **Multitender** screen. Users can use multiple payment cards for their transactions and also have the option to combine card payments with other tender options. Next are some screenshots demonstrating this process: ![Adding a credit card payment amounf in the Add Card window on the POS app app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_pos_add_card.png)![The Present Your Card popup in the POS App](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_pay_using_card_screen.png)![The Payment Summary screen in the POS App](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_pos_app_pay_summary.png)![The Thank You screen for an approved transaction in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_payment_approved_elavon_pos.png) ### Elavon/Fusebox Dashboard Terminal Configuration The **Location Name**, **Chain Code**, and **terminal ID** are the key parameters to set up the payment gateway configuration for Elavon in CMS. This will be created and provided by the Elavon support team during the initial setup. ### Elavon/Fusebox Dashboard Transaction History You can view the transaction history by using the **Transaction Management** option in the Elavon portal. To find a specific order's payment, you can use the search option in transaction management and enter the order number in the user-defined field 1. Additionally, you can view the transactions from the last 24 hours by using the "**24-HOUR TRANSACTION SUMMARY**" dashboard on the home screen. Transaction Management Left Hamburger Menu![The Fusebox screen showing the Elavon Global Gateway](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_transaction_mgmt_menu.png) Transaction Search Option![The Transaction Search Option in the Transaction List section of the Elavon Global Gateway](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_transaction_search.png) Transaction Search By Order ID in User-Defined Field 1![Searching for a transaction by order ID in the Transaction Search section.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_search_order_id_elavon.png) 24-Hour Transaction Summary in Home Screen![THe Elavon Global Gateway shoing a list of transactions in the past 24 hours.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_transaction_summary.png) ## View Known Issues and Limitations Understand common issues that you sometimes encounter if configuring or using Elavon Terminals with Point of Sale. ### Simultaneous Payment Attempts from Multiple Registers to the Same Terminal If many registers try to process payments through the same terminal at the same time, the transactions fail. Users are notified with one of these errors. - "Transaction Declined. Reason: \*SLR Busy" - "Connection terminated by the host. If there is an ongoing transaction on the terminal, cancel it by pressing the red X button." To resolve the issue, close the error message by tapping "**OK**" on each register. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For configurations where multiple registers share the same terminal, verify only one register processes a payment at a time. ### Connectivity Issues Locking Terminal in 'Processing' State Offline mode and the "Store and Forward" (SAF) feature supported by Elavon aren't available in Modern POS. Due to this limitation, if network connectivity is lost, the terminal can remain in a "processing" state. To recover, cancel the transaction and retry. See: [View Features Supported by Elavon](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_features_supported_elavon.htm&release=264.0.0&type=5 "Stay informed about transaction payment capture, offline support, and other key functionalities of Elavon features and how they interact with Point of Sale.") ### Sale Can't Be Initiated After 5-Minute Delay In Simplify Version 2.02.x or earlier, waiting more than 5 minutes can prevent initiating a sale on the terminal. To resolve this, update to the latest version by using the steps under "Update Simplify Version" in the [Elavon - Onboarding & Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_onboard_troubleshoot_elavon.htm&release=264.0.0&type=5 "Configure your Elavon terminal to work with Point of Sale for secure payment acceptance, whether in-store or online."). To check your current Simplify version, press "**0**" on the terminal. ### Getting "Transaction declined Reason: CALL AUTH CENTER" error during payment Check with Elavon team, if the gateway is in "backup" mode and declining the dollar amount. # Configure Email and Print Templates to Show Product Bundle Details in Point of Sale Set up email and print templates to show the individual items in a product bundle. These template types support bundle details: - Customer Order Confirmation - Auto. Customer Order Confirmation - Order Print Receipt - Order Refund Confirmation - Transaction Print Receipt Get the bundle component section into your template by using one of these methods: - Use a default template (recommended). Default templates include the bundle component section with the correct column structure. - Add the section manually. Only use this method if you have a heavily customized template you don't want to rebuild from scratch. #### See Also - [_Salesforce Help:_ Product Bundles in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_product_bundles.htm&release=264.0.0&type=5 "A product bundle groups a parent item with required child items. It sells, returns, and ships as one unit.") ## Use a Default Template The default templates contain the bundle component section. 1. In CMS, go to **Layouts** | **Layout Templates** | **Email & Print Templates**. 2. Select **Add From Template**, then select the template type. 3. Edit the layout without removing the bundle component section. 4. Publish the layout. 5. Repeat these steps for each required template type. ## Add the Bundle Component Section Manually 1. In CMS, go to **Layouts** | **Layout Templates** | **Email & Print Templates**, then edit the template. 2. In the visual editor, click inside the row that contains **Product Template Placeholder End**, then select **Insert row after** from the table toolbar twice. ![Visual editor with two new rows inserted below the Product Template Placeholder End row.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_bundle_insert_two_rows.png) 3. Click inside the first new row and select **PS Tags | Products | Bundle Component Template Placeholder Start**. ![Bundle Component Template Placeholder Start tag inserted in the first new row.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_bundle_placeholder_start_tag.png) 4. After the start tag, select **Insert | Table** and add a 4x1 table. ![A 4x1 table added in the visual editor after the start tag.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_bundle_insert_4x1_table.png) 5. Configure the bundle component row. - First cell: copy the product image from the bundle item row. - Second cell: insert **Product Title** and **Product ID** from **PS Tags | Products**. Add a SKU: label before the product ID. - Third cell: insert **Product Quantity** from **PS Tags | Products**. - Fourth cell: leave blank. Don't add a currency symbol or a price tag. ![Bundle component row with the product image, title, ID, and quantity configured across the first three cells.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_bundle_configure_component_row.png) 6. Open **Table Properties** for the 4x1 table and set width to 100%, border width to 0, border style to None when available, and height to automatic or blank. ![Table Properties for the 4x1 table with width set to 100 percent and borders removed.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_bundle_table_properties.png) 7. Drag the vertical column borders to align the component row. - Position the image and title to the left of their positions in the regular product row. - Keep the quantity column in the same position and width as the regular product quantity column. - Use the fourth, blank cell for all space to the right of the quantity column. 8. Click inside the second new row and select **PS Tags | Products | Bundle Component Template Placeholder End**. ![Bundle Component Template Placeholder End tag inserted in the second new row.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_bundle_placeholder_end_tag.png) 9. Confirm that the visual editor shows, in order: **Product Template Placeholder End**, **Bundle Component Template Placeholder Start**, the 4x1 bundle component table, then **Bundle Component Template Placeholder End**. 10. Select **Publish**. The visual editor can show faint dotted table guides even when border width is 0. Use **Send Test Email** or the applicable receipt flow to confirm that the delivered output has no visible component-table or cell borders. # Configure Email Tags Email tags in Point of Sale are placeholders for email and print templates that pull specific information from data that are then shown instead of the actual placeholder. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Using the tag {customer\_ship\_address} would display the customer’s shipping address. Email Tags are an added convenience that helps save time by automatically customizing information for users and allowing dynamic data to be used. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Though PS and Email share common Tags, they differ in syntax and are used differently. PS Tags are used exclusively for layouts while Email Tags are used for email and print templates. PS Tags are distinguishable by a colon with letters :ps\_store\_id while Email Tags have brackets {store\_id}. ## Use Email Tags 1. Create an email template by going to **Store Management** | **Email & Print Templates**. 2. Create a template either from scratch or a pre-configured one. 3. In the toolbar, click on the PS Tags dropdown and choose which tag you wish to insert. ![The email template editor indicating the location of the PS Tags option on the toolbar menu.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_tags_config_email_template_editor.png) 4. Once you have all the changes made, save and publish your template by clicking on Publish in the upper right. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Not all tags are applicable in all the templates, refer to [Receipt Print and Email Component Tags by Receipt Section](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_by_component.htm&release=264.0.0&type=5 "Understand the print and email tags for the content components of Point of Sale receipts and see the templates they are included in.") for more information. ## List View and Grid View In CMS, there are two ways to display the products in a template - list view and grid view. With the list view, the product information will sit below one another. While with the grid view, the product information will sit vertically and horizontally from each other. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Share Cart and Share Collection are the only preconfigured templates that support the grid view. All other templates support the list view. ### Email Template with Product List View The list view tag renders X number of products. The product information (e.g., `{ProductTitle}`) between the start (`{product_template_placehodler_start}`) and end (`{product_template_placehodler_end}`) tags are duplicated for each product. The variables are then substituted with the corresponding product information. ![Specification of a product list using the product template placeholder tag in the email template editor.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_tags_config_email_list_spec.png) #### Tag Structure ``` {product_template_placeholder_start} {ProductID} {ProductUrl} {ProductImageUrl} {ProductTitle} {ProductListPrice} {ProductSize} {ProductColor} {ProductQuantity} {product.CustomString12} {product_template_placeholder_end} ``` #### Dynamic Tags For product information, besides the static tags (e.g., `{ProductID}`), the Email Template also supports dynamic tags (e.g., `{product.CustomString12}`, dynamic tags use product as prefix to denote). ![The email template editor showing the selection of a dynamic tag from the PS menu.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_tags_config_email_list_spec.png) These tags can be enabled by going to **CMS** > **Feeds**\> **Field Mappings**. To enable a tag, map a new/existing source field to the desired target field and the target field will show in **Email Template** > **PS Tags** > **Products**. ### Email Template with Product Grid View Email templates with grid views are structured to display a product list in two columns. Similar to the list view, the grid view renders X number of products. However, the grid view also allows for different UI treatments of odd (1st product, 3rd product, etc.) and even (2nd product, 4th product, etc.) products. The grid view has an additional tag, {product\_template\_even\_start\_1}, which communicates to the platform to access and display the even product's properties in the second column. The products are displayed in their respective columns until there are no more products to display. ![Specification of a product grid using the product template placehodler tag in the email template editor.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_tags_config_email_grid_spec.png) #### Tag Structure `{product_template_placeholder_start}`
Odd Products Even Products
{ProductUrl1}
{ProductImageUrl1}
{ProductTitle1}
{ProductListPrice1}
{ProductSize1}
{ProductColor1}
{product_template_even_start_1}
{ProductUrl2}
{ProductImageUrl2}
{product_template_even_end_1}
{product_template_even_start_2}
{ProductTitle2}
{ProductListPrice2}
{product_template_even_end_2}
{product_template_even_start_3}
{ProductSize2}
{product_template_even_end_3}
{product_template_even_start_4}
{ProductColor2}
{product_template_even_end_4}
`{product_template_placeholder_end}` # Configure Employee Discounts in Point of Sale POS lets employees enter their information to receive purchase discounts. To apply discounts, create a Customer rule that checks for an employee when you create a promotion. You can also configure employee validation using an SPI to validate employee information before applying promotions. - Modern POS App Build: 8.0.1 or greater. 9.3.1 or greater for validation - Platform Support: iPhone & iPad - Offline Support: No To apply an employee discount to one or more products or an entire transaction, add a Customer rule that checks for an Employee while creating a promotion. See [Create Product Promotions in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&release=264.0.0&type=5 "Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes."). Configure the employee discount deep link under Employee Discounts in Cart Options. To configure a manager's approval for Employee Discount sales, see [Store Associate Approval Policies](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_approval_policies.htm&release=264.0.0&type=5 "Control which features and roles in Point of Sale CMS require approval."). Point of Sale supports employee validation using an SPI. After inputting employee information into the app, a request is sent to the endpoint with the input data. If the information is valid, the promotions are applied. If not, an error message is displayed to the store associate, and the promotions aren’t applied. 1. In CMS, go to **Integrations** | **Customer Connectors**. 2. To configure the SPI, select **Create**. 3. Under Connector Type, select "SPI". 4. Under Endpoint Name, select "VERIFY\_EMPLOYEE - Verify Employee". 5. Under API Endpoint, enter the URL endpoint of the SPI. 6. Under Integration Type, enter "HTTP\_POST". 7. Under JSON Headers, enter "{"contentType": "application/json"}". 8. Save your changes. ## Employee Discount Behavior in POS Employee discounts in Retal Cloud POS can be applied by tapping the Employee Discount Deep Link during a sale, which opens a window to input employee information. If configured, the Employee Discount Validation SPI validates the employee's information and applies the appropriate discount to the transaction. If you return or exchange something, the original employee information is shown but you can't change it. The cart must apply the discount again and revalidate the employee if needed. ### Sales Add a product to the cart and apply an employee discount by tapping on the Employee Discount Deep Link. The Employee Info window displays allowing you to input the employee's information. Note that this window isn’t a configurable layout. After all the information is entered and you tap **Continue**, the user is aked to confirm or edit the information. ### Validation If the Employee Discount Validation SPI is configured after tapping "Apply," the employee's information is validated. If successfully validated, the app automatically applies the appropriate discount(s) to the transaction. However, if ‌validation through the SPI fails, the app indicates the failure and prompts the user to edit the information before proceeding with the transaction. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Starting with app version 10.3.1, the Employee Discount Validation SPI now includes support for promotionID. ### Returns and Exchanges When returning or exchanging one or more items from a transaction with an employee discount, the employee information that was added to the original order ise visible from the Employee Discount cart option. However, it’s not editable during returns or exchanges. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If validating with an SPI, for returned items with an employee discount, the cart must reapply the discount and revalidate the employee, if required, for the new sale. ### Receipts Employee information (for example employee ID, email, and so on) can be configured to show on printed receipts. This is a list of tags related to employee discounts. See [Configure Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_config.htm&release=264.0.0&type=5 "Customize Point of Sale receipt appearance to match your branding and create a consistent customer experience. Control email receipt-sharing options so that you can ensure secure and efficient delivery. Format receipt content to highlight important information and improve readability."). - :ps\_employee\_id - :ps\_employee\_first\_name - :ps\_employee\_last\_name - :ps\_employee\_email ### Reporting Orders with employee discounts are recorded in the Electronic Journal as "EMPLOYEE SALE". ### Known Issues & Restrictions - Employee discounts are considered customer discounts, which are not supported in Offline Mode. - When adding new sale products to a return/exchange, those products get an employee discount added even if the person ‌returns the items and buys new items. It's best to place a separate order if the sale items can't get the employee discount. ## Employee Discount FAQs for POS Get answers to common questions about employee discounts in POS. ### Frequently Asked Questions | Common questions | answers | | --- | --- | | Can there be more than one employee customer type? | Not while using the employee promotion rail. However, you can have multiple employee customer types by using customer groups promotions instead. The downside of this approach is that these promotions won't be tracked as employee sales in the Electronic Journal and other reports. See [Apply Customer Groups to Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_apply_customer_groups_to_promotions.htm&release=264.0.0&type=5 "Merchants can create targeted promotions tailored for specific customer groups, for example veterans, teachers, which are defined in their customer records. By using the customerGroup attribute, shared across the SPI and Salesforce fields, merchants can efficiently apply these targeted promotions to groups of customers. This functionality is supported via Point of Sale's SPIs and Salesforce Sales Cloud (SFSC). For NetSuite customers, contact a Retail Cloud representative for custom mapping instructions."). | | Can multiple promotions be set up for employees, such as discounts on different products? | Yes, multiple promotions can be set up for employees. The Customer Type (is Employee) parameter is available for any promotion type as noted in this article. These promotions follow standard rules for combinability and product eligibility. | | Is there a way to validate store employees against CMS employees and apply promotions based on roles? | No, currently, Point of Sale only supports employee validation through SPI to discourage the bulk loading of all corporate employees into the system. | | For external validation, what's the required response? | External validation is true if any of the employee fields are filled in (first name, last name, email, or employeeID) and there's no error message. If there's an error message, error code, or an empty response, the employee's validation fails. | | Can an employee be linked as a customer to apply employee sales? | You can connect employees to customers in the CRM. You can also use the rules for Customer Groups and Customer Type when you give promotions to employees. This setup allows for more granular promotion application and employee sale tracking, although individual testing is recommended for confirmation. | | Can I customize the layout and fields for employee verification on the POS app? | Currently, there's no configurable layout available for employee verification on the POS app. The fields displayed to the associate during the verification process are statically defined, and all fields are required. | # Configure Field-Level Security Give the System Administrator profile permissions to access specific fields on order-related objects. These permissions allow users to access Order Management functionality. 1. If you’re using person accounts to represent individual shoppers, verify that they’re enabled and configured in your org. 2. From Setup, in the Quick Find box, find and select **Profiles**. 3. Select **System Administrator**. 4. In the Fields-Level Security section, find Order and click **View**. 5. Click **Edit**. 6. Assign Edit Access and Read Access for each object in the table. Some of the permissions and objects aren’t available in ever version of Order Management. Don’t worry. Fill out the available objects and permissions that are visible in your organization.
Object Read Access Edit Access
Location (Growth Only) N/A
  • Assigned Fulfillment Order Count
  • Fulfillment Order Capacity
  • Priority
  • Track Fulfillment Order Capacity
Order
  • Order Amount
  • Order Management Reference Identifier
  • Total Adjusted Delivery Amount
  • Total Adjusted Delivery Tax
  • Total Adjusted Delivery Amount with Tax
  • Total Adjusted Product Amount
  • Total Adjusted Product Tax
  • Total Adjusted Product Amount with Tax
  • Total Delivery Distributed Adjustments
  • Total Delivery Distributed Adjustment Tax
  • Total Delivery Distributed Adjustments with Tax
  • Total Product Distributed Adjustments
  • Total Product Distributed Adjustment Tax
  • Total Product Distributed Adjustments with Tax
  • Total Tax
  • Total with Tax
  • Billing Email Address
  • Billing Phone Number
  • Bill To Contact
  • Order Name
  • Order Reference Number
  • Ordered Date
  • Sales Channel
  • Sales Store
  • Tax Locale Type
Order Product
  • Adjusted Product Subtotal
  • Adjusted Product Subtotal Tax
  • Adjusted Product Subtotal with Tax
  • Distributed Order Adjustments
  • Distributed Order Adjustments Tax
  • Distributed Order Adjustments with Tax
  • Gross Unit Price
  • Product Adjustments with Tax
  • Total Adjustments
  • Total Adjustments Tax
  • Total Adjustments with Tax
  • Total Amount with Tax
  • Total Tax
  • Line Number
  • Order Delivery Group
  • Reserved at Location
Order Adjustment Group N/A
  • Description
Order Delivery Group N/A
  • Deliver to Address
Shipment (Growth Only) N/A
  • Expected Delivery Date
  • Fulfillment Order
  • Return Order
  • Shipping Provider
  • Status
  • Tracking Number
  • Tracking URL
Shipment Item N/A
  • Return Order Line Item
#### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Configure Flow for Exchanges with RMA Exchanges with RMA support both EnsureFunds and EnsureRefunds. These variables must be configured properly in your org. ### Required Editions
View supported editions.
The flows Create Invoice and Ensure Funds and the RMA Create Credit Memo and Ensure Refunds flows must be cloned in your org. Previous step: [Activate the Exchanges with RMA Flow Template](https://help.salesforce.com/s/articleView?id=commerce.om_activate_exchanges_rma_flow.htm&release=264.0.0&type=5 "The Exchanges RMA flow lets a customer service representative create even, uneven, and post-fulfillment exchanges. To use the flow, copy and activate the flow template, and then clone or customize the flow as needed.") See all steps in [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns."). 1. From Setup, in the Quick Find box find and select **Flows**. 2. Select your create invoice and ensure funds flow. Make sure you select your org’s cloned version of the flow, not the template version. 3. Click the Set Ensure Funds Input Representation assignment, and set the variable isReservedBalanceAmountConsidered as equals true. 4. Click **Save**. 5. Select your RMA create credit memo and ensure refunds flow. Make sure you select your org’s cloned version of the flow, not the template version. 6. Click the Ensure Refund assignment, and set the variable isReservedBalanceAmountConsidered as equals true. 7. Click **Save**. Next step: [Add the Exchanges with RMA Flow to an Object Page](https://help.salesforce.com/s/articleView?id=commerce.om_add_exchanges_rma_flow_object_page.htm&release=264.0.0&type=5 "Give customer service representatives easy access to the Exchanges RMA flow by adding it to the Actions & Recommendations component on a Lightning page for an object. Because all orders are associated with an order summary, add the flow to the Actions and Recommendations component on the order summary page.") #### See Also - [Exchanges with RMA Returns Overview](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_overview.htm&release=264.0.0&type=5 "An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer.") # Configure Fulfillment Locations Configure the location object to represent your locations and, optionally, location priorities. Then create a location record for each fulfillment location. ### Required Editions
View supported editions.
1. From Setup, in the Quick Find box, find and select **Object Manager**. 2. Select **Location** | **Fields & Relationships** | **Location Type**. 3. Add your locations to the Location Type Picklist Values. Examples of a location type are Warehouse or Retail Store. 4. Select a default value. 1. Click **Edit** for the value. 2. Select **Default**. 3. Click **Save**. 5. (Optional for customers using routing) Create a location ranking system to prioritize locations. If you’re using the Order Management license included with D2C Commerce, you can’t use a priority ranking system. 1. Select **Location** | **Fields & Relationships** | **Priority**. 2. Add numeric values to the Priority Picklist Values. The lower the number, the more preferred the location is. 3. Select a default priority value. 6. Save your changes. 7. Create a location record for each fulfillment location. If you’re using the Order Management license included with D2C Commerce, you can use only one location. 1. From the App Launcher, select **Locations**. 2. Click **New**. 3. Enter a name for the location, and select a value for **Location Type**. 4. If you plan to use Salesforce Omnichannel Inventory to manage your inventory locations, select **Sync with OCI** for locations and location groups that are part of your Omnichannel Inventory implementation. 5. If you’re using a routing and have configured a location ranking system, set the priority for the location. 6. Optionally, limit the number of fulfillment orders assigned to a location by defining its fulfillment order capacity. If you’re using the Order Management license included with D2C Commerce, these order capacity fields aren’t available. - Track Fulfillment Order Capacity—To track the location’s capacity, set this option to true. The values of Fulfillment Order Capacity and Assigned Fulfillment Order Count are then used to determine if the location has available capacity. - Fulfillment Order Capacity—Maximum number of orders that can be assigned to the location. If this value is null, the location’s capacity is unlimited. - Assigned Fulfillment Order Count—To define the time period associated with the maximum capacity for this location, set this value to a certain interval. For example, to track capacity per day, run an automated job that sets this value to 0 for each location at midnight of the location’s time zone. 7. Save your changes. 8. Repeat for each location. # Configure Gift Card Integrations in Point of Sale Integrate with Clutch and Givex to provide customers with enhanced gift card options. Using these integrations allows businesses to create customized gift card programs and track gift card use. Seamlessly incorporate gift cards into your sales and marketing efforts to increase customer engagement. - **[Integrate Clutch Gift Cards](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_gift_card_clutch.htm&release=264.0.0&type=5)** The Point of Sale (POS) app supports gift card integration with Clutch. Learn how to configure a Clutch account with the supported functionality. - **[Integrate Givex Gift Cards](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_gift_card_givex.htm&release=264.0.0&type=5)** Point of Sale's POS supports gift card integration with Givex. Learn how to configure a Givex account with the supported functionality. # Configure Gift Card Payments in Payment Terminal Configure Point of Sale's Point of Sale (POS) to accept gift card payments, add value, cash out, and check balances, using a payment terminal. Merchants can select the integration approach that suits their needs, verifying all transactions are available through gateway reporting. Point of Sale supports both direct integrations and integrations via payment gateways. - For direct integrations, we offer out-of-the-box support for Givex, Clutch, and NetSuite - Via Adyen, we support Givex, SVS, and Fiserv (formerly Valuelink) - Via Verifone Flex, we support Givex and SVS For gift card platforms that overlap between direct and gateway integrations, you can select the approach that best suits your needs. Opting for the gateway approach makes sure that all transactions are available through the gateway reporting. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Merchants are responsible for directly contracting with their chosen gift card vendor. Point of Sale doesn't manage vendor contracts for merchants. ## Prerequisites - Modern POS App Build: - Adyen: 8.7.1 or greater - Verifone: 9.5.1 or greater - Platform Support: iPad & iPhone - Offline Support: no - Supported Payment Gateway(s): Adyen & Verifone. Merchants shall work with their payment gateway providers to link gift card provider accounts - Certified Gift Card Provider: Adyen (GiveX, SVS, ValueLink), Verifone (GiveX) - **[Allow Payment Gateway and Gift Card Providers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_payment_gateway_card_providers.htm&release=264.0.0&type=5)** Integrate gift card providers with your payment gateways to turn on gift card functionality. The gift card provider supplies credentials that your gateway provider configures as a payment method. - **[Set up Payment Gateway Settings in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_card_payment_settings_rt.htm&release=264.0.0&type=5)** Configure gift card settings for Adyen and Verifone payment gateways so customers can use gift cards at your store. Enable gift cards, select a provider and SKU, and enter a cash-out configuration within Point of Sale CMS. - **[View Gift Card Payments in the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_gift_card_end_user_docs.htm&release=264.0.0&type=5)** Accept gift cards as payment by swiping at the terminal, manual entry, or scanning. Manage insufficient balances by applying partial payments, and use gift cards in multitender payment flows. - **[Understand Gift Card Error Handling](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_gift_card_error_handling.htm&release=264.0.0&type=5)** The Point of Sale (POS) app provides error handling for failed gift card transactions, so store associates know what actions to take. - **[Troubleshoot Payment Terminal Issues](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_troubleshoot_payment_terminal_issues.htm&release=264.0.0&type=5)** Troubleshoot common misconfiguration errors to verify smooth gift card functionality. Correctly configure settings on Point of Sale CMS, Adyen terminal settings/payment methods, and gift card provider settings. - **[View Known Issues and Frequently Asked Questions (FAQs)](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_payment_issues_faqs.htm&release=264.0.0&type=5)** Process gift cards with ease in Point of Sale by understanding the limitations and frequently asked questions. # Configure Global Blue in Point of Sale CMS To issue tax-free forms in the POS app, integrate Global Blue in Point of Sale CMS. 1. Go to **Integrations** | **Tax-Free Integrations**, and then create a configuration. 2. Select **Global Blue**as the tax-free provider (1). 3. Enter the **Base URL** provided by Global Blue (2). 4. Under **Global Blue Stores**, associate the configuration with each store that supports Global Blue (3). ![A screen displays options for Global Blue integration in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_global_blue_config_cms.png) 1. To add stores in bulk including Desk ID, click **ADD** and select **Import Values from CSV**. Example CSV file: [Global Blue Store File.csv](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/global_blue_stores.csv) 2. If your store has a unique Desk ID per register, configure register-level Desk IDs using either of these methods. - Go to **Store Management | Register | Register GB Desk ID** and assign a unique Desk ID to each register manually. - Use the **Register Feed** to bulk-configure Desk IDs across registers. 5. Configure country-specific fields. If you operate stores in France, Italy, or Portugal, complete the additional configurations to comply with local tax-free regulations.
Country Configuration
France For items priced above 500 EUR, configure these product feed attributes so the POS can send the required compliance data: goodCategory, brand, color
Italy
  • Turn on Generate Tax-Free Document Number in Point of Sale CMS. This flag automatically generates sequential tax-free document numbers for all issuances and void operations. This consecutive counter ensures compliance with Italian tax-free documentation standards.
  • For items with a VAT rate of 0%, set the goodCategory product attribute to the appropriate value. Consult your Global Blue account manager for accepted values.
Portugal For items priced above 500 EUR, configure the serial number attribute. For more information about adding a serial number during fulfillment or checkout, see Serialized Products in the POS App Flow.
6. Save your changes. #### See Also - [_Salesforce Help:_ Manage Global Blue Tax-Free Forms in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue.htm&release=264.0.0&type=5 "Create tax-free forms for eligible customers during checkout by using Global Blue in the POS app. When a customer qualifies for tax-free shopping, complete the Global Blue form in the POS app and print the form on an A4 or thermal printer.") - [_Salesforce Help:_ Configure Order Confirmation Actions for Tax-Free Forms](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue_order_confirm_layout_actions.htm&release=264.0.0&type=5 "To issue, print, and void a tax-free form in the POS, add actions to the Order Confirmation layout.") # Configure Gross Tax Display If you only do business in a locale that uses net taxation, such as sales tax, no extra configuration is needed. If you do business in a locale that uses gross taxation, such as value-added tax (VAT), you need to configure your page layouts to display amounts that combine prices and taxes. If you’re using multiple currencies, add a user profile for service agents and create page layouts that use gross tax fields. 1. From Setup, in the Quick Find box, find and select **Object Manager**. 2. For each object that displays prices, create a page layout that uses gross taxation fields that combine prices and tax amounts. See [Create Page Layouts](https://help.salesforce.com/articleView?id=customize_layoutcreate.htm&language=en_US). 3. Edit or clone the Standard User profile. 1. From Setup, in the Quick Find box, find and select **Profiles**. 2. If you only do business in a locale that uses gross taxation, edit the Standard User profile. 3. If your org is enabled for multiple currencies, clone the Standard User profile. Give the new profile a name that identifies it as applicable for users working with gross tax. 4. Assign the gross taxation page layouts to the user profile. 4. After creating at least one Order Summary record, configure the gross tax fields. If necessary, return to this step later in the implementation process. 5. In Salesforce Order Management, open any Order Summary record details page. 1. From the Setup menu on that page, select **Edit Page**. 2. Configure the Fields for Gross Tax Orders section of the Totals component. 3. Save and activate the page. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Configure Hardware for Point of Sale Connect the physical components of your store. Set up printers, barcode scanners, cash drawers, and payment terminals from providers such as Adyen, Verifone, and Elavon to power your POS experience. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In 2024, Salesforce acquired PredictSpring, a provider of modern retail point-of-sale (POS) software built natively in the cloud. PredictSpring was renamed Retail Cloud and is now called Point of Sale. You may still see references to PredictSpring or Retail Cloud in the Point of Sale app and in our documentation. - **[Configure POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_pos_app.htm&release=264.0.0&type=5)** Set up your Point of Sale (POS) application and register to start processong transations efficiently. Check the app permissions, configure the hardware, and set up the netwrok topology for the app and the hardware. - **[Configure and Manage Printers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_printers.htm&release=264.0.0&type=5)** Configure printers to produce customer documents from the Point of Sale (POS) app. Show the printer name instead of the MAC address. - **[Configure and Manage Barcode Scanners](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_barcode_scanners.htm&release=264.0.0&type=5)** Setup barcode scanners to capture and enter data into the Point of Sale (POS) app. Improve data accuracy, save time, and increase productivity. - **[Configure and Manage Cash Drawers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_cash_drawers.htm&release=264.0.0&type=5)** Connect a supported cash drawer to the Point of Sale (POS) app to manage transactions and track cash flow. Streamline the checkout process and reuce errors. - **[Configure and Manage Adyen Payment Terminals](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_adyen_payment_terminals.htm&release=264.0.0&type=5)** Integrate the Ayden payment platform into the Point of Sale (POS) app. Acceppt payments globally, reuce fraud, and streamline reconciliation while providing a seamless checkout experience. - **[Configure and Manage Verifone Payment Terminals](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_verifone_payment_terminals.htm&release=264.0.0&type=5)** Integrate Verifone payment devices with the Point of Sale (POS) app,to securely process transactions. Streamline payment operations and improve accuracy. - **[Configure and Manage Elavon Payment Terminals](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_elavon_payment_terminals.htm&release=264.0.0&type=5)** Process customer payments securely and efficiently with Elavon Payments in the Retail Cloud Point of Sale (POS) app. Streamline transactions, automate billing processes, and enhance customer experiences through secure and seamless payment processing. - **[Configure and Manage Other Payment Terminal Settings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_other_terminal_settings.htm&release=264.0.0&type=5)** Accept diverse payment methods using the Point of Sale (POS) app, including gift cards, manual credit card entry, and external credit card readers, to provide customers with flexible options. # Configure Headless Commerce API Authentication via Account Manager To authenticate with Account Manager, set up an API Client ID, then use it to obtain a token for making API calls. 1. Log into Account Manager as an account administrator at [https://account.demandware.com](https://account.demandware.com). 2. Select the API Client tab. 3. Select **Add an API Client ID**. 4. Enter a unique Display Name and a strong password. 5. Under Access Control, select **Enabled**. 6. In the Organizations section, click **Add**. 7. Select your org, and click **Add**. 8. In the Roles section, take these steps: 1. Click **Add**. 2. Select **Salesforce Commerce API**, and click **Add**. 3. Click the filter icon. 4. In the Add Instance Filters tab, select your organization. 5. Select your B2C Commerce instance, and click **Add**. 9. In the Default Scopes field, add the desired scopes. For information about available scopes, see the [AUTHZ Scope Catalog](https://developer.salesforce.com/docs/commerce/commerce-api/guide/auth-z-scope-catalog.html) in the B2C Commerce API Guide. 10. From the Token Endpoint Auth Method dropdown, select **client\_secret\_post**. 11. From the Access Token Format dropdown, select **JWT**. To obtain an Account Manager token for calling the headless Commerce APIs, use your tenant ID, Client ID (not the display name), and Client ID password. For example: ``` curl -k --data 'grant_type=client_credentials&scope=SALESFORCE_COMMERCE_API:tenant_ID' --user 'client_ID:password' -X POST 'https://{AccountManagerURL}/dwsso/oauth2/access_token' ``` ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note The tenant ID is part of your organization ID: `f_ecom_tenant_id`. For example, if your organization ID is `f_ecom_zzzz_001`, then the tenant ID is `zzzz_001`. When building URIs for your API calls, you need the short code for your B2C Commerce realm and your Salesforce Org’s tenant group ID. Use the short code in the base URL and the tenant group ID as the organization ID. For example: ``` https://{ShortCode}.api.commercecloud.salesforce.com/inventory/availability/v1/​organizations/{TenantGroupId}/​availability-records/actions ``` Get the tenant group ID and the base URL, which includes the short code, from the Omnichannel Inventory admin settings page. In your Salesforce org, from Setup, in the Quick Find box, enter Omnichannel Inventory, and then select **Omnichannel Inventory**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_important.png) Important Use the tenant group ID as the Organization ID in resource URLs. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note For these inventory resources, the short code is a two-character country code in capital letters. Other resources use a different short code. # Configure How Long Einstein Waits Before Recommending Already Purchased Products Einstein Configurator now lets you define how many days a recommender waits before recommending previously purchased products. You can choose from 7, 30, 60, or 90 days. The default setting is 30 days. Previously, Einstein Configurator provided a static 30-day wait time before recommending previously purchased products. For some customers, this setting was either too short or too long. How: You configure the product recommendation wait time for an individual recommender using [Einstein Configurator](https://configurator.cquotient.com/). Use the **Don't recommend products purchased** option in any recommender **General** tab to make your selection. # Configure How to Display Product Variation Search Results Tailor how search results appear on your B2B store Product List page. You can opt to show only the parent product, only the best matching product, or all the variations of the parent product. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Search**, and then click **Additional Settings**. 3. Under Display, click the pencil icon near Product Variation and select how you want to display products. See [Options for Displaying Product Variation Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_overview.htm&type=5&language=en_US) When Displayable Fields is activated, only the best match product is shown. See [Set Up Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_displayable_fields.htm&type=5&language=en_US). If a product has attributes that can be grouped, these attributes take precedence over these two display settings: **Show parent product only** and **Show best match product only**. See [Create Attributes for Product Variations in B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_config_att_set.htm&type=5&language=en_US). 4. Save your changes. It can take up to 2 minutes for the change to take effect. 5. To enhance the buyer’s experience, if the Product Variation is set to **Show parent product only**, include a link under a parent product to guide shoppers directly to its variations. See [Connect a Parent Product to Its Variations on Your Store’s Search Result Page](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_setup_results_layout.htm&release=264.0.0&type=5 "To make it easier for buyers to find product variations, include a link under the parent product on the Product List page. The link takes buyers directly to the variations associated with the parent product.") . To guide shoppers to parent product instead, select the **Navigate to Parent Product** option in the Results Display dropdown of the Results settings in Experience Builder. #### See Also - [Connect a Parent Product to Its Variations on Your B2B Store’s Search Result Page](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_setup_results_layout.htm&release=264.0.0&type=5 "To make it easier for buyers to find product variations, include a link under the parent product on the Product List page. The link takes buyers directly to the variations associated with the parent product.") # Configure How to Display Search Results Define how many values appear for each search filter and how many search results to show on a page. You can choose to skip additional entitlement checks, automatically select and display relevant facets, and group search results under parent products. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Set the Maximum Number of Results per Page](https://help.salesforce.com/s/articleView?id=commerce.comm_search_results_per_page.htm&release=264.0.0&type=5)** You can limit the number of products that appear per page on Search Results and Category Detail pages of B2B Commerce stores. - **[Reduce Entitlement Checks for Faster Search Results in B2B Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_search_skip_entitlement_check.htm&release=264.0.0&type=5)** User entitlement checks are run as part of a search index update and also when retrieving search results. Though applying both entitlement checks ensures the most accurate information is provided in Search query results, you can get faster search performance by skipping the second entitlement check. - **[Select a Price Book for Sorting](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_by_price_book.htm&release=264.0.0&type=5)** To arrange search results in your B2B store by price, select a price book for sorting. The price book you select is always used for sorting, regardless of whether a customer is assigned to a different price book based on buyer group or entitlement policy. Deleted, archived, or inactive products are excluded from search results, which are sorted based on the store’s default currency. If the store's default currency is set to one type, such as EUR, and you sort the products by another currency, such as USD, products without prices in the sorting currency but with prices in the default currency are still considered to have prices and are displayed in the middle of the sorted list, while products without prices in the default ‌appear at the end of the sorted list‌. - **[Automatically Select the Most Relevant Facets](https://help.salesforce.com/s/articleView?id=commerce.comm_search_autoselect_facets.htm&release=264.0.0&type=5)** Automatically select, order, and display the most relevant facets based on search results of your B2B store. For example, a customer searching for "Shoes" sees categories like "Boots," "High Heels," and "Sandals" based on the number of results of each category. - **[Set the Maximum Number of Values per Facet](https://help.salesforce.com/s/articleView?id=commerce.comm_search_max_values_per_filter.htm&release=264.0.0&type=5)** On Category Detail and Search Results pages of B2B Commerce stores, facets can have values that buyers use to further narrow the products that are returned. For example, a facet like “shoes” can have values like “women,” “men,” and “children.” You can specify the number of values that a facet can have. # Configure Internal Users for Commerce Several internal users are involved in creating stores. System administrators perform Salesforce configuration tasks. Commerce admins perform commerce administration tasks, and merchandisers design and manage the storefront, import products, and configure search. Create a profile for these internal users, and then use the profile to create the users, assigning the appropriate permission set for each type of user. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note When configuring profiles, some admins prefer to work in the original profile user interface while others prefer the enhanced profile user interface. To ensure that all the profile settings are easily accessible, we recommended you [Disable Enhanced Profile User Interface](https://help.salesforce.com/s/articleView?id=xcloud.os_disable_enhanced_profile_user_interface.htm&language=en_US). These instructions assume you're working with the original profile user interface. To configure internal users, system administrators must clone the Identity User profile as the Commerce Business User Profile. When creating a commerce admin user, assign the Commerce Admin permission set. When creating a merchandiser user, assign the Merchandiser permission set. 1. Clone the Identity User profile. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Profiles, and then select **Profiles**. 3. Next to Identity User, select **Clone**. 4. For Profile Name, enter Commerce Business User Profile. You can choose another name, but keep in mind that this profile is used for your internal users. 5. Click **Save**. 2. Configure the profile that you created. 1. On the Profiles page, click **Edit** next to the profile you created. 2. In the Custom App Settings section, for the Commerce app and in the Digital Experiences app, select **Visible**. 3. In the Tab Settings section, change these items to **Default On**. - Accounts - Buyer Groups - Catalogs - Categories - CMS Channels - CMS Workspaces - Commerce Setup - Customer Workspace - Entitlement Policies - Guest Buyer Profile - Order Delivery Methods - Orders - Order Summaries - Price Adjustment Schedules - Price Books - Pricing Workspace - Promotion Workspace - Products - Product Workspace - Store Price Books - Stores 4. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Both the Commerce Admin permission set and the Merchandiser permission set allow access to buyer groups. Users who have access to buyer groups also have read access to all related buyer group members. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important To allow self-registration on stores to work correctly, make sure all internal users who create stores are assigned to a role. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note To specify which internal users can access which stores, contact your account executive. #### See Also - [Profiles](https://help.salesforce.com/s/articleView?id=platform.admin_userprofiles.htm&type=5&language=en_US) # Configure Inventory Adjustment Settings Set up Point of Sale (POS) CMS to access Inventory Adjustment on the POS app. ## Access Inventory Adjustment To access Inventory Adjustment on the POS app, configure a deep link. 1. Create a new layout or hamburger menu or use an existing one. 2. Access the deep link picker. 3. Go to **Store Associate > Inventory Management**. 4. Select **Create Inventory Adjustments**. 5. Set and save your changes. ## Reason Codes [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.") are required if performing an inventory adjustment on the POS app. For corporate transfer cancellations and inventory mismatches. 1. In CMS, go to **Store Management > Reason Codes**. 2. Select I**nventory Adjustment** and configure reason codes. 3. Save your changes. ## Serialized Item Handling If you have serialized products, turn on **Enable Serialized Inventory** to track and manage these items. Any action or transaction, including receiving, will require scanning or entering the product's serial number. 1. In CMS, go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Enable **Enable Serialized Inventory**. 4. Save your changes. # Configure Language, Ship-To Countries, and Currencies for a B2B Store Configure your B2B store for international customers by specifying the languages, shipping countries, and currencies that you support. Buyers can then see the pricing and shipping options based on their location and account. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) These steps assume that you’ve already created a D2C store using the D2C store template. See step two in [Set Up Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&release=264.0.0&type=5 "Use the automated and guided assistant to configure your Salesforce org for Commerce and create an online store. Preview and polish the store before going live."). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important To validate addresses in checkout, your store must support at least one ship-to country. If you don’t select a ship-to country, address validation fails. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**. 3. Under Localization, click the pencil icon next to Supported Languages. Move the languages for your store from Available to Chosen, and select the store’s default language from the dropdown. - The available languages are the languages enabled in Translation Workbench. B2B stores can support up to 25 languages. - Buyers see the store in the language configured in their user record. If a buyer is configured to use a language that’s not supported in the store, they see the store in the store’s default language. If a buyer changes their own language in the customizable user settings component to a language not supported in the store, they see the store in the store’s default language. To create a store that allows buyers to select a language for the store, use the markets feature. See [Segment a Store into Markets Based on Locale](https://help.salesforce.com/s/articleView?id=commerce.comm_markets.htm&release=264.0.0&type=5 "Instead of standing up multiple stores for different regions, use one store and segment your customers into markets based on locale. When customers visit the store, they can choose their locale. Based on their selection, the store displays prices, promotions, and entitlements specific to their market. You can have a total of up to 25 active locales for a store across all markets. For example, your store could have one market with 25 locales or 25 markets with one locale each. A locale can be used only one time across all markets assigned to a store."). - If you have a store built on an Aura template, we recommend publishing your store in English to avoid checkout failures. Your store will still be translated once its published based on your supported languages. 4. (Optional) Under Supported Ship To Countries, move the countries that you want to support to Chosen. If you don’t see the Supported Ship To Countries list, check whether your Salesforce admin has added the field to the layout. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note The Ship-to Country setting doesn’t generate a country picklist that displays on your store. To display a country picklist requires writing customized code. 5. (Optional) Under Default Ship To Country, click the dropdown and select a supported country. If you don’t see the Default Ship To Country dropdown, check whether your Salesforce admin has added the field to the layout. 6. Under Pricing, click the pencil icon next to Supported Currencies. Move the currencies for your store from Available to Chosen, and select the store’s default currency. The available currencies are the currencies enabled in your org. See [Support Multiple Currencies in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_currency_considerations.htm&release=264.0.0&type=5 "To support international customers, provide multiple currencies in your B2B store. By default, a store supports only the currency listed as the currency locale on your Company Information page, unless you turn on multiple currencies. The currency settings apply to all stores in your org."). The currency displayed to the buyer is the currency configured for the buyer’s account. If the currency for the buyer’s account isn’t supported in the store, the store’s default currency is shown. If the price books or promotions that a buyer has access to don’t use the currency configured in the buyer’s account, products are shown without prices, and promotions aren’t activated. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important Buyers don’t select a currency during shopping. A B2B buyer’s currency is assigned when their buyer account is created. 7. Save your changes. 8. From the store’s home page, click the **Experience Builder** tile. 9. Click the gear icon, and click **Languages**. 10. If the languages that you want to use aren’t listed under Site Language, click **Add Languages** and add them. 11. From the Default Site Language dropdown, select the default language for the store. The default language that you select in Experience Builder must be the same as the default language that you selected on the Administration tile for the store. #### See Also - [Configure Tax Settings for a Store](https://help.salesforce.com/s/articleView?id=commerce.comm_taxes_international_store.htm&release=264.0.0&type=5 "Configure tax settings for a B2B store.") # Configure Language, Ship-To Countries, and Currencies for a D2C Store Specify the language, ship-to countries, and currency settings for a D2C store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) These steps assume that you’ve already created a D2C store using the D2C store template. See step two in [Set Up Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&release=264.0.0&type=5 "Use the automated and guided assistant to configure your Salesforce org for Commerce and create an online store. Preview and polish the store before going live."). 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**. 3. Under Localization, click the pencil icon next to Supported Languages. Move the language for your store from Available to Chosen, and select the store’s default language from the dropdown. The available languages are the languages enabled in Translation Workbench. See [Enable Translation Workbench](https://help.salesforce.com/s/articleView?id=commerce.comm_translation_workbench.htm&release=264.0.0&type=5 "To assist with localizing B2B store information, enable the Translation Workbench and add the languages that you want to use in your stores."). D2C stores can support up to 25 languages. 4. Under Supported Ship To Countries, move the countries that you want to support to Chosen. If you don’t see the Supported Ship To Countries list, check whether your Salesforce admin has added the field to the layout. 5. Under Default Ship To Country, click the dropdown and select a supported country. If you don’t see the Default Ship To Country dropdown, check whether your Salesforce admin has added the field to the layout. 6. Under Pricing Supported Currencies, move the currencies your store supports from Available to Chosen, and select the store’s default currency. The available currencies are the currencies enabled in your org. See [Support Multiple Currencies in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_currency_considerations.htm&release=264.0.0&type=5 "To support international customers, provide multiple currencies in your B2B store. By default, a store supports only the currency listed as the currency locale on your Company Information page, unless you turn on multiple currencies. The currency settings apply to all stores in your org."). 7. Save your changes. 8. From the store’s home page, click the **Experience Builder** tile. 9. Click the gear icon, and click **Languages**. 10. If the language that you want to use isn’t listed as a Site Language, click **Edit Languages** to add it. 11. From the Default Site Language dropdown, select the default language for the store. The default language that you select in Experience Builder must be the same as the language that you selected on the Administration tile for the store. 12. Add the Country Selector component to the footer of your store. #### See Also - [Configure Language, Ship-To Countries, and Currencies for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_lang_curr_international_b2b_store.htm&release=264.0.0&type=5 "Configure your B2B store for international customers by specifying the languages, shipping countries, and currencies that you support. Buyers can then see the pricing and shipping options based on their location and account.") # Configure Line-Level Tax Display on Point of Sale Receipts Display itemized taxes and regional fees directly beneath individual products on receipts. Configure which tax codes appear as line items to keep receipts clean and relevant. 1. In the Point of Sale CMS, go to **Store Management** | **Store Settings** | **Tax**. 2. In **Eligible tax names for line-level receipt display**, enter the `taxName` values that should appear as line items, separated by commas. Use the `taxName` value, not `taxClass` or `taxCode`. Check your tlog output to confirm the correct value, for example: ``` "taxClass": "Environmental Waste Recycling", "taxCode": "Electronic Waste Recycling Fee", "taxAmount": 6.75, "perUnitTaxAmount": 6.75, "highPrecisionTaxAmount": 6.75, "taxName": "Environmental Waste Recycling Fee", ``` 3. Save your changes. 4. Configure your receipt layouts to include the line-level tax tags.
Receipt Type Tags
Print Receipt

:ps_p_tax_breakout_name

:ps_p_tax_breakout_amount

Email Receipt

{product_tax_breakup_placeholder_start}

{product_tax_breakup_name}

{product_tax_breakup_amount}

{product_tax_breakup_placeholder_end}

See [Tax Receipt Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_tax.htm&release=264.0.0&type=5 "Understand the print and email tags for the tax component of Point of Sale receipts and see the templates they are included in."). Receipts display itemized taxes and fees beneath products when the product's `taxName` value matches a configured tax name. # Configure Markets for Your Commerce Store Use one B2B store to segment customers into markets based on their locale. When you create a market, assign a price book, an entitlement policy, a currency, ship-to countries, and the locales that it supports. After you create a market, you can also assign a promotion. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before you create the market, create the price book and entitlement policy you want to use in the market so that they’re ready to assign. Watch this video to understand how to segment your customers into markets based on locale. If you can’t watch the video in full screen, open the video on a new tab: [Set Up Markets](https://salesforce.vidyard.com/watch/iiudE31LaoTJU4cQr5RKad). 1. Create a market. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**, and then click **Markets**. 3. Click **Create Market**. A market is a special type of Buyer Group record where the Role field on the Buyer Group is set to Market. 4. Enter a market name and description, and click **Save**. 2. Click **Related**. 3. Next to Price Books, click **Assign**, and select the price book for the market. Make sure that the price book has entries in the currency that you want to use for your market. 4. Next to Commerce Entitlement Policies, click **Assign**, and select the entitlement policy for the market. 5. Next to Supported Ship-To Countries, click **Assign**, and move the ship-to countries for your market to the Chosen list. Ship-to countries apply to all locales in the market. 6. (Optional) Select a market currency. If you don’t select a market currency, each locale in the market uses the currency assigned to that locale in the org. If you do select a market currency, it applies to all locales in the market and overrides the currency assigned to the locale in the org. 7. Click **Submit**. 8. Next to Locales, click **Assign**, select the locales for your market, and click **Assign**. You can have a total of up to 25 active locales for a store across all markets. For example, your store could have one market with 25 locales or 25 markets with one locale each. A locale can be used only one time across all markets assigned to a store. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important As soon as you add locales to a market, the market is active in the store. 9. From the store’s home page, click the **Experience Builder** tile. 10. From Settings, select **Languages**. 11. Click **Edit Languages**. If necessary, adjust the languages so that the Site Languages include every language that you assigned to all locales in the market, and click **Save**. 12. In the components palette, drag the Country Selector component to a page in your store. When a customer goes to your store, they can use the Country Selector to choose their locale. The locales available in the Country Selector are the locales that you added to the markets for the store. 13. At the top left of the Experience Builder, click **Publish**. 14. Rebuild the search index. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Under Settings, click **Search**. 3. Under Search Index, click **Update**. 4. Click **Full Update**, and then click **Update**. To add a promotion to the market, assign it to the Buyer Group record that represents the market. See [Target Customers with a Promotion Segment](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_assign.htm&release=264.0.0&type=5 "Use segments to associate your promotion with specific stores or buyer groups. Then only customers who are a member of the store or buyer group can see the promotion. You can apply one promotion segment at a time to a store. A promotion segment can have up to 50 automatic and 50 manual active promotions."). # Configure Member Pricing in Point of Sale Offer discounted pricing to customers who belong to a qualifying customer group, such as loyalty program members. Configure the customer group in CMS, and the POS app automatically applies member pricing during checkout. This feature is available in POS app builds 12.5.1 and later. 1. Configure member pricing for the POS app. 1. In CMS, go to **Store Management** | **Store Settings** | **Checkout**. 2. Expand **Membership**. 3. In the **Membership Customer Group** field, enter the string value of the customer group that you want to treat as members. 4. Save your changes. 2. Show member pricing on the POS app. 1. To show member prices in the app, in CMS go to **Modules** | **In-Store Fulfillment** and turn on **Display Store Price**. 2. To control how member prices derive from your feeds, in CMS go to **Store Management** | **Store Settings** | **Search** and configure **Enrich Store Pricing to Product**. On the product list and product detail pages, the member price appears automatically for products that have one. ![Product list or product detail page showing the member price.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_checkout_member_pricing_plp.png) In the cart, member prices apply when a store associate logs in a member customer or scans a membership card. ![Cart showing member pricing applied.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_checkout_member_pricing_cart.png) # Configure Meta Tags to Commerce Store Pages for SEO To improve your products’ search engine visibility, add meta tags that describe the product. You can add product titles and descriptions individually or generate meta tags for multiple products at once using Einstein generative AI. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Structured data isn’t supported in B2B Commerce Aura stores. 1. Generate title tag and meta description fields for multiple products at once using Einstein generative AI. For instructions, see [Enhance Product Fields with Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_products_descriptions.htm&type=5&language=en_US). 1. From the Draft Product Text with Einstein page, select the Title Tag or Meta Description field. 2. Enter an instruction like “Write a short title to display in the Search Engine for these products” or “Write a short description to display in the Search Engine for these products.” 2. To view and manage a product’s or category’s page meta tags, open the product or category record and go to the SEO tab. ![SEO tab on a product record.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_product_seo_tab.png) 3. To manually add, edit, or delete page meta tags, use the Page Meta Tags table. 4. To add additional page meta tags to your store, use Experience Builder. 1. In Experience Builder, open the page that you want to edit. 2. Click the Page Properties icon ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png). ![Page Properties panel in Experience Builder with the SEO section highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/seo_title_and_desc.png) 3. Enter a title. On Product pages, use the Product Name field or a custom field. On Category pages, use the Name field or a custom field. Use expressions to populate the head tag with values from the record. For example, show a record’s object, title, and meta description with `{!Record._Object}:{!Record._Title}:{!Record._Description}`, or a field with `{!Record.Field}`. For `{!Record._Title}` and `{!Record._Description}`, the `ObjectMetadataTag` records is looked up first. If they don’t exist, the object’s `Name` and `Description` fields, which could be either `Product2` or `ProductCategory`, are then looked up. 4. Enter a description. 5. To use other meta tags, click **Edit Head Tags**, enter a meta tag, and save your changes. For example, the Robots meta tag `` tells crawlers not to index a page so it won’t show up in search results. ![Robots meta tag being added to a page in Experience Builder from the Edit Head Tags prompt.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/seo_edit_head_tags.png) 6. Save your changes. #### See Also - [SEO Page Properties](https://help.salesforce.com/articleView?id=networks_seo_tags.htm&language=en_US) - [SEO Guidelines for Commerce Page Meta Tags](https://help.salesforce.com/s/articleView?id=commerce.comm_seo_meta_tag_guidelines.htm&release=264.0.0&type=5 "To increase the SEO value of your store, add meta tags to Product, Category, and other pages.") # Configure Miscellaneous Tender in POS App Point of Sale supports miscellaneous tender as a payment option in the POS app. This allows for more options if the more common or standard payment methods (like card, cash, check, finance, or PayPal) don't work for a merchant's specific payment types. Configure your store and register settings in CMS to support Mischellaneous Tenders. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note As of September 2023, the Add Miscellaneous Tender form isn't customizable beyond the radio buttons. This means the labels for "Account Number" and "Authorization Code" can't be changed. These fields can still be used to capture additional data. When you choose the Miscellaneous Tender type in the cart as the payment tender, a popup with the value entered in the Store Settings shows up. Users can choose (radio button) from the comma-separated values. Additionally, two extra attributes can be captured for miscellaneous tender. - Miscellaneous tender details are captured in the [TLogs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog.htm&language=en_US). - Miscellaneous tender is reported on and categorized as its own payment type in the [POS Reconciliation](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_reconciliation_report.htm&release=264.0.0&type=5 "View key fields from from any of the past seven days in the reconciliation report and print it on a receipt printer.") and CMS [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") reports. 1. Configure store settings in CMS. 1. In CMS, go to **Store Management** | **Store Settings** | **Payment**. 2. Expand **Advanced**. 3. Under Miscellaneous Tenders, specify (via a comma-separated list) the various miscellaneous tenders you'd like to expose on the POS app. Salesforce Customer Support can help you with this. Point of Sale supports most card types, finance types, and common providers. 2. Configure register settings in CMS. 1. In CMS, go to **Store Management** | **Registers**. 2. Select a store. 3. Edit a register by clicking on the pencil icon. 4. Under Supported Tenders, add “Miscellaneous”. 3. Configure Cart Options Deep Link 1. In CMS, go to **Cart Options** or **Advanced Cart Options** layout. 2. Using the deep link picker, add the “Set Miscellaneous Tender” deep link. # Configure Modules in Point of Sale CMS Expand functionality by enabling modules for inventory, order management, products, and promotions. Point of Sale supports omnichannel capabilities so you can manage fulfillment, product visibility, and operational logging from one place. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In 2024, Salesforce acquired PredictSpring, a provider of modern retail point-of-sale (POS) software built natively in the cloud. PredictSpring was renamed Retail Cloud and is now called Point of Sale. You may still see references to PredictSpring or Retail Cloud in the Point of Sale app and in our documentation. - **[Configure Omnichannel Capabilities](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_configure_omnichannel_capabilities.htm&release=264.0.0&type=5)** Efficiently manage orders with multiple fulfillment types per cart or a single fulfillment type with OmniChannel in Point of Sale CMS. Customize the product display page and configure shipping methods on the Point of Sale (POS) app. - **[Manage Inventory](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_manage_inventory.htm&release=264.0.0&type=5)** Manage store inventory in the Point of Sale CMS. - **[Manage BOPIS Orders with the CSR Portal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_manage_bopis_orders.htm&release=264.0.0&type=5)** Monitor, search for, and manage customer orders within Point of Sale CMS. - **[Set Up Products](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_set_up_products.htm&release=264.0.0&type=5)** Use products to track inventory, manage pricing, and generate reports in Point of Sale CMS. - **[Set Up Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_set_up_promotions.htm&release=264.0.0&type=5)** Create a variety of promotion types, such as discounts, free shipping, or private sales in Point of Sale CMS. You can offer incentives to customers, encouraging purchases and boosting sales. - **[Monitor and Log Order Activity in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_monitor_log_activity.htm&release=264.0.0&type=5)** Track user activity, system performance, and potential security threat in your Retail Cloud environment. # Configure Multiple Tenders for Point of Sale Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app. - Modern POS App Build: 10.6.1 or later - Platform Support: iPad & iPhone With multitender, you can mix and match these tenders in a single transaction: - Cash - Credit Card - includes registered customer’s saved cards - Gift Card - Miscellaneous - Reward Card - Store Credit - Loyalty Reward - Check - Finance - In-Store Pay by Link - Remote Pay by Link - External - ACH - PayPal - Order Credit - Affirm - Google Pay - Apple Pay Refunds process to gift cards first, and then to the remaining tenders in the same sequence as payment. 1. Add supported tenders. 1. Go to **Store Management** | **Store Settings** | **Payment** | **Advanced**. 2. Enter a comma-separated value in the **Supported Tenders** field. For example, “Cash,CreditCard,GiftCard,Check,Finance,RewardCard.” 3. To support miscellaneous tenders with multi-tendering, enter a comma-separated value in the **Miscellaneous Tenders** field. 4. To support payment links with multi-tendering, turn on **Allow Multi-Tender With Pay-By-Link**. 2. Configure the POS app. 1. In CMS, go to **Apps** | **All** and edit a selected app. 2. Go to **Modules** | **POS**. 3. Turn on **Enable Multi Tender**. 4. To set how tenders appear on the app, edit **Tenders Display Order**, and then rearrange the sequence or delete a tender to hide it. 5. To reset the tender list, click **Restore**. 6. Click **Save**. Relaunch your POS app to see the multitender option at checkout. ## Multi Tender Payment in the POS App The Retal Cloud multitender payment option in the POS app allows you to complete a transaction using multiple payment methods. Tap the Multi button and you'll be presented with a list of tenders to select from. Tap the ADD button next to the tender type and enter the amount being paid. ### Cash If Cash is selected, you'll be prompted to enter the cash amount. After applying the cash amount, the remaining balance reflects the updated amount as shown below. For app builds version 9.10.1 or higher, if a cash tender is reset, it’s recorded in the Electronic Journal as "Cash Transaction Cancelled." The record includes details such as the store ID, register ID, date and time, transaction number, the associate handling the transaction, and a note specifying the cash amount involved. ### Gift Card For app builds 9.1.2 and greater, the remaining balance shows at the top of the window for all tender types. ### Credit Card If Credit Card is selected, the payment terminal prompts you to make a payment using a card. For app builds 12.0.1 and later, card on file is an option. Search for a registered customer and select the saved card on file method to access their saved cards. ### Check Personal and business checks are supported; however, depending on the type and CMS configuration, validation may be required, meaning all fields in the window are required. See [Tender Business and Personal Checks in the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_tender.htm&release=264.0.0&type=5 "The POS app supports both personal and business checks as a tender type. For business checks, only the check amount and check number are required. For personal checks, users can turn on or disable verification. If verification is enabled, all fields—routing number, check number, account number, check amount, and license details—must be entered. If disabled, only the check number, check amount, and license details are required.") . ### Remote Pay by Link Remote Pay by Link supports only some tenders in a multi-tender transaction. If you select an unsupported tender first, Remote Pay by Link is disabled for the remaining balance. If you select Remote Pay by Link first, unsupported tenders are disabled for the remaining balance. | Supported with Remote Pay by Link | Not supported with Remote Pay by Link | | --- | --- | | Credit Card, Gift Card, Reward Card, Loyalty Reward, Store Credit, In-Store Pay by Link | Cash, Check, Miscellaneous, Finance | ### Miscellaneous The type of cards can be configured in CMS. See [Configure Miscellaneous Tender on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_misc_tender_configure.htm&release=264.0.0&type=5 "Point of Sale supports miscellaneous tender as a payment option in the POS app. This allows for more options if the more common or standard payment methods (like card, cash, check, finance, or PayPal) don't work for a merchant's specific payment types. Configure your store and register settings in CMS to support Mischellaneous Tenders."). ### Store Credit A Customer Profile must be logged in to use store credit. This option isn't available for Guest Customers. If you're using store credit from an external system, we recommend considering a migration to Gift Cards or Reward Cards. For instance, you can integrate Clutch to convert store credits into virtual gift cards. If virtual gift cards are available in Clutch, they can be used like standard gift cards, and Clutch can manage their usage going forward. ### Payment Completion Upon completion of payment, the remaining balance shows as zero. Place the order to complete the transaction and you'll be shown the order confirmation screen. ### Known Issues & Restrictions Managing and issuing store credit is only possible when integrating with NetSuite. See [NetSuite Integration Guide](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite_guide.htm&release=264.0.0&type=5 "Integrate your Point of Sale brand with NetSuite, streamlining data and workflows across platforms. Configuring both NetSuite and your content management system (CMS) ensures a seamless connection. This integration helps to maintain consistent branding and product information, and enables efficient order and inventory management. With connected systems, you reduce manual data entry and improve overall operational efficiency."). # Configure NetSuite OMS CMS Integrate NetSuite Order Management System (OMS) with Point of Sale to centralize and streamline order fulfillment processes. Connecting these systems improves inventory visibility and enables efficient order routing. With this integration, retailers gain a unified view of orders, inventory, and customer data. This single view helps create seamless customer experiences. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip The information in this article is not to be confused with the NetSuite ERP service. For information on how to integrate with ERP, read [NetSuite ERP CMS Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite.htm&release=264.0.0&type=5 "Enable order management by integrating your NetSuite ERP with Point of Sale CMS. Begin with an initial configuration on your NetSuite account. Then, complete the setup in the CMS."). 1. In CMS, go to **Store Management** | **Integrations** | **OMS Configurations**. 2. Edit a configuration or click CREATE to create a new one. 3. Select NetSuite as the Service. 4. Fill out the rest of the fields. ![A settings page displays general settings, connectivity, and authentication.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_oms_netsuite_sattings.png)
FieldSectionField TypeRequiredDescriptionExample
ServiceGeneral SettingsPulldownYesSet to NetSuite for standard NetSuite implementation, or Custom for merchant-specific customizations.NetSuite
Organization IDGeneral SettingsTextNoYour NetSuite subsidiary internal ID.1
Custom ClassGeneral SettingsTextYes, if the service is set to "Custom".The path to custom class for the merchant OMS service.com.predictspring.integration.custom.merc-hant.MerchantCustomOMSService
UsernameConnectivity and AuthenticationTextYesThe username to connect to the selected service account.username123
PasswordConnectivity and AuthenticationTextYesThe password to connect to the selected service account.password123
Client IDConnectivity and AuthenticationTextYesThe client ID from the selected service account.osdjwi2Asj19823
Client SecretConnectivity and AuthenticationTextYesThe client secret from the selected service account.mwiwe8293XHw2
EnvironmentConnectivity and AuthenticationPulldownNoThe environment of the selected service account.Production
API versionConnectivity and AuthenticationTextNoThe recommended setting is v51.0.v51.0
Query API versionConnectivity and AuthenticationTextNoThe recommended setting is v51.0.v51.0
5. Save your changes. # Configure No Profile, No Card, No Receipt Returns (NRR) in Point of Sale CMS Enable a flexible return process in CMS without requiring a physical receipt or customer profile. Customers can return products based on a simple search, and you can set preferred refund methods and customize the NRR layout for efficient handling. ## Configure a Returns Policy 1. In CMS, go to **Store Management** | **Return Policy Configuration**. 2. Edit or add a new policy, and then go to **No Receipt Returns**. 3. To allow NRR in offline mode and search by product, turn on **No Receipt Returns - Search by Product.** In online mode, this option adds product search alongside other supported search types in the default NRR layout. If you have a custom NRR layout, you have to choose this option to complete the return process when the Order Search by Product deeplink is configured on the custom layout. 4. Under Tender Type, select the refund tender type(s). Check refunds are only available in app builds version 10.1.1 or greater. 5. Under Reported Tender for the Sales that are Covered by the Value of Returned Merchandise, select the tender type(s) to be reported in an NRR exchange. With this setting, you can set the preferred tender type for the sale portion of the exchange. This tender is used as the first tender for the part of the exchange that is bought with returned items because there's no value for an NRR. Any portion of an uneven exchange that requires additional tendering will report the actual tender values used. If "Credit Card" or "Gift Card" is selected, enter the Reported Card Type and Reported Card Number for NRR exchanges. 6. If a manager login is needed to complete NRR, turn on **Requires Manager Approval**. This setting can be overridden if the "All Returns, Exchanges & Edit Order" approval policy is configured. See [Approval Policies Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_approval_policies.htm&release=264.0.0&type=5 "Control which features and roles in Point of Sale CMS require approval."). 7. To allow returns with taxes without a receipt, turn on **No Receipt Tax Returns**. ## Create a Custom NRR Layout For app builds 10.5.1 and later, the POS app supports customized NRR layouts on the POS app only for online mode. In builds 10.4.1 and earlier, a noneditable default NRR layout is the default, allowing orders to be filtered by customer, order details, and credit card. If No Receipt Returns - Search by Product is enabled, filtering by products is also available in the default layout. 1. In CMS, go to **Layouts** | **Layout Pages**. 2. Click **Add From Template**. 3. Select **No Receipt Returns Search**. 4. By default, the NRR layout template already includes these deeplinks for order filtering: - Order Search by Credit Card - Order Search by Customer - Order Search by Order Information - Order Search by Product If the Order Search by Product deeplink is configured on the custom layout, No Receipt Returns - Search by Product must be enabled to process returns. ## Assign a Custom NRR Layout After you've created a layout, you'll need to assign it to an app configuration to render it on the POS app. 1. In CMS, go to **Apps**. 2. Edit the app config that supports NRR. 3. Go to **UI** | **Search Layouts**. 4. For No Receipt Return Search Layout, select the layout you’ve created. 5. Save your changes. ## Configure Reason Codes A reason code is required for price corrections for NRRs. Selected codes on the POS app are reported in the Electronic Journal and TLogs along with the before-and-after price corrections. 1. In CMS, go to **Store Management** | **Reason Codes**. 2. Select **Return Price Correction**. 3. Click **Create**, and fill out the required fields. 4. Save your changes. ## Set the Duration for Lowest Historical Price Set the number of days in the past to be used to determine the lowest historical price of an item. 1. In CMS, go to **Store Management** | **Store Settings** | **Advanced**. 2. For Lowest price period in days, configure the number of days. # Configure NRR Lowest Price Calculation To populate lowest prices, a Point of Sale account (Merchant, Region, Locale) must set value types for tender types for returns without receipts. - Modern POS App Build: 9.0.1 or above - Platform Support: iPhone & iPad - Offline Support: Yes 1. In CMS, go to **Store Management** | **Store Settings** | **Advanced**. 2. Under Tender types for returns without receipt, the value that is set must have at least one tender type to start collecting the historical prices (for example Cash). After this is set, for any subsequent feed runs, products collect the price history on a day-to-day basis. This also applies to file uploads via Manual Upload. It can take up to 90 minutes for the price history to reflect after a feed upload or direct change. 3. Under Lowest price period in days, set the number of history days to compare prices (for example 7). The default is five days. A price of zero isn't considered the lowest price. While looking for the lowest price, if the system doesn't find a price greater than 0, then no NRR price is returned. # Configure Object and Field-Level Security for the Store Fulfillment Application After your site is set up and ready to use, give store associates and other users access to the fields used by the application. ### Required Editions
View supported editions.
1. Log in to Salesforce as a System Administrator. 2. From Setup, in the Quick Find box, enter Object Manager, and then select **Object Manager**. 3. Select **Shipment Item**. 4. Set permissions for the Fulfillment Order Product field. 1. In the left panel, select **Fields & Relationships**. 2. Select **Fulfillment Order Product**. 3. Click **Set Field-Level Security**, set all options to visible, and click **Save**. 5. Repeat step 4 for the Order Product Summary field. 6. Return to Object Manager and select **Shipment**. 7. Repeat step 4 for the Fulfillment Order, Status, and Ship to Address fields. 8. Return to Object Manager and select **Fulfillment Order**. 9. Repeat step 4 for the Fulfilled Location field. #### See Also - [Store Fulfillment App Setup](https://help.salesforce.com/s/articleView?id=commerce.om_store_fulfillment_application.htm&release=264.0.0&type=5 "The Store Fulfillment app provides guided workflows that walk store associates through the process of picking and packing each order. Store associates can indicate how much of each item they can fulfill and how much they can pack. They can also track the items that they can’t fulfill and the reasons for rejection. Access to the site is controlled using the Identity User license. After the Identity User license is configured, create accounts for your store associates and assign the license to them.") # Configure Offline Promotions Turn on and manage offline promotions in Point of Sale CMS Starting with the release of the 8.7.1 build, Point of Sale offers support for offline promotions in the POS app. The types of promotions supported offline are Amount Off, Percentage Off, No-cost Samples, Fixed Price, Private Sale, Buy One Get One (BOGO), and Buy X for Y (BXGY). Listed are promotion configurations and how they interact while in offline mode: - **Single-use Code**—This won’t be supported offline. - **Redemption Limit**—This won’t be handled offline. - **Customer Rules**—This won’t be supported offline. - **Shipping Methods**—This won’t be supported offline as all products are in-store and therefore not online. ## Configure Point of Sale CMS for Offline Promotions To turn on the application of promotions to a cart while in offline mode: 1. Go to **Store Management > Offline Configurations**. 2. Turn on **Enable offline promotions**. ## Viewing Offline Logs See [Offline Promotion Logs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_offline_promotion_logs.htm&release=264.0.0&type=5 "Set up promotions in Point of Sale CMS so that your point of sale (POS) app can download the latest promotions in offline mode.") for instructions on how to view the logs and any related information. If making changes in Point of Sale CMS, for example deactivating a promotion, it will take up to one hour to accurately view the offline logs. For more information on offline support, see [POS Offline Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_settings_pos_offline_support.htm&release=264.0.0&type=5 "Continue operating the POS app if the device isn't connected to WiFi or Ethernet, or your internet service is down. Sync the POS app data after you're back online."). ## Known Issues and Restrictions Offline promotions support all fields from the [Product Field Mapping](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters."). However, not all fields are indexed for offline use, meaning promotions that rely on custom fields may not work in offline mode. # Configure Offline Returns for CMS and Adyen Enable returns and exchanges in the POS app using app configurations. Use app settings to control return reasons, supported exchanges, and determine default item selection on the refund screen. To allow unreferenced refunds and offline credit card refunds, configure Adyen with maximum offline refund amounts. 1. In CMS, go to **Store Associate** | **Returns and Exchanges**. 2. Select your desired workflow to allow returns only or allow returns and exchanges. 3. Got to **Modules** | **POS**and set the following App Config settings: - Return Order Search Page V2 UI (This flag has been deprecated as of April 2024) - Return Reasons (Ensure to set the non-deprecated reasons) - No items selected by default on refund screen (If you don’t want to auot-select all the items in the order for return) - Support Exchanges 4. Relaunch your POS app. Contact the Adyen POS Support Team to allow unreferenced refunds, delay refund capture in Adyen, and the maximum offline refund amount. # Configure Omnichannel Capabilities Efficiently manage orders with multiple fulfillment types per cart or a single fulfillment type with OmniChannel in Point of Sale CMS. Customize the product display page and configure shipping methods on the Point of Sale (POS) app. - **[Omnichannel (v2) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_v2_overview.htm&release=264.0.0&type=5)** Integrate shopping experiences across channels with Point of Sale's Omnichannel. - **[Omni V1 vs Omni V2 Settings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omni1_vs_omni2_settings.htm&release=264.0.0&type=5)** Understand the differences between Point of Sale Omni v1 and v2 settings. - **[Enabling Omni Settings in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_enabling_omni_settings.htm&release=264.0.0&type=5)** Set up Omnichannel fulfillment options in CMS so that your store associates can fulfill orders from the Point of Sale (POS) app. - **[Omnichannel: Single Fulfillment Type per Cart](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_single_fulfillment_type_per_cart.htm&release=264.0.0&type=5)** Set the default fulfillment type in Point of Sale CMS to make sure orders work if a merchant can't support different fulfillment types in one cart. - **[Omnichannel: Multiple Fulfillment Types per Cart](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_multiple_fulfillment_types.htm&release=264.0.0&type=5)** Allows items in the cart to have multiple fulfillment types in a single order with Point of Sale's Omnichannel solution. - **[Fulfillment Type Combination Rules](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_fulfillment_type_combination_rules.htm&release=264.0.0&type=5)** Configure fulfillment combination rules in Point of Sale CMS to prevent incompatible order types. - **[Omnichannel: Customizing Product Display Page (PDP)](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_customizing_product_display_page_pdp.htm&release=264.0.0&type=5)** Configure the Product Display Page (PDP) in the Point of Sale (POS) app to present products effectively and improve the buying process. - **[Shipping Methods Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_shipping_methods_management.htm&release=264.0.0&type=5)** Create different types of shipping methods for orders and transitions in Point of Sale CMS. - **[Omnichannel: Configuring Shipping Methods on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_shipping_methods_on_pos_app.htm&release=264.0.0&type=5)** Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls. - **[Omnichannel: Delivery and Pickup Date Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_delivery_and_pickup_date_overview.htm&release=264.0.0&type=5)** Configure Delivery and Pickup Dates for Omnichannel in Point of Sale. - **[Omnichannel: Configuring Delivery and Pickup Dates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_deliveryand_pickup_dates.htm&release=264.0.0&type=5)** Configure delivery and pickup dates to provide customers with the ability to select delivery options in the Point of Sale (POS) app. - **[Omnichannel: Serialized Products](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_serialized_products.htm&release=264.0.0&type=5)** Configure store associates to record serial numbers for serialized products within the Point of Sale (POS) app. - **[Omnichannel: POS App Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_point_of_sale_app_flow.htm&release=264.0.0&type=5)** Create customized shopping experiences for your customers using the Point of Sale (POS) app. # Configure Order Confirmation Actions for Tax-Free Forms To issue, print, and void a tax-free form in the POS, add actions to the Order Confirmation layout. 1. Go to **Layouts** | **Layout templates** | **Order Confirmation**. 2. Create or edit an existing layout. 3. Add these deep links: 1. To issue the form, add **Issue Tax-Free Form**. 2. To print the form, add **Print Tax-Free Form**. 3. To void the form, add **Void Tax-Free Form**. 4. To show the form status, add the PS Tag **:ps\_tax\_free\_form\_status.L**. 5. Save your changes. 6. Open the POS app and complete a sales transaction. If the order qualifies, tap **Issue Tax-Free Form**on the Order Confirmation page to open the Global Blue web view. Enter the customer’s passport details and product classification information, submit the form, and then print the form on A4 or as a thermal receipt. ![A screen displays options for Global Blue integration in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_global_blue_order_confirm_layout_actions.png) #### See Also - [_Salesforce Help:_ Configure Global Blue in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue_config_cms.htm&release=264.0.0&type=5 "To issue tax-free forms in the POS app, integrate Global Blue in Point of Sale CMS.") - [_Salesforce Help:_ Manage Global Blue Tax-Free Forms in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue.htm&release=264.0.0&type=5 "Create tax-free forms for eligible customers during checkout by using Global Blue in the POS app. When a customer qualifies for tax-free shopping, complete the Global Blue form in the POS app and print the form on an A4 or thermal printer.") - [Configure Global Blue in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue_config_cms.htm&release=264.0.0&type=5 "To issue tax-free forms in the POS app, integrate Global Blue in Point of Sale CMS.") # Configure Origin Rules with CDN Zone APIs Configure Phased headless rollouts of SFRA to PWA implementations with the new CDN Zone APIs. You can now migrate specific pages to a PWA origin without completely switching from SFRA to PWA. You can also create and update origin rules to direct traffic to a PWA origin. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note You can use origin rules configured with the CDN Zone APIs for customer traffic that targets Salesforce Commerce Cloud or a PWA origin. #### See Also - [getMrtRules](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=getMrtRules) - [createMrtRules](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=createMrtRules) - [updateMrtRule](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=updateMrtRule) - [updateMrtHostname](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=updateMrtHostname) - [deleteMrtRuleset](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=deleteMrtRuleset) - [deleteMrtRule](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=deleteMrtRule) # Configure Page Designer Fingerprint Caching with TTL Control Configure how long Page Designer fingerprints are cached by setting the Time to Live (TTL) value. This enhancement enables fingerprint caching for pages and components with schedule-based and locale targeting visibility rules. A Page Designer fingerprint identifies which version of a page to display based on its visibility rules and targeting configuration. Page Designer fingerprint caching behavior varies based on the type of visibility rules configured on pages and components: - **Pages without visibility rules:** Fingerprints are cached for the full TTL duration without modification. - **Pages with schedule-based or locale targeting visibility rules:** Fingerprint caching time is shortened if schedules or locales indicate an earlier content update. - **Pages with campaign qualifiers or customer groups:** Fingerprints are not cached. Caching performance can be tracked in Reports & Dashboards. To implement tracking and control what data appears in Reports & Dashboards, developers can use the following controllers : - `__SYSTEM__Page-Include` (relevant for DWScript based implementations) - `__SYSTEM__ShopperExperience-GetPagesIdV1` (relevant for SCAPI based implementations) - `__SYSTEM__ShopperExperience-GetPagesV1` (relevant for SCAPI based implementations) **Where:** This feature applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Administration** | **Sites** | **Manage Sites** | **Site** | **Cache**. Select **Enable Page Caching** and specify a **Time to Live (TTL) of Page Designer Fingerprint** setting. The default setting is 24 hours (86,400 seconds), but you can change this value. #### See Also - [Page Designer Caching](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-dev-for-page-designer.html#page-designer-caching) # Configure Payment Gateways Integrate payment gateways into Point of Sale to securely process customer transactions. Payment gateways authorize and settle payments, ensuring smooth and reliable financial operations. You can configure callback URLs for seamless payment gateway integrations. Compare payment providers and terminal payment gateway processors to find the best solution for your retail business.t - **[Merchant Configuration and API Integration Fields](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_merch_config.htm&release=264.0.0&type=5)** Merchants in the CMS have key properties such as their name, locale, region, and currency support. Using Cloud configuration details, Point of Sale connects to the merchant's e-commerce platform. View the merchant's developer credentials, API keys, and related API usage details for efficient API management. You can also determine if the environment is active and if it's a store merchant. - **[Configure a Payment Gateway](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_config.htm&release=264.0.0&type=5)** Configure payment gateways in Point of Sale CMS to securely process customer payments. By connecting preferred payment providers, you streamline transactions and enhance the customer checkout experience. Accept a variety of payment methods, reduce friction, and improve overall sales efficiency. - **[Payment Providers: Feature Comparison Matrix](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_feature_comp.htm&release=264.0.0&type=5)** Learn which payment providers, such as Adyen, Elavon, and Verifone, are supported in Point of Sale. Each payment processor provides unique support for omni-channel and POS implementations. Knowing which provider best suits your business needs helps you deliver exceptional customer experiences. - **[Point of Sale eComm Integration Guide](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_integrate_guide.htm&release=264.0.0&type=5)** Point of Sale offers native integration with leading e-commerce platforms, such as Demandware and Magento, to unify data and streamline operations. - **[Terminal Payment Gateway Processor Matrix](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_payment_gateway_matrix.htm&release=264.0.0&type=5)** Discover which processors are supported by each payment gateway in Point of Sale. Payment gateways, like Verifone Point, support specific processors, such as Fiserv. Knowing the supported processors for each gateway helps you to plan your payment processing strategy. You can optimize your retail operations by choosing the right combination. - **[Payment Error Handling](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_error_handling.htm&release=264.0.0&type=5)** An order failure with unknown payment statuses is critical. Point of Sale made enhancements addressing this issue by adding additional parameters and descriptive order statuses in the CMS reporting. Additionally, there is the abort option in the app's user interface to mark the payment status as unknown in case of communication failures between the app and the terminal. This enables you to verify and reconcile the transaction later depending on the order status in the CMS failed order report. - **[Point of Sale Payments Frequently Asked Questions](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_faq.htm&release=264.0.0&type=5)** Get answers to frequently-asked questions about payment transactions. # Configure PBL in Point of Sale CMS Enable in-store and remote payment options with Pay by Link (PBL) to enhance customer convenience and flexibility. Streamline payment processes, reduce checkout times, and improve operational efficiency by configuring PBL in the tender display order, setting polling times, and customizing deep links and pending order confirmation layouts. Modern POS App Build: - Adyen: Version 7.13.5 (Version 9.8.1 required for multi-tendering) - Verifone: Version 10.0.1 - Platform Support: iPad & iPhone - Offline Support: Not supported 1. Add PBL as a supported tender. Gift cards as a tender for PBL aren’t supported for Verifone terminals. 1. In CMS, go to **Store Settings** | **Payment**. 2. Expand **Advanced**. 3. For Supported Tenders, add these tenders seperated by commas: - (In Store) “PayByLink” - (Remote) “RemotePayByLink” 2. List PBL in the tender display order. 1. In CMS, go to **Apps** | **All**. 2. Edit an app config. 3. Go to **Modules** | **POS** | **Multi-Tender**. 4. Edit **Tenders Display Order**. 5. Verify that Remote Pay By Link and In-Store Pay By Link are on the list. 3. Set the polling time to wait for a payment response for PBL. 1. In CMS, go to **Store Management** | **Store Settings** | **Payment**. 2. Expand **HiPay**. 3. For Time to wait for payment response from Payment provider, input the time in minutes. 4. Save your changes. 4. Configure a deep link to access PBL in the cart in the POS app. 1. In CMS, edit a Cart Options Layout. 2. Using the deep link picker, add the (In Store) “Start In Store Pay by Link” and (Remote) “Start Remote Pay by Link” deep links to the layout. 3. Set and save your changes. 5. To show pending payment information to customers, set up a Pending Order Confirmation Layout. 1. In CMS, go to **Layouts** | **Layout Templates** | **Order Confirmation**. 2. Select **Add From Template**. 3. Select **Pending Payment Link**. 4. Edit and then publish the layout. 5. Set the layout in an app config by going to **App Config** | **Order Confirmation** | **Layout**. 6. (Optional) Customize the default PBL email template. 1. In CMS, go to **Layouts** | **Layout Templates** | **Email & Print Templates**. 2. Select **Add From Template**. 3. Select **Share Payment Link**. 4. Edit and then publish the layout. # Configure PCI 4.0 Compliance with eCDN PCI Tools The B2C Commerce eCDN PCI tools now include Page Shield. Page Shield helps you manage resources loaded by your website visitors. Your security team is notified with an alert when a script is changed or is flagged as malicious. You can also access policy violations via LogCenter and stream using logpush. **When:** Starting March, 15 2025, eCDN PCI tools with Page Shield will be available via CDN-API. **How:** These endpoints are available for Page Shield. - Get scripts identified by [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only) - [Get page shield scripts](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=getPageShieldScripts) - all requests matching the parameters specified - [Get page shield script](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=getPageShieldScript) - single script - Configure Policies to block payment scripts (allow only authorized payment scripts) - [Get page shield policies](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=getPageShieldPolicies) - all policies - [Create page shield policy](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=createPageShieldPolicy) - create one - [Get page shield policy](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=getPageShieldPolicy) - individual policy - [Delete page shield policy](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=deletePageShieldPolicy) - Configure webhooks and notifications to monitor newly uploaded scripts and code - [Get page shield notification](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=getPageShieldNotification) - [Put page shield notification](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=putPageShieldNotification) - [Delete page shield notification](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=deletePageShieldNotification) - [eCDN Logpush](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-zones-logpush.html) introduces a new job type for page shield, this adds streaming policy violations to your S3 bucket - [Create logpush job](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=createLogpushJob) #### See Also - [eCDN PCI 4.0 Compliance Tools](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-pci-4-compliance.html) # Configure PDP Layout for Product Bundle in Point of Sale CMS Map a dedicated product page layout to bundle child products so the POS app shows style choices, availability, and price for the bundle. When an associate taps a child product from a bundle, the point of sale app sets a BundleID product attribute on it. Add a PDP mapping rule that recognizes this attribute so the child opens on a layout for the bundle experience. Without this rule, the child opens on the store's default product page, missing the availability section and bundle-specific price layout. 1. In CMS, go to **Apps** and edit a configuration. Go to **UI** **| PDP Layouts** and edit **PDP Mappings**. 2. Add a rule to PDP mappings with these values. | Setting | Value | | --- | --- | | **Attribute Type** | PRODUCT\_ATTRIBUTE | | **Attribute Name** | BundleID (spelled and cased exactly as shown) | | **Attribute Value** | ^(\\s|\\S)(\\S)+(\\s|\\S)$—matches a product with any non-empty BundleID value | | **Layout ID** | The ID of the bundle child layout you build in the next step | 3. Move the new rule above any broader rule that a bundle child product would also match. The app uses the first matching rule in the list. A broader rule above this one prevents bundle children from reaching their dedicated layout. 4. Build and publish the PDP layout that the rule's Layout ID points to. Include style selectors, the stock availability section, and price (including any discounted or struck-through price). Arrange, show, or hide sections however you want the bundle experience to read. Don't add a quantity selector, a fulfillment selector, or a bottom action button to this layout. The bundle (parent) page owns the quantity and fulfillment for every item in the bundle. The app adds the **Confirm and Next** or **Add to Cart** button automatically. Open a bundle and tap a child product to confirm the setup. The page shows your configured style choices, the availability section, and the child's price. The app's button appears at the bottom. If the child opens on the default product page instead, the availability section and the bundle-specific price layout are missing. Check that: - The rule's attribute name and value pattern match exactly what's shown in this task. - The rule sits above any conflicting rule. - The layout publishes. #### See Also - [_Salesforce Help:_ Product Bundles in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_product_bundles.htm&release=264.0.0&type=5 "A product bundle groups a parent item with required child items. It sells, returns, and ships as one unit.") # Configure Point of Sale CMS Begin by setting up Point of Sale CMS, the central tool for managing your retail environment. Customize user settings, assign roles, and configure multilanguage and time zone preferences to match your store operations. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In 2024, Salesforce acquired PredictSpring, a provider of modern retail point-of-sale (POS) software built natively in the cloud. PredictSpring was renamed Retail Cloud and is now called Point of Sale. You may still see references to PredictSpring or Retail Cloud in the Point of Sale app and in our documentation. - **[CMS for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_retail_cloud_cms.htm&release=264.0.0&type=5)** Access the Point of Sale CMS to customize POS app settings. Access CMS using a corporate Gmail account, link non-Gmail accounts, and set up single sign-on (SSO) for added secruity and user access control. - **[Customize User Settings](https://help.salesforce.com/s/articleView?id=commerce.rt_customize_user_settings.htm&release=264.0.0&type=5)** Control user access and permissions within the system. Add, modify, and remove user accounts, as well as assign roles and permissions to control access to specific features and data. Configure security settings, such as password policies and multi-factor authentication, to protect user accounts and data. # Configure Point of Sale Data Feeds Point of Sale data feeds streamline data integration, ensuring your retail operations run on accurate and up-to-date information. Configuring data feeds involves managing feeds and setting field mappings, so you can customize the flow of information. Refer to the feed file specifications to ensure data integrity and compatibility with the Point of Sale platform. By configuring data feeds properly, you gain better visibility into your retail business and optimize decision-making. - **[Manage Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage.htm&release=264.0.0&type=5)** Configure Point of Sale data feeds to manage and schedule the transfer of product, pricing, and inventory data. Managing feeds ensures accurate data synchronization between systems, such as exporting documents in CMS. You can manually run feeds, schedule them for automated updates, and implement multi-region feeds for global operations. You can also monitor feed pipelines and logs to identify and address any issues, and configure and manage export jobs for efficient data delivery. - **[Set Field Mappings](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps.htm&release=264.0.0&type=5)** Set Field Mappings in Point of Sale CMS to transform data from external sources into the format that Point of Sale uses. Field mappings use transformations and regular expressions. When you import data feeds, the field mappings ensure that your data is accurate and consistent. This consistency helps to streamline your retail operations. - **[Review Feed File Specifications](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs.htm&release=264.0.0&type=5)** Use data feeds to import and update critical product, inventory, pricing, and store data in Point of Sale. Data feeds include detailed specifications and examples, such as ASN, category, notification, and POS register feeds. Note that the POS register feed only updates existing registers and does not create new ones. You can also manage product bundles, inventory, promotions, store associates, and tax rates using data feeds. With data feeds, you can ensure your Point of Sale data is accurate and up-to-date, which leads to improved sales and customer satisfaction. # Configure Point of Sale Digital Contracts for Products Map digital contracts to product attributes. When a cart item's attribute matches a configured value, the app requires contract signing at checkout. Before you configure Digital Contracts: - Create contract layouts. See [Manage Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_process.htm&release=264.0.0&type=5 "Learn how to create and publish layouts using the Point of Sale Layout Editor, including starting from a blank layout or a template, and managing live versions, drafts, and scheduling. Discover how to edit, save, publish, and restore layouts, ensuring your content is always up-to-date and tailored to your needs."). 1. In the Point of Sale CMS, go to **Store Management** | **Store Settings** | **Product**. 2. Edit **Digital Contract Configuration**. 3. Select a product attribute, such as CustomString 0. 4. Select a language. 5. Add a rule and specify an attribute value, such as "membership" or "reward". 6. Select the contract layout for this rule. When a product with this attribute value is added to the cart, this contract is required at checkout. 7. Repeat steps 5-6 to add more rules for different languages and attribute values. 8. Save your changes. ![The Digital Contract Configuration dialog in CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_digital_contracts.png) When a cart item's attribute matches a configured value, the POS app requires the mapped contract for signing at checkout. # Configure Point of Sale Refund Processing Policies for Credit Cards Configure your preferred refund processor for credit card orders by order type. You can also support unreferenced refunds in the POS app. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For credit card returns and refunds, the Refund Processing Policies for Credit Cards setting takes precedence over the [Return Policy Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_returns_policy_configuration.htm&release=264.0.0&type=5 "The Point of Sale (POS) app lets store associates perform returns on purchased items based on configured policies."). 1. In CMS, go to **Store Management | Return Policy Configuration**. 2. Under Refund Processing Policies for Credit Cards, edit a policy for the order type. In-store order types can include endless aisle and mixed cart orders. Endless aisle orders are online orders placed in-store. Web Order refers to ecommerce orders placed outside Point of Sale. 3. On the next screen, select a processor under **Refund Processor**. For more information on available processor types, refer to Refund System Options. 4. Save your changes. - **[Refund System Options](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_refund_system_options.htm&release=264.0.0&type=5)** With Point of Sale, process credit card refunds using default, unreferenced, or external systems. # Configure POS App Set up your Point of Sale (POS) application and register to start processong transations efficiently. Check the app permissions, configure the hardware, and set up the netwrok topology for the app and the hardware. - **[Activating the Point of Sale App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_activate_retail_cloud_pos_app.htm&release=264.0.0&type=5)** Scan a QR code to turn on the POS app on your device for the first time. Make sure you have CMS environment access and a POS device with the TestFlight app installed. - **[Check Point of Sale App Permissions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_pos_app_perms.htm&release=264.0.0&type=5)** Check the status of the Point of Sale (POS) app permissions. Review a list of all the permissions required by the app to fully function and are prompted to approve any permission that is not authorized. - **[Configure Current Register Hardware](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_register_hardware.htm&release=264.0.0&type=5)** Check the current register hardware configuration in the Point of Sale (POS) app. View the current configuration for each device connected to the register, device details, and the configuration source. - **[Hardware Topology Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_topology_setup.htm&release=264.0.0&type=5)** Point of Sale's Printer and Payment Terminal Topology allows you to determine whether the application is paired with a printer or payment terminal one-to-one (1:1) for an extended period of functionality or whether it's one-to-many (1:N) where it is prompted each time to select the device to use. - **[Network Topology for POS and Hardware](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_network_topology.htm&release=264.0.0&type=5)** Integrate Point of Sale with supported peripherals by understanding the necessary network calls and communication protocols. Ensures communication among your iPad, iPhone, and devices like card readers, printers, scanners, and cash drawers. - **[Best Practices for Wi-Fi and 3G/LTE Setup on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_best_wifi_lte_practices.htm&release=264.0.0&type=5)** Confirm compatibility with Store LAN peripherals so your Cellular iPad connects, regardless of the network. Select LTE as the backup network mode to provide a failover mechanism for continuous connectivity if Wi-Fi fails. - **[Activate and Register Point of Sale App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_activate_pos_app.htm&release=264.0.0&type=5)** Activate your iOS device and install it as in-store register. First, download the TestFlight and Point of Sale (POS) apps on your iOS device. - **[Access API Keys for POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_api_keys_for_pos.htm&release=264.0.0&type=5)** Increase security by using Point of Sale CMS to generate brand and environment-specific Activation QR Codes. Simplify the process of managing API keys for different Point of Sale (POS) app brands and environments. - **[Distribute, Activate, and Deploy Point of Sale App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_deploy_pos.htm&release=264.0.0&type=5)** Distribute the Point of Sale (POS) app to testers or the store through production custom apps, UAT via TestFlight, or production enterprise IPA. - **[Start the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_pos_app_startup.htm&release=264.0.0&type=5)** Configure your system to get the Point of Sale (POS) app to work. ​​Grant permissions to make certain the app functions completely, turn on features like scanning QR codes and connecting to devices via Device Manager. - **[Using Production TestFlight IPAs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_production_testflight_ipas.htm&release=264.0.0&type=5)** Sign IPAs with your own credentials in Point of Sale before distributing them to stores. Use an MDM provider to share the application or use TestFlight to test with both internal and external users. - **[Request Tap To Pay Entitlement](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_tap_to_pay_entitlement.htm&release=264.0.0&type=5)** Configure Tap to Pay on iPhone for your custom apps. Request an entitlement from Apple to use iPhones as payment terminals with the Point of Sale Platform. - **[Setting up TestFlight on Your Device](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_setup_testflight.htm&release=264.0.0&type=5)** Test Point of Sale (POS) on Apple devices using TestFlight so merchants can effectively test the app. Register new accounts and provide corporate email addresses to your Salesforce contact to receive the TestFlight app. - **[Migrating to Point of Sale Release App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_migrate_to_release_app.htm&release=264.0.0&type=5)** Migrate from the UAT app to the Point of Sale (POS) Release app. Confirm that you have received a TestFlight invite to access the new app. # Configure POS App Timeouts for Security and Cart Management Configure timeout sessions in the Point of Sale (POS) app to automatically log out users after a period of inactivity, enhancing security. Specify timeouts for cart items to clear abandoned carts, store associate logins to protect sensitive data, and customer profile logins to maintain privacy. Adjusting these settings helps maintain security and manage cart contents efficiently. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Regardless of the configurations, the POS app has a set timeout of eight hours from the last time it was used. After eight hours, the store associate is logged out and all cart items are removed. ## Cart Session Timeout After reaching the cart session timeout, the store associate is logged out and items in the cart are removed. There are two ways to configure this feature, via Store Settings or App Config. With the Store Settings, the timeout is applied globally to all the registers. With the App Config, the timeout is applied to a specific app configuration and overrides the Store Settings. For example, the Manager’s app configuration can have a longer timeout than the Associate's app configuration. ### Store Settings 1. In CMS, go to **Store Management > Store Settings > Transaction**. 2. Under **Cart Session Expiry Duration in Seconds (cartSessionExpiryDurationInSeconds)**, enter the timeout in seconds. 3. Save your changes. ### App Config You can configure the amount of time a store associate can be logged into the app before being automatically logged out. If this isn't configured, the timeout defaults to eight hours. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This setting doesn't show a warning to the user and automatically logs the associate out of the application. 1. In CMS, go to **Apps > All**. 2. Edit the app configuration you want to configure the timeout. 3. Go to **Modules > Settings**. 4. Turn on **Enable Session Time**. 5. Under **Session Timeout in Seconds (IdleTime)**, enter the timeout in seconds. The minimum is 120 seconds. 6. Save your changes.![The Enable Session Timeout setting in Point of Sale CMS, where you enter the session timeout in seconds value.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_pos_cart_timeout_app_config.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The timeout set in Session Timeout in Seconds (IdleTime) isn't enforced if multitendering is started in the app or if tendering has started on the cart screen. ## Store Associate Session You can configure the amount of time a store associate can be logged into the app before being automatically logged out. If this isn't configured, the timeout defaults to eight hours. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This setting doesn't show a warning to the user and automatically logs the associate out of the application. 1. In CMS, go to **Store Management > Store Settings > Associate**. 2. Under **Length of associate session in seconds on login (associateLoginSessionDuration)**, enter the timeout in seconds. 3. Save your changes. ## Customer Profile Login Session You can also configure the amount of time a customer profile can be logged. This only logs out the customer as the store associate remains logged in and items remain in the cart. 1. In CMS, go to **Store Management > Store Settings > Checkout**. 2. Expand **Advanced**. 3. Under **Customer Login Session Length (login.session.timeout.minutes)**, enter the timeout in minutes. 4. Save your changes. ## iPad You can also configure the amount of time that elapses before the iPad turns off the display and you can swipe the screen to resume. This only affects the device's lockout. This won't log out the store associate, customer profile, or remove cart items if the native device timeout settings are set less than the cart session and the customer profile session. 1. On the iPad, go to **Settings > Display & Brightness**. 2. Tap **Auto-Lock**. 3. Select the timeout. ![The Auto-lock setting on an iPad.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_pos_app_timeout_ipad.png) # Configure POS Settings Configure and customize the Point of Sale (POS) app to meet your specific business needs. Tailor the cart options, price checker, and product display labels, ensuring a seamless and efficient user experience. - **[Capturing Customer Information for Returns with Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customer_return_info.htm&release=264.0.0&type=5)** View and manage customer information for returns, both online and offline. Customize a layout so that Point of Sale (POS) app users can see the information during the return process, including customer name and email address. - **[Require Customer Information for Returns in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_require_info_cust_returns.htm&release=264.0.0&type=5)** Collect customer information for all return types in the POS app and increase clienteling opportunities. Store associates can search for existing customer profiles and automatically prefill the return form with the customer’s information. If no profile is found, the store associate can create one for the customer. Additionally, if the original sales order included customer details, those fields also prefill the return form. - **[Capturing Customer Information for Sales in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customer_info_sales.htm&release=264.0.0&type=5)** Configure a layout to show customer information such as name, email address, address, and other details to show associates in the Point of Sale (POS) app during a sale. - **[Configuring and Customizing Cart Options in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_custom_cart_options.htm&release=264.0.0&type=5)** Add features that appear on the right side panel of the POS app, such as overrides, void cart, tax-exempt, and so on. - **[Configuring Price Checker in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_price_checker_pos_app.htm&release=264.0.0&type=5)** Create an app that customers use to scan a product’s bar code to get the current price. Change the layouts, visibility settings, and other important settings. - **[Configuring Product Display Labels in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_product_display_labels.htm&release=264.0.0&type=5)** Select which product identifiers can be shown throughout the Point of Sale (POS) app to help confirm the items in an order for a faster and more efficient checkout process. - **[Control Product Window Visibility Based on Product Attributes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_prod_window_visbility.htm&release=264.0.0&type=5)** In the POS app, the product window offers two options, adding the product to the cart and viewing the Product Display Page (PDP). Using the CMS, you can configure whether or not the product window appears when you scan a product. This is based on conditions you set by using the product’s attributes. - **[Create Custom Messages in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_custom_messages.htm&release=264.0.0&type=5)** Customize messages that appear on different screens based on different events. - **[Establish OneLogin with POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_one_login.htm&release=264.0.0&type=5)** Integrate your Point of Sale (POS) app with OneLogin to validate store associate credentials. Verify secure communication with Salsesforce and streamline user management using your existing identity and access management tools. Configure your OneLogin portal and CMS settings to enable seamless authentication for both online and offline access. - **[Configure POS App Timeouts for Security and Cart Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_app_timeouts.htm&release=264.0.0&type=5)** Configure timeout sessions in the Point of Sale (POS) app to automatically log out users after a period of inactivity, enhancing security. Specify timeouts for cart items to clear abandoned carts, store associate logins to protect sensitive data, and customer profile logins to maintain privacy. Adjusting these settings helps maintain security and manage cart contents efficiently. - **[Predictive Cash Tendering in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_predictive_cash_tendering.htm&release=264.0.0&type=5)** Point of Sale's Predictive Cash Tendering improves efficiency during the cash tendering process. Enable the feature to allow the POS app calculate up to five predicted cash-tender amounts. Select a predicted cash tender amount or manually enter it in the text field. - **[Localize Receipts in POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_localize_receipts.htm&release=264.0.0&type=5)** Use Point of Sale (POS) App to localize the content of the paper receipt based on the user’s choice in the order confirmation screen. - **[Receipt Printer Connection Types Register and Store Level Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_receipt_printer_register_store_config.htm&release=264.0.0&type=5)** Point of Sale allows for the customization of receipt printer connection types at both the store and register level. - **[Region Support in POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_region_support.htm&release=264.0.0&type=5)** Localize the POS app to make sure that your users see the correct language and region. Change the language in the app by setting the language in the device or by using the region deep link to switch the app language, independent of the device's language. - **[Configure Speech Recognition (Beta) in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_speech_recognition_beta.htm&release=264.0.0&type=5)** Turn on speech recognition in the POS app to streamline workflows. With voice commands, users can efficiently access features, turning on hands-free operation, and enhancing accessibility. Configure custom voice commands and deep links in CMS to tailor the experience for different languages and actions within the app. - **[Supporting PunchOut Webpages on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_punchout_webpages.htm&release=264.0.0&type=5)** Integrate web-based workflows, like adding custom products, directly into store transactions using the Point of Sale (POS) app. Launch preconfigured web pages from the POS app to securely pass data and trigger actions via URL parameters. The POS app receives a message upon completion, which streamlines tasks such as customer login and cart navigation, enhancing the in-store shopping experience. - **[Create Web Authorization Token](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_web_auth_token.htm&release=264.0.0&type=5)** Configure token fields to generate a web authentication token in the Point of Sale (POS) app. This token is then passed as an Authorization header in a later network call. - **[Customizing Navigation Bars on Your POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customize_nav_bars_pos_app.htm&release=264.0.0&type=5)** Set up the navigation bar, hamburger menu, and tabs within the Point of Sale Point of Sale (POS) app. Control the tab display by selecting visibility options, such as always visible or visible to signed-in users only. Configure app settings like tab color, text color, and icon visibility to create a streamlined user experience. # Configure Pricing Procedure Plans for B2B Stores Configure pricing procedure plans to customize how pricing is calculated in your B2B stores. Create a procedure plan from the default Commerce procedure plan template and then customize it with your own context definitions, pricing procedures, and Apex hooks. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Turn on and configure Advanced Pricing for Commerce Powered by Revenue Cloud. For details, see [Configure Advanced Pricing for Commerce Powered by Revenue Cloud](https://help.salesforce.com/s/articleView?id=commerce.comm_advanced_pricing_for_commerce_stores.htm&language=en_US&type=5). To extend the context definitions on the account and product nodes to influence pricing, turn on Pricing Context Extensibility. See [Extend the Pricing Context for B2B or D2C Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricing_context_extension.htm&language=en_US). 2. Click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 3. In the Quick Find box, enter `Procedure Plan Definition Templates`, and select **Procedure Plan Definition Templates**. 4. Select the **Default Commerce Pricing Procedure Plan Definition Template** template. 5. Select your context definition. By default, the Commerce context definition is selected. If you created a custom context definition, select it. Use an extended context definition based on the default context definition. Cloned context definitions aren't supported. 6. In the Procedure Plan Sections area, select a pricing procedure that uses the same context definition as the one you selected in the previous step. If a default Commerce pricing procedure exists, it's added automatically. Otherwise, manually select the pricing procedure you want to use. Add only one pricing procedure section per plan. 7. Use Apex sections to run custom pricing logic. You can include multiple Pricing and Apex sections. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note For information about creating Apex hooks for pricing, see [Customize B2B Store Pricing with Apex Hooks](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_pricing_apex_hooks.htm&release=264.0.0&type=5 "To support unique pricing scenarios, add custom Apex logic to your pricing procedure plans. You can use Apex hooks to apply custom business logic that modifies the pricing context before or after your pricing procedure runs. Apex hooks are custom code that run at specific points in the pricing procedure plan."). 1. In the Procedure Plan Sections area, click **Add**. 2. Select **Standard** type. 3. For **Section Type**, select **Apex**. 4. Enter a name for your section. 5. In the section details, set **Phases** to **Pricing**, **Resolution Type** to **Default**, and select your Apex class. 6. Click **Save**. 8. If you added multiple sections, click **Manage Sections**. Drag the sections to set their exact execution order. ![Commerce Pricing Procedure Plan Definition Template](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_pricing_procedure_plan.png) 9. Save the template as a new procedure plan definition. The newly created procedure plan definition is inactive and appears in the Procedure Plan Definitions list. 10. From Setup, in the Quick Find box, enter `Procedure Plan Definitions`, and select **Procedure Plan Definitions**. 11. Select the procedure plan that you created in the previous step. 12. Click **Activate** and confirm. Use only activated procedure plans in your stores. 13. From your store, go to **Settings** | **Store** and then select the Pricing tab. 14. In **Pricing Procedure Plan**, select your newly activated procedure plan. The selected plan now applies to the current store. If you don't select a procedure plan, the org's default pricing procedure is used. ![Pricing Settings with Store-Specific Procedure Plan](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_select_procedure_plan.png) 15. Click **Save**. #### See Also - [Pricing Procedure Plans for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricing_procedure_plans.htm&release=264.0.0&type=5 "Use procedure plans to customize how prices are calculated in your B2B store. A procedure plan is a framework that combines your pricing procedure with optional custom code (Apex hooks). The procedure plan defines the sequence that your custom logic and pricing procedure follow to calculate the final price.") - [Customize B2B Store Pricing with Apex Hooks](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_pricing_apex_hooks.htm&release=264.0.0&type=5 "To support unique pricing scenarios, add custom Apex logic to your pricing procedure plans. You can use Apex hooks to apply custom business logic that modifies the pricing context before or after your pricing procedure runs. Apex hooks are custom code that run at specific points in the pricing procedure plan.") # Configure Print Tags Print tags are placeholder strings that dynamically display data in Point of Sale layouts. Add print tags to native or HTML text overlays to display information such as order totals, customer names, or store details. You can also use print tags in certain app-level settings. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example To create an Order Confirmation Layout that displays the order total, use the tag `:ps_order_total` in a text overlay cell. The system substitutes the tag with the actual order total when rendering the Order Confirmation page to the customer. ## Add a Print Tag to a Native Text Overlay 1. Select a cell in your layout where you want to add a print tag. 2. Click **Cell Overlays** | **Text (Native)** in the toolbar of the layout editor. 3. Double click the overlay cell. 4. Click **PS Tags** to the right of the text input field.![The text editor for native content, indicating the location of the PS Tags button next to the text input field.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_tags_config_print_native.png) 5. Select your print tag from the list. 6. Click **Set**. ## Add a Print Tag to an HTML Text Overlay 1. Select a cell in your layout where you want to add a tag. 2. Click **Cell Overlays** | **Text (HTML)** in the toolbar of the layout editor. 3. Double click the overlay cell. 4. Click the **...** | **PS Tags** menu item.![The text editor for HTML content, indicating the location of the PS Tags button on the toolbar menu.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_tags_config_print_html.png) 5. Select your tag from the list. 6. Click **Set**. ## Add a Print Tag Manually Instead of using the picker, you can manually type or paste a print tag into a text overlay cell. Verify that you type the tag correctly to ensure the system substitutes the value. ## Configure use of Store Custom Fields Stores have custom fields. Use the tags assigned to these fields to print the field values on items like receipts for a specified store. 1. In CMS go to **Store Management** | **Stores**. 2. Create a store by clicking **CREATE** in the upper right, or edit an existing store by clicking the pencil icon to the right of the store. 3. Under **Other Attributes**, enter the custom field values you want to display for this store. 4. Click **UPDATE**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Verify that the custom fields map correctly in your Stores Field Mappings. See [Field Mappings](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5 "Set Field Mappings in Point of Sale to transform data from external sources into the format that Point of Sale uses. Field mappings use transformations and regular expressions. When you import data feeds, the field mappings ensure that your data is accurate and consistent. This consistency helps to streamline your retail operations."). ## Use Product and Sub-Product Tags in a Receipt Row A receipt row that contains one or more `:ps_p_sub_*` tags renders one time for each sub-product. Use only sub-product tags on these rows. Don't mix in parent-product tags, such as `:ps_p_qty_and_price`, `:ps_p_qty`, or `:ps_p_price`. Parent-product tags don't resolve inside a sub-product row. Instead of showing a validation error, the receipt prints the parent-product tag as literal text. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example This example shows a supported configuration with separate parent-product and sub-product rows. Parent-product row: :ps\_p\_id :ps\_p\_title :ps\_p\_qty :ps\_p\_price Sub-product row: :ps\_p\_sub\_id :ps\_p\_sub\_title :ps\_p\_sub\_qty :ps\_p\_sub\_price ## Available Print Tags For a complete list of available print tags, see [Comprehensive Print Tags List](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_list.htm&release=264.0.0&type=5 "Show dynamic data in your layouts by using Point of Sale print tags as placeholders. Each tag includes its description, location, receipt components, group list, and data mapping. Grouped lists output multiple data points for each tag."). # Configure Private Sale Promotion Create special promotional pricing for a specific segment of customers in Retail Cloud. There are three steps to applying the private sale pricing: - - Identifying customers eligible for private sale - Applying private-sale pricing - Rendering private sale pricing in the shopping cart and checkout pages![The Process to apply private sale pricing](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_private_sales_steps.png) ## Configure Point of Sale CMS for Private Sales To turn on a Private Sale promotion in the CMS: 1. Go to **Promotions**. 2. Select **Private Sale**. 3. Select **CREATE** to configure a new Private Sale promotion or select **Edit** to edit an existing one. 4. Complete all required fields and select **SAVE**. In this example, customers that have had an account for at least one year are eligible for a promotion.![An example of private sales elegibility in Point of Sale](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_setup_private_sales.png) ## Customer Segmentation A customer can currently be identified based on the date of joining the merchant platform. ## Applying Private Sale Pricing The Private Sale price can currently be applied by using a platform-specific mechanism like Demandware source code. ## Implementation process To use the Private Sale feature, ‌define each of these items: - **Eligibility rules**—Set the rules to find customers who can get the Private Sale promotion. For example, customers who have an account created before the promotion can get it. - **Look-up mechanism**—Define the mechanism for Point of Sale to get the data required to evaluate the eligibility criteria (for example customer profile lookup in SFCC). - **Promotion application method**—Define the method by which the promotion is applied (for example SFCC “source code” applied using OCAPI). Reach out to your Salesforce Customer Success Manager for any questions about this feature or to inquire about customizations. # Configure Processing Times for Order Management Delivery Estimations Fulfillment times can vary depending on the product and the location fulfilling the order. Define processing times at the location level, category level, item level, or a combination. This granular level of processing data provides more accurate delivery estimates. ### Required Editions
View supported editions.
Before beginning this task, make sure the [Order Fulfillment Setup section](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5 "The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS).") is enabled. 1. In the Delivery Estimations tab of Order Fulfillment Setup, open the Processing Time Specifications tab. 2. Click **New**. 3. Enter a name, external reference, and, optionally, a start and end date. 4. Select whether this processing time impacts specific products or categories or whether it impacts an entire location. 5. If the processing time impacts specific products or categories, select them. 6. Select one or more locations. 7. Use the Processing Time and Unit fields to set the length of the processing for each location, product, and category. 8. Click **Save**. 9. Sync your processing time. #### See Also - [Set Up Shipping for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_set_up_shipping.htm&release=264.0.0&type=5 "Order Management supports both managed and static shipping carriers. The managed shipping carriers are Canadian Post, FedEx, Royal Mail, UPS, and USPS. A shipping carrier method is a specific method that transports a product or order to its destination. For example, an org that uses the shipping carrier FedEx has the shipping carrier methods FedEx Overnight, FedEx Priority, and FedEx Ground.") - [Delivery Estimations for Order Management Overview](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_overview.htm&release=264.0.0&type=5 "Provide customers with accurate delivery times by showing delivery dates on your store’s product detail and checkout pages.") - [Commerce Delivery Service and Order Fulfillment](https://help.salesforce.com/s/articleView?id=commerce.om_cds_overview.htm&release=264.0.0&type=5 "Configure fulfillment from start to finish by using Commerce Delivery Service (CDS).") # Configure Product Bundle Deep Links Point of Sale product bundles are packages of related products or services offered together at a discounted price. This can encourage customers to buy more, providing convenience and value. Product bundles can be ingested as a feed or authored in the CMS. - Modern POS App Build: - 6.x.x and above - 7.14.5 and above for Bundle PDP with BUY ALL - Platform Support: iPad, iPhone - Offline Support: No ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This topic describes the legacy product bundle experience for Point of Sale. These bundles remain supported for existing customers, but they aren't part of the current product bundle feature. For the current product bundles, see [Product Bundles in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_product_bundles.htm&release=264.0.0&type=5 "A product bundle groups a parent item with required child items. It sells, returns, and ships as one unit."). ## Author in CMS 1. Go to Products > Product Bundles. 2. Click the Plus icon. 3. Complete the required fields and click SAVE. Note: A bundle can contain up to 50 products and respects the order of products that is defined in the CMS. ## Uploading Products from File If you have a list of product IDs you can import these IDs from a CSV file as per the requirement in the product bundle feed. Additionally, note that variant IDs are required to successfully add bundle items to the cart. For more information, see [Product Bundles Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product_bundles.htm&release=264.0.0&type=5 "Product bundles in Point of Sale consist of Shop-the-Look and selling multiple items as a set."). ## Create a Deep Link to a Product Bundle After you have ingested product bundles via a feed or authored product bundles in CMS, you can create a product bundle deep link. By default, the app will show the first 100 bundles when the deep link is configured with no selected bundles. ## Create an Inline Deep Link In the Layout Editor: Select a cell. Select Cell Content > Inline Deep Link in the toolbar. 1. Select Deep Link Type > Products > Bundles. 2. For Bundle Type select CMS authored. 3. Select a bundle. 4. Click SET DEEP LINK. The products from the CMS-authored bundle are displayed inline in a horizontally scrollable row. Note: The inline bundles' deep link only supports CMS-ingested bundles. ## Create a Deep Link In the Layout Editor: Select a cell. Select Deep Link in the toolbar. Select Deep Link Type > Products > Bundles. Select the Bundle Type. 1. (CMS authored) Select one bundle. 2. (Feed ingested) Select multiple bundles. 3. Select a bundle. 4. Click SET DEEP LINK.![The product bundles window showing options to select bundles and the bundle type.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_deep_links_product_bundle_sattings.png) ## Authored in CMS (Product Display) Use Infinite Scroll in App The deep link launches the product search page (aka PLP) and displays the products in the CMS-authored bundle. Additionally, this deep link will allow for additional products to get loaded into the search results page as the user scrolls to the bottom of the search results. ## Authored in CMS (Product Display) The deep link launches the product search page (aka PLP) and displays the products in the CMS-authored bundle. ## Configure Bundle CTAs in PDP Layout By default, the bundle PDP screen shows both the “Select your Styles” and “BUY ALL” CTA. These button titles can be configured from CMS and have options to hide “Select your Styles” if you want to prevent the purchase of individual items from a bundle. ## Hide Select Your Styles 1. Go to Layout Pages > Layouts Templates > PDP. 2. Edit the active PDP Layout. 3. Choose Advanced tab in the right options pane. 4. Go to Bundles Settings. 5. Disable “Show Bundle Select Individual Product”. 6. Choose Publish. ## Set Title for Bundles CTA 1. Go to Layout Pages > Layouts Templates > PDP . 2. Edit the active PDP Layout. 3. Choose the pencil icon on the “Add to Cart” CTA on the layout. 4. Set “Button Text ( Bundle - Select Individual Product)” to set Select your Styles CTA’s title. 5. Set “Button Text ( Bundle - BUY ALL ITEMS)” to set BUY ALL CTA’s title. 6. Choose Publish. ## Enable Selection by Default 1. Go to Layout Pages > Layouts Templates > PDP. 2. Edit the active PDP Layout. 3. Choose Advanced tab in the right options pane. 4. Go to Bundles Settings. 5. Enable “Enable Bundle Selection as Default” to have the item selected by default when choosing items in “Select your Styles” purchase flow. 6. Choose Publish. ## Bundled Products Section Title 1. Go to Layout Pages > Layouts Templates > PDP. 2. Edit the active PDP Layout. 3. Choose Advanced tab in the right options pane. 4. Go to Bundles Settings. 5. Set the title in "Bundled Products Section Title" (by default this section is titled "IN THIS LOOK"). 6. Choose Publish. ## Configure Delete Complete Bundle From Cart 1. Go to Store Management > Store Settings. 2. Enable “Treat Each Item As Separate Line Item”. ## POS App Flow Information about the behavior of this feature in the POS app. ## BUY ALL Bundle BUY ALL Bundle checks the inventory of the items in the bundles and adds all items if they are in stock. The POS app checks the inventory for the selected/default order type (In-Store or Online). If one or more items are not in stock, the app will show an error message and suggest the user use the “Select your Styles” option to choose available individual items from the bundle. ## Select Your Styles From Bundle Select Your Styles option in the bundle PDP allows users to choose required individual items that are in stock from a bundle and add them to the cart. ## Delete Bundle The bundles can be deleted by choosing the delete icon from the cart screen. If it's part of a bundle, users will be asked if they want to select the complete bundle or just the product. The bundle is deleted from the cart depending on the user’s choice. # Configure Product Display Page (PDP) Layout in Point of Sale CMS Create a Product Display Page (PDP) in the layout editor. Unlike the template-based PDP V1, this version lets you customize the page layout. - Point of Sale App Build: 5.0.0 or later - Platform Support: iPhone, iPad - Offline Support: Yes - Technical Prerequisites: Configured product feed ## Create a PDP Layout From a Template 1. Go to **Layouts** | **Layout Templates** | **PDP** 2. Click **Add From Template**. ## Create a PDP Layout From Scratch 1. Go to **Layouts** | **Layout Templates** | **PDP** 2. Click **Add Blank Layout**. The PDP layout uses the Layout Editor, so the same rules for rows and cells apply. Two dropdown menus in the toolbar let you add PDP components. Select a cell, then click an option from a dropdown menu. ## Product Fields - Image - Title - Description - Font Options - Configure Field Product fields correspond to the fields imported from the product feed. Any cell that contains a product field can have cell settings that apply styles like font and alignment. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip To show the store's current inventory on the PDP, use the product attribute "Sellable Quantity" under Configure Field. Sellable Quantity represents the quantity of an item available for sale to a customer. This quantity differs from "Quantity Item on Hand," which refers to the physical quantity of items at that location. The app counts On Hand items regardless of their status. ## PDP Components
Component Description
Add On SKU Lets customers add complementary items to their purchase as optional add-ons.
Barcode Generator Generates a unique barcode for the product for inventory tracking.
Bundle Amount Shows the total amount and cost savings for a product bundle.
Bundle Item Confirm Prompts customers to confirm the items included in a bundle before purchase.
Clearance Highlights products on sale or clearance.
Images Shows product images from multiple angles.
Like Count Shows how many customers liked the product.
Price Shows the product's current price, including any discounts.
Product Recommendations Suggests related or complementary products.
Product Set Groups related products sold together as a set.
Promotions Shows active promotions for the product, such as buy-one-get-one-free deals.
Quantity

Select the product quantity to purchase in the cart page.

Whether the PDP has a quantity picker changes how the system adds items to the cart:

  • With a quantity picker, the Add to Cart button sets the cart quantity to the amount selected. Because the quantity is absolute, tapping the button again with the same amount doesn't add more. To add more, raise the picker to the total that you want and tap the button, or edit the quantity in the cart.
  • Without a quantity picker, the button adds a new cart row if the "Treat Each Item As Separate Line Item (treatEachItemInCartAsSeparateLineItem)" flag is on, or increases the existing item's quantity if it's off.
Ratings Summary Shows the product’s average rating and number of reviews.
Reviews Shows customer reviews and ratings.
Variants

Choose product variations, such as color, size, or style.

Tip
Tip If the size or color labels don’t appear on the PDP, make sure that Hide the Selected Size Value and Hide the Selected Color Value are off.
Note
Note The Gray Out Unavailable Swatches setting applies only to variant combinations that don’t exist. This setting doesn’t reflect inventory availability because the system doesn’t overlay inventory data on variants.
Wishlist Lets customers save products to their wishlist.
Product elements are widgets that you can drop on any cell in the layout. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Double-click any PDP component to edit it. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip You can add videos to the images carousel if you map your product feeds to additional\_image\_link. ## Barcode Generator ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For apps earlier than 8.10.1, the system renders only the first barcode you configure. ## Components with Dynamic Height Some PDP components like the product description have a dynamic height that you can't control in the CMS. When a row contains a component with dynamic height, the system disables the row resize functionality. ## Add to Cart CTA On the PDP, add items to the cart with the "Add to Cart" CTA. It's preconfigured on all PDP layouts, whether you create them from a template or from scratch. To customize the text, click the pencil icon to the right of the CTA. You can set separate text for online items, in-store items, and bundled products. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note When you scan multiple quantities of a product and then add it to the cart from the PDP, the quantity picker resets. Select the quantity again. ## Configure the Price Check Button Use the Price Check button to let store associates view promotional pricing on the PDP without adding items to the cart. 1. In CMS, go to **Layouts** | **Layout Templates**. 2. Edit a PDP layout. 3. Select a cell in your layout where you want the Price Check button to appear. 4. In the toolbar, go to **Cell Content** | **Form Element** | **Button**. 5. Configure the Price Check button action to show promotional pricing for all variants. 6. Save your changes. Store associates can tap the Price Check button on the PDP to view the discounted price for any product variant without adding it to the cart. ## PDP Settings Set PDP layout options in the Advanced tab of the layout editor toolbar. Enable Bundle Selection As Default - When you turn on this setting and your layout contains a Bundle Item Confirm product element, the system selects the default state of that element (that is, on). Skip EPC Scan For Instore Items - By default, this flag off. The system prompts the EPC scan when you add special items with a fulfillment type of "In Store." When enabled, the system doesn't prompt the EPC scan even when you add an item with a fulfillment type of "In Store." ## Offline Images The POS app doesn't store product images locally for [offline](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_settings_pos_offline_support.htm&release=264.0.0&type=5 "Continue operating the POS app if the device isn't connected to WiFi or Ethernet, or your internet service is down. Sync the POS app data after you're back online.") use, so the system uses default images to show products on the PDP. The system shows the same images as the receipt logo, which you can configure in your app config settings. 1. In CMS, go to **Apps** and edit an app config. 2. Go to **Modules** | **POS** | **Receipt**. 3. Click **Edit Receipt Configuration**. 4. Under **Logo**, upload a default image. ## Assign a PDP Layout to an App Config After you create the layout, assign it to an app config. 1. In CMS, go to **App Config** | **Advanced** | **PDP Layouts** | **PDP Layout**. 2. Select the layout. 3. Save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note After you assign a PDP Layout to the app config, the system overrides PDP V1. ## Test the Layout After you save changes to the app config or PDP Layout, the changes become visible when you relaunch the app. To test changes without affecting production, use a test app config that links to a test PDP Layout. 1. Save the app config or PDP Layout. 2. Relaunch the app. 3. Go to a product's PDP. ## Known Issues & Restrictions - Accordion components support only one field configuration. If you configure multiple fields, the accordion becomes non-functional in the POS app and can't expand. # Configure Product Fields for Search Results in a B2B Commerce Store (Beta) Configure the standard product fields that you want to display in the search results on your search, product, cart, and checkout pages. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Displayable Fields is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this pilot or beta service is at the Customer's sole discretion. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. Open the search page. 4. In the Results component, in the Results Display section, click **Add Field**. You can add up to four standard product fields. You can’t configure category, custom, or individual variation attribute fields. Make sure that the standard product fields that you configure in Experience Builder are set up as displayable. See [Set Up Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_displayable_fields.htm&release=264.0.0&type=5 "Set up the category, custom, and standard product fields that you want to enable as displayable on your search, product, cart, and checkout pages for B2B Commerce stores."). ![Configure product fields for search results in a Commerce store.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_configure_product_fields_for_search_results.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note To configure displayable fields, you must use the Results component. The Results Grid component doesn’t support displayable fields. 5. To edit the field, click the field name. You can change the field, display name, text size, and text color. 6. Repeat these steps for each displayable field. 7. Publish your store. The fields are now visible to customers, but they aren’t enabled as displayable fields. #### See Also - [Enable Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_displayable_fields.htm&release=264.0.0&type=5 "Enable displayable fields to decrease page load times and retrieve product data faster on search, product, cart, and checkout pages for B2B Commerce stores.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") # Configure Product Recommendations for Point of Sale Configure Point of Sale CMS to use customer data to provide tailored product suggestions within the POS app. - App Build: 5.0.0 or later - Platform Support: iPhone, iPad - Offline Support: No The Product Recommendations feature in Point of Sale uses customer preferences and purchase history to show tailored product suggestions in the POS app. ## Enable App Settings 1. Go to **App Config | Edit | Modules | Recommendations**. 2. Turn on **Has Product Recommendations**. 3. Set up **Recommendations Template** to select whether recommended products appear in a list that scrolls horizontally or in a grid like the product search page. ## Configure a Recommendations Engine Each merchant, region, and locale can have one or more recommendation engine configurations. Point of Sale supports these recommendation providers: - Certona - Demandware - Dynamic Yield - Einstein - PredictSpring - Product Feed (configure the product feed with a recommendation field) - RichRelevance - Unbxd If configuring an engine other than PredictSpring (Point of Sale), set properties specific to that recommendation engine. 1. In the CMS, go to **Integrations | Recommendations Configuration**. 2. Edit or create an existing configuration. 3. Under **Type**, select the type of recommended products to show the customer. - **Recommendation** shows product recommendations based on the product that the customer is viewing. - **Add On** shows product recommendations based on other products that customers often purchase together. - **Bundle** shows bundle recommendations for an individual product. 4. Under **Provider**, select a recommendation engine. PredictSpring is the only provider available for the **Bundle** type. Point of Sale handles bundle resolution internally. 5. Fill out the required fields by referring to the table. 6. Select **Save**. | Field | Field Type | Required | Description | Example | | --- | --- | --- | --- | --- | | Base URL | Text | No | Base URL for the API. For Einstein, use `https://api.cquotient.com/v3` (or the latest version available). | https://api.cquotient.com/v3 | | API Path | Text | No | Path for the API recommendation | /path/example/1 | | Site ID | Text | No | Site ID configured within the recommendation engine. Use the site ID configured on your ecommerce instance. For information on configuring sites, see the Commerce Cloud documentation. | 22jw233d100 | | API Token | Text | No | Token for the API recommendation. Get this token from the Account Manager API client configuration in your recommendation provider's system. | qwlkejsiwu21932hswhh002 | | Placements | Text | No | Applicable to Certona and RichRelevance | item\\\_page.brand\\\_app\\\_1 | | Strategy Set | Text | No | Applicable to Einstein—recommender name | product-to-product | | Lookup Field | Text | No | For Product Feed-based recommendation, the product field that has the recommended products. | CustomString0 | # Configure Product Warranties in CMS Configure Point of Sale CMS settings so you can offer product warranties. Set up a custom connector to call the warranty SPI at checkout and create a warranty product class so the POS system can identify warranty products. Then configure approvals, deep links, and warranty checks for the associate checkout experience. - Modern POS App Build: 12.0.1 or later - Platform Support: iPhone & iPad - Offline Support: No - Files: Product Feed configured with add-on products and warranty SKU products Learn how to manage warranty products in Point of Sale. See [Manage Product Warranties in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_manage_warranty.htm&release=264.0.0&type=5 "Dynamic warranty management uses an SPI so the POS can send cart data to your warranty engine, receive eligible warranty SKUs, and replace prior warranty lines with the SPI result. Learn how the POS system identifies warranty products, the required CMS setup, and the associate flow during checkout."). ## Connect the Warranty SPI 1. In CMS, go to **Store Management** | **Integration** | **Custom API Connectors**. 2. Click **Create**. 3. For Connector Type, select **SPI**. 4. For Endpoint Name, select **Warranty Lookup**. 5. Enter your warranty engine URL, for example https://warranty-engine.example.com/api/eligibility. 6. Save your changes. To customize the SPI for warranty checks, and for reference on the request and response payloads, see [Point of Sale for Developers](https://developer.salesforce.com/docs/commerce/retail-cloud/overview). ## Create a Warranty Product Class You define the product class name (for example, "Warranty," "Protection Plan," "Extended Coverage"). The system identifies warranty products by using the WarrantySKU rule on the product class, not by matching a specific product class name. Create warranty SKUs in the product feed and assign them to any warranty product class you create. See [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&language=en_US). The warrantyProductId returned by the Warranty SPI must match a productId in your catalog with a warrantySKU-enabled product class. 1. In CMS, go to **Products** | **Product Class**. 2. Click **Create**. 3. Enter a name for your warranty product class. 4. Enable **Warranty SKU**. This setting identifies products with the warranty product class as warranty items. 5. Save your changes. ## Control Warranty Actions During Checkout Optionally configure a manager approval policy to remove a warranty from the cart. A manager PIN is required to delete a warranty item from the cart and the approver’s ID and role are logged in the EJ. Optionally enforce a warranty check before completing checkout. 1. To remove warranties from the cart, create an approval policy. 1. In CMS, go to **Store Management** | **Associates** | **Approval Policies Configuration**. 2. Click **Create**. 3. Enable **Approval Required**. 4. For Policy Feature, select **Remove Warranty**. 5. Add roles that can approve this policy. 6. Save your changes. 2. Enforce a warranty check before checkout. 1. In CMS, go to **Store Management** | **Store Settings** | **Checkout**. 2. Expand **Warranty**. 3. Enable **Require Warranty Verification Before Payment**. 4. Save your changes. ## Add a Warranty CTA Option to the Cart 1. In CMS, go to **Layouts** | **Layout Pages**. 2. Edit the Cart Options layout. 3. To add a CTA button to the layout, select a cell, and then from the Edit window, click **Deep link**. 4. Under Cart Options, select **Warranty Lookup**. 5. Click **Set**. 6. Save the new layout and publish your changes. # Configure Promotion Search Refinement with OCAPI and SCAPI You can now refine promotion searches in B2C Commerce OCAPI and SCAPI. Use the promotion search refinement APIs to generate and display results that help shoppers discover products that are on sale or part of a promotion. # Configure Provider Settings for Omnichannel Inventory Before integrating inventory with your store, configure inventory provider settings. 1. On your store’s home page, click the **Administration** tile. 2. In the navigation menu, select **Inventory**. 3. Enter the general provider settings (location source, reservation duration, inventory dimension, cache time). 4. Configure Salesforce Omnichannel Inventory or create an extension point to connect your custom inventory provider. # Configure Receipts Customize Point of Sale receipt appearance to match your branding and create a consistent customer experience. Control email receipt-sharing options so that you can ensure secure and efficient delivery. Format receipt content to highlight important information and improve readability. - **Modern POS App Build**: 5.8.2 or above - **Platform Support**: iPhone & iPad - **Offline Support**: Yes The configuration settings mentioned in this article are managed at the merchant account level. ## Hide the Option to Share Receipt by Email If you would like to not display the option for the store associates to send emailed receipts in the Order Thank You Screen, it can be turned off the Hide the Option to Share Receipt by Email setting. ## Require Printer for Receipts If you want to tie ‌receipt functionality closely to whether a hardware printer is configured, you can do so in CMS by turning on the Requires Printer for Receipts setting. ## Setting a Logo 1. Go to the **Receipt Configuration** setting in your app config. 2. Click **EDIT** (the pencil icon). 3. Click the image icon to open the media picker. 4. Select the image file you want to use as the header image and then click **SELECT ASSET**. 5. Click the **SET** button at the bottom. 6. Click the **SAVE** button at the top right. ## Receipt Language Localization To configure receipts in different languages, see [Receipt Localization](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_localize_receipts.htm&release=264.0.0&type=5 "Use Point of Sale (POS) App to localize the content of the paper receipt based on the user’s choice in the order confirmation screen.") for more details. ## Header and Footer Text The header and footer text on receipts can be customized. The header text is usually a tagline for the store or a slogan. The footer can be a Thank You message. ## Add PS Tags There are multiple options for configuring tags for text substitution on receipts. Text substitution works by allowing users to format the way data will appear without knowing exactly what that data will be beforehand. Example: You want to configure the receipt to display the customer name above the address but you don't know what the name is beforehand. To do this, you use `:ps_first_name` and `:ps_last_name` tags. The current order will take the customer's information and format it correctly. ![Example of PS tag set up for header text,](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_config_add_ps_tags.png) ## Tag Types Refer to [Print Tags Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_print.htm&release=264.0.0&type=5 "Print tags are placeholder strings that dynamically display data in Point of Sale layouts. Add print tags to native or HTML text overlays to display information such as order totals, customer names, or store details. You can also use print tags in certain app-level settings.") for a comprehensive list of tags supported for receipt customization. ## Printer Settings You can set the number of characters per line depending on the printer type. This can be helpful to ensure content is positioned correctly within the printout and not running over to other lines. ## Receipt Settings Point of Sale provides setting that enable formatting and content changes to the receipt beyond text substitution.
Setting Description
Receipt Lines Keys

This field takes a comma-separated list of the key names that will be included in the receipt. This is an example of a comma-separated list of all the possible values:

txdate,txtime,pan,cardType,paymentMethod,paymentMethodVariant,posEntryMode,cvmRes,mid,tid,ptid,authCode,txRef,mref,txtype,totalAmount

Leaving this field empty will default to all values shown on the receipt (i.e., the list in the example above).

Show Loyalty Details Shows loyalty details on the receipt, That is, points earned and loyalty tiers.
Show Customer Profile Details In Header Shows the customer profile details in the header (e.g., Name, Address, Email, Customer ID, etc.).
Show Transaction Header Shows the transaction header above the product details section.
Show 'Card Holder Copy' Shows the message Card Holder Copy above the transaction details. When toggling this on, it will reveal a text field to enter the desired message.
Show Section Separators Shows a divider line between sections of the receipt.
Show Tender Details Under Total Shows the tender details and amount, e.g., AMEX $439
Show Receipt Barcode Adds scannable barcode to receipt.
Show Customer Name Shows the customer's name for the logged-in customer.
Show Payment Subheader Message Shows a message such as Your Return Policy underneath the transaction totals.
Show Items In Columns Shows items in three columns: Item Name, Number Of Items, Price.
Show Receipt with Compact Line Spacing This setting defines whether a receipt line item will be in spaced out or compact mode.
Swap Total and Subtotal Order This setting swaps the position of Total with SubTotal.
Show Variant Group ID This setting displays the Variant Group ID next to the product line item.
VAT Included In Subtotal This setting prevents the VAT value from being removed from the subtotal and removes the line item on the receipt to display the VAT value.
## Receipt Customization for Fulfillment Types/Subtypes The POS app allows specifying a prefix that will be added at the beginning of each product line item. This allows store associates to quickly identify the fulfillment type of each of the products. For orders with products that all have the same fulfillment type and subtype, the PSTags `:ps_o_fulfillment_type` and `:ps_o_sub_fulfillment_type` can be configured to show the respective information. Note that these tags do not apply to orders with mixed fulfillment types/subtypes. ![Fulfillment settings showing fulfillment types set for orders and in store.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_receipts_config_fulfillment_settings.png) ## Receipt Layouts After configuring and customizing receipts at a fundamental level, you have the opportunity to enhance the receipt further by configuring a [receipt layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_receipt.htm&release=264.0.0&type=5 "Customize Point of Sale receipts to enhance customer experiences. Configure store-level print receipts and use templates for order returns. The Receipt Layout editor allows you to tailor headers, footers, and item details. Understand common challenges and best practices for clear and readable receipts, including managing returns and exchanges."). With the receipt layout, you have the ability to determine what information will be displayed on the receipts, including store details, product information, store associate details, and more. It's important to note that configuring a layout can override app-level settings starting from v7.16.5. # Configure Receipts Customize your customer's checkout experience by setting up various receipt layouts, including alterations and SKU-level gift receipts in Point of Sale. Efficiently manage invoice documents and meet specific Mexico requirements for order receipts. This flexible configuration process allows you to present essential transaction details clearly and even brand your receipts with a logo image, enhancing customer satisfaction and streamlining record-keeping. - **[Configure Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_config.htm&release=264.0.0&type=5)** Customize Point of Sale receipt appearance to match your branding and create a consistent customer experience. Control email receipt-sharing options so that you can ensure secure and efficient delivery. Format receipt content to highlight important information and improve readability. - **[Set a Logo Image on a Receipt](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_add_logo.htm&release=264.0.0&type=5)** Set a logo image in your Point of Sale receipt configuration so that you can customize your receipts to reflect your brand. Upload your logo within the receipt configuration settings, ensuring it meets the recommended size and format for optimal display. A branded receipt enhances the customer experience and reinforces brand recognition with every purchase. - **[Alterations Receipt](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_alterations.htm&release=264.0.0&type=5)** The POS app lets you print store-copy order receipts with product alterations info on top. These receipts are intended for use and record keeping in the store. Printing a store copy helps users keep track of product changes. This ensures accurate record-keeping and facilitates easy reference for store personnel. - **[Set Up Gift Receipt at SKU-level](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_gift_at_sku.htm&release=264.0.0&type=5)** POS users can print gift receipts at the individual SKU level. The app prints a gift receipt for each unique SKU in the transaction. Print these receipts after a sale or when you reprint a confirmed order. - **[Configure Custom Product Attributes on Point of Sale Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_product_attributes.htm&release=264.0.0&type=5)** Print custom product attributes, such as tax codes or brand names, on Point of Sale receipts. - **[Use Invoice Document Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_invoice.htm&release=264.0.0&type=5)** POS lets you print invoices for your customers, either immediately after a transaction or later. Easily provide customers with detailed records of their purchases by printing invoice documents. These invoices offer a comprehensive alternative to standard receipts. - **[Set Up Order Receipts for Mexico Requirements](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_mexico.htm&release=264.0.0&type=5)** The Modern POS app supports Mexico's requirements when printing a receipt of a credit card transaction. #### See Also - [_Salesforce Help:_ Configure Custom Product Attributes on Point of Sale Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_product_attributes.htm&release=264.0.0&type=5 "Print custom product attributes, such as tax codes or brand names, on Point of Sale receipts.") # Configure Receipts to Show Product Bundle Children in Point of Sale Add a child-loop row to your receipt template so each bundle's items print together under it, in sales and returns. Keep the product ID and name together on the parent product row of your existing receipt template. This anchors bundle grouping. When an associate sells or returns a bundle, the app groups that bundle's items by their shared bundle group. It removes them from the ordinary item list so they don't print twice. The app doesn't build a child row layout, indent rows, or print a child price. Your template controls the formatting. Without a child-loop row, the bundle's items have nowhere to print. They disappear from the receipt. 1. In your receipt template's product section, add a new row directly under the row that prints the bundle (parent) line. 2. On the new row, add the :ps\_p\_bundle\_child prefix in front of each product tag you want to show for a child. For example: :ps\_p\_bundle\_child:ps\_p\_id, :ps\_p\_bundle\_child:ps\_p\_title, and :ps\_p\_bundle\_child:ps\_p\_qty. The engine repeats this row once for each item in the bundle. Most product tags resolve for a child, including: - Identity fields: ID, title, quantity, SKU, GTIN, variant group ID - Item detail: serial number, item status, registry ID, notes - Fulfillment type, and the full shipping and pickup detail sets Price, discount, and tax tags are the exception. A bundle child has no price on the receipt, so a money tag like :ps\_p\_bundle\_child:ps\_p\_price prints nothing for a child. Put the bundle's price, discount, and tax on the parent row only. 3. To indent the child row under the bundle name, type leading spaces on the row, or add a narrow empty cell before it. Indent is a layout choice that you make on the template—there's no app-side indent setting. 4. If you add more than one child-loop row (for example, a second row for the variant group ID), keep the rows adjacent. Don't put a plain row between them. Adjacent child rows print as one block per child. For example, child A's ID, title, and quantity print first. Child A's variant group ID prints right after. Then child B's rows print the same way. A plain, non-child row between two child rows breaks that block. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example This example authors a receipt product section as six rows. Only rows 2 and 3 carry the :ps\_p\_bundle\_child prefix. The engine repeats those two rows once per child. The bundle (parent) line preceding them prints once. | Row | What's on it | Resolves against | | --- | --- | --- | | 1 | :ps\_p\_id :ps\_p\_title, :ps\_p\_qty\_and\_price (right-aligned) | Parent—the bundle line, with the bundle's single price | | 2 | Narrow empty cell, :ps\_p\_bundle\_child:ps\_p\_id :ps\_p\_bundle\_child:ps\_p\_title, :ps\_p\_bundle\_child:ps\_p\_qty (right-aligned) | Child | | 3 | Narrow empty cell, Variant Group Id: :ps\_p\_bundle\_child:ps\_p\_variant\_group\_id | Child | | 4 | Variant Group Id: :ps\_p\_variant\_group\_id | Parent | | 5 | :ps\_p\_fulfillment\_type | Parent | | 6 | :ps\_p\_discount\_title, :ps\_p\_discount\_amount (right-aligned) | Parent | Print a test receipt for a sale that includes a bundle. Confirm that each child prints once, directly under the bundle line. Also confirm that no child shows its own price. If children are missing entirely, add the child-loop row from this task. The token is :ps\_p\_bundle\_child. It doesn't include is. There's no separate on/off token or condition to configure. #### See Also - [_Salesforce Help:_ Product Bundles in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_product_bundles.htm&release=264.0.0&type=5 "A product bundle groups a parent item with required child items. It sells, returns, and ships as one unit.") # Configure Registers to Support AirPrint for Customer Documents Turn on AirPrint and configure the Point of Sale platform so you can print different document types, including A4 documents, to conventional printers using AirPrint. You can print the following document types: - Customer Quotes - Order Receipts - Return Receipts - Refund Receipts - Exchange Receipts - Gift Receipts You can only configure one receipt printer type at a time. By configuring AirPrint for the register, it blocks other types of peripheral printers from being discovered in the device menu. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If you're looking for contract printing, see this [article.](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types_electronic_contracts.htm&release=264.0.0&type=5 "The POS app provides an option to ask customers to sign an electronic contract within the app when they place a layaway order or add finance as a tender. Once the contract is signed, the app generates the PDF of those documents which can be printed from the app.") 1. In CMS, go to **Store Management > Registers**. 2. Select a store. 3. Select the pencil icon to the right of the register you want to turn on Airprinting. ![The pencil icons to the right of the registers](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_turn_on_airprint.png) 4. Go to **Receipt Printer**, under **Model**, select **Print Using Airprint**. ![Selecting Print Using Airprint in the Receipt Printer section of the CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_select_airprint.png) 5. Save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Quit and reload the application to load ‌the new settings for the register. The specific device that you're printing to can be chosen at the time that you print the receipt. # Configure Rejection Reasons If a store associate can’t pick an item, they can select a reason for rejection. The options are Damaged, Just Sold, Out of Packing Supplies, Out of Stock, and Other. You can also create your own reasons. ### Required Editions
View supported editions.
1. Log in to Salesforce as a System Administrator. 2. Add the Rejection Reason field to the Fulfillment Order page. 1. From Setup, in the Quick Find box, enter Object Manager, and then select **Object Manager**. 2. Select **Fulfillment Order Product**. 3. Click **Page Layouts** and click **Fulfillment Order Product Layout**. 4. Move **Reject Reason** to the Fulfillment Order Product Detail section. 5. Click **Save**. 3. Repeat this step for the Pick Ticket Product object in Object Manager. 4. (Optional) Create a custom rejection reason. 1. From Setup, in the Quick Find box, enter Object Manager, and then select **Object Manager**. 2. Select **Fulfillment Order Product**. 3. Select **Reject Reason**. 4. Under Reject Reason Picklist Values, click **New**. 5. Enter a rejection reason. 6. Click **Save**. #### See Also - [Store Fulfillment App Setup](https://help.salesforce.com/s/articleView?id=commerce.om_store_fulfillment_application.htm&release=264.0.0&type=5 "The Store Fulfillment app provides guided workflows that walk store associates through the process of picking and packing each order. Store associates can indicate how much of each item they can fulfill and how much they can pack. They can also track the items that they can’t fulfill and the reasons for rejection. Access to the site is controlled using the Identity User license. After the Identity User license is configured, create accounts for your store associates and assign the license to them.") # Configure Return Insights Permissions Before starting the return insights setup, enable the appropriate permissions for users and admin. ### Required Editions
View supported editions.
1. From Setup, in the Quick Find box, find and select **Permission Sets**. 2. Select the Data Cloud Salesforce Connector permission set. 3. In the Apps section, select **Object Settings**. 4. Select **Order Summaries**. 5. Click **Edit**. 6. Enable Read and View All Records permissions for the object and Read Access for every field. 7. Click **Save**. 8. Repeat steps 4 through 7 for the objects Order Delivery Methods, Orders, and Products. #### See Also - [Return Insights Overview](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5 "Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them.") - [Return Insights Setup](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights_setup.htm&release=264.0.0&type=5 "You can complete most of the initial Einstein configuration using the Data 360 Setup Guide.") # Configure Returns and Exchanges Manage refund and exchange processes in Point of Sale CMS. Provide a seamless post-purchase expereince for customers. - **[Returns Policy Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_returns_policy_configuration.htm&release=264.0.0&type=5)** The Point of Sale (POS) app lets store associates perform returns on purchased items based on configured policies. - **[Configure Point of Sale Refund Processing Policies for Credit Cards](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_configuring_refund_processing_policies_for_credit_cards.htm&release=264.0.0&type=5)** Configure your preferred refund processor for credit card orders by order type. You can also support unreferenced refunds in the POS app. - **[Supported Refund Fees](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_supported_refund_fees.htm&release=264.0.0&type=5)** Merchants can configure refund fees, such as restocking fees, within a return policy in Point of Sale. # Configure Reward Card Support in POS The POS app provides an option to purchase reward cards and redeem them as tender when placing an order. Configure reward card support in CMS setup. - Version 5.7.2 or higher is required for this feature. - This feature requires integration with your Reward Card Provider using Point of Sale APIs. - The purchase flow can be added to the POS app by adding the following deep link: - **Deeplink** | **Products** | **Purchase Reward Card**. - Merchants should have the [multi-tender feature](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_multitender_config.htm&release=264.0.0&type=5 "Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app.") enabled to redeem a reward card as a tender for an order. - Reward cards can be added as tender in the multi-tender flow by going to: - **CMS** | **Store Management** | **Store Settings**.
Support
Offline CapabilityNo
iPad UXYes
iPhone UXNo
1. Go to **CMS** | **Store Management** | **Store Settings** | **Payment** | **Advanced**. 2. Go to Supported Tenders and see if it’s already configured. 3. Enter RewardCard in the field if it isn’t already. ![Supported tenders](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_checkout_supported_tenders.png) 4. Save your changes. # Configure Salesforce for Global Stores Make sure that your language, translation, and currency settings support B2B Commerce stores around the world. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Add Language Support to the Store Page Layout](https://help.salesforce.com/s/articleView?id=commerce.comm_supp_languages_store_page.htm&release=264.0.0&type=5)** To manage products in more than one language, add a supported language field to the store page layout. - **[Support Multiple Currencies in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_currency_considerations.htm&release=264.0.0&type=5)** To support international customers, provide multiple currencies in your B2B store. By default, a store supports only the currency listed as the currency locale on your Company Information page, unless you turn on multiple currencies. The currency settings apply to all stores in your org. # Configure Salesforce Identity for Point of Sale SSO Connect Point of Sale to your identity provider (Azure AD or OneLogin) through Salesforce Identity. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This feature is available for Hyperforce only. For the legacy platform, configure POS app SSO through OneLogin instead. See [Establish OneLogin with POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_one_login.htm&release=264.0.0&type=5 "Integrate your Point of Sale (POS) app with OneLogin to validate store associate credentials. Verify secure communication with Salsesforce and streamline user management using your existing identity and access management tools. Configure your OneLogin portal and CMS settings to enable seamless authentication for both online and offline access."). Prerequisites - User accounts configured in Salesforce or linked to third-party identity provider. See Integrate B2C Commerce with Single Sign-On. - Store Associate Feed containing store associate IDs, names, store IDs, and roles. 1. In CMS, go to **Integrations** | **Single Sign On Configuration**. 2. Toggle **Enable** to turn on SSO. 3. For **Provider Name**, select Salesforce Identity. 4. Enter your OAuth credentials: 1. **Consumer Key**: Enter the consumer key from your external client app. 2. **Consumer Secret**: Enter the consumer secret from your external client app. 5. For **Redirect URL**, enter the callback URL (for example, `sfpos://oauth/callback`). 6. For **Default Scopes**, enter the required OAuth scopes (for example, `api, web, openid, refresh_token`). 7. Configure the endpoint URLs: 1. **Token Endpoint URL**: Enter your Salesforce org token endpoint. 2. **Authorize Endpoint URL**: Enter your Salesforce org authorization endpoint. 3. **User Info Endpoint URL**: Enter your Salesforce org user info endpoint. 8. Save the configuration. ![Single Sign-On Configuration settings in the CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_config_sso_salesforce_identity.png) #### See Also - [_Salesforce Help:_ Secure Point of Sale CMS Access (can be out of date or unavailable during preview)](https://help.salesforce.com/s/articleView?id=commerce.rt_secure_cms_access.htm&language=en_US) # Configure SCAPI ERP Integration in Point of Sale Integrate B2C Commerce with Point of Sale using SCAPI to enable customer data synchronization and unified commerce capabilities. Configure the ERP connection in the Point of Sale CMS with your B2C Commerce SCAPI credentials. - B2C Commerce instance with SCAPI enabled - SLAS client credentials (client ID and client secret) - Account Manager client credentials 1. In the Point of Sale CMS, select **Store Management** | **Integrations** | **ERP Configuration**. 2. In the **ERP Service Name** field, select **SFCC\_SCAPI**. 3. Fill out the required fields. All fields are required for SCAPI integration. | Field | Description | Example | | --- | --- | --- | | **Endpoint URL** | Your B2C Commerce SCAPI base URL | https://kv7kzm78.api.commercecloud.salesforce.com | | **Organization ID** | Your B2C Commerce organization identifier | f\_ecom\_zaah\_004 | | **Account ID** | Your B2C Commerce site ID | RefArch | | **Customer List ID** | The customer list identifier for your site | RefArch | | **Consumer Key** | SLAS authentication client ID | | | **Consumer Secret** | SLAS authentication client secret (encrypted) | •••••• | | **Admin User** | Account Manager client ID for authentication | | | **Admin Password** | Account Manager client secret for authentication (encrypted) | •••••• | | **Domain** | Account Manager authentication server host | account.demandware.com | 4. Save your changes. # Configure Self-Registration for a B2B Store When you enable self-registration, customers can create their own account and then log in to your store using that account instead of browsing as a guest. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) If you configure your Salesforce org by using the Commerce Setup Assistant and enable Person Accounts, self-registration is automatically enabled when you create a store. There's no need to manually enable self-registration if it’s already enabled. These steps describe how to enable self-registration if you want to do so manually. 1. Before configuring self-registration, add the Self-Registration component and publish the initial draft of your store. Publishing your store doesn’t make it available to shoppers. The store isn’t available to shoppers until you activate it. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. On your store’s Register page, add the Self-Registration component. 4. In the upper-right corner of the Experience Builder page, click **Publish**. You receive an email when the store is published. 2. Set up a site membership. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Digital Experiences, and select **All Sites**. 3. Next to your site, click **Workspaces**. 4. Select **Administration** | **Members**. 5. From the search list, select **All**. 6. From the list of available profiles, select the customer profiles that you want to add, and click **Add**. 7. Click **Save**. 3. Configure and enable self-registration. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Go to **Settings** | **Store**, and select **Buyer Access**. 3. Go to **Self Registration** | **Profile** and select which customer profiles can self-register. 4. (Optional) To set permissions, select a permission set group. 5. Select an account record type. If you haven’t enabled person accounts, you can select only the business account record type or any child record type of a business account. See [Create a Buyer for a B2B Store from a Person Account](https://help.salesforce.com/s/articleView?id=commerce.comm_person_buyer_accounts.htm&release=264.0.0&type=5 "One way to add a buyer is to enable a person account as a buyer account and a customer user. The individual identified in the person account has access to stores related to the account’s buyer group. When you enable a person account as a buyer, you can't convert the person account to a business account. You also can't merge the account with other accounts. To merge or convert the account, you must disable it as a buyer, merge or convert the account, and then reenable it as a buyer."). 6. (Optional) Select the default buyer groups. You can assign self-registering guests to up to 20 account-based buyer groups. If no default buyer group is selected, self-registering users won’t be automatically added to any group. You can manually assign them to a buyer group later. 7. Turn on self-registration. 8. Save your changes. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example ![Example of Self-Registration section](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_self_registration.png) #### See Also - [Publish Your Store](https://help.salesforce.com/s/articleView?id=commerce.comm_publish_store.htm&release=264.0.0&type=5 "As you work on your B2B store, you can preview what it looks like to customers. When you’re ready to make it public, you publish the store and then activate it. You also republish your store whenever you make changes.") # Configure Service Flow Reasons When a customer service representative (CSR) services an order, they often have to select from a list of reasons, such as Wrong Item or Customer Changed Mind. Order Management provides some default reason values, but you can add more. Up to 2000 reasons can show on each flow’s return picklist. There are three cases where a reason is required. A return reason is required for the service flows: cancel, return, RMA, even exchange, exchange RMA, and discount. If a fee is added to any service flow, a fee reason is required. If an attempted RMA or exchange RMA is rejected, a rejection reason is required. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, find and select **Object Manager**. 3. Set up reasons for the Cancel Item, Return Item, Discount Item, and Even Exchange flows. 1. Select the **Order Product Summary Change** object. 2. Click **Fields & Relationships** and select **Reason**. 3. Click **New**, create your reason, and click **Save**. 4. To select a default reason, click **Edit** for a reason, select **Default**, and save. 4. Set up reasons for the RMA and Exchange with RMA flows. 1. In a new tab, go to Object Manager and select **Return Order Line Item**. 2. Click **Fields & Relationships** and select **Reason for Return**. 3. Verify that all the entries in the Reason For Return Picklist Values section are also in the Reason picklist in the Order Product Summary Change object. 4. To select a default reason, click **Edit** for a reason, select **Default**, and save. 5. Set up reasons for rejection for the RMA and Exchange RMA flows. 1. Go to **Fields & Relationships** for the Return Order Line Item object. 2. In the Reason for Rejection Picklist Values section. add your reasons for why the return can’t be accepted, such asItem Is Perishable. 3. To select a default reason, click **Edit** for a reason, select **Default**, and save. After you configure your reasons, [map them](https://help.salesforce.com/s/articleView?id=commerce.om_map_reason_codes.htm&release=264.0.0&type=5 "Reduce the time and effort it takes to service orders by only showing reasons relevant to the current service flow. For example, when a Customer Service Representative (CSR) processes a return, they only see the return-related reasons in the reason picklist. Up to 2000 reasons can show on each flow’s reason picklist.") to your service flows. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Configure Single Sign-On (SSO) Tenant ID The SSO Tenant ID is a unique identifier for your Microsoft Entra ID account. Retail Cloud CMS uses the ID to restrict authentication to Microsoft Entra ID. 1. Log in to the Microsoft Entra Admin Center and go to **App registration > Overview**. 2. Copy the Directory (tenant) ID.![The Directory (tenant) ID that you need to copy.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cm_config_directory_tenant_id.png) 3. Log in to Point of Sale CMS and go to **Advanced > Merchant Configuration**. 4. To edit the configuration, click the pencil icon. 5. Go to the **General Settings** tab. 6. Paste the Directory (tenant) ID into the Single Sign-on (SSO) Tenant ID field. If you have multiple regions in CMS, we recommend configuring the Directory (tenant) ID for all regions so you can switch between regions. 7. Save your changes. # Configure Speech Recognition (Beta) in Point of Sale Turn on speech recognition in the POS app to streamline workflows. With voice commands, users can efficiently access features, turning on hands-free operation, and enhancing accessibility. Configure custom voice commands and deep links in CMS to tailor the experience for different languages and actions within the app. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Access to the feature is limited to the **Home**, **Cart**, and **Client Profile** POS app screens. ## Prerequisites - Modern POS App Build: 9.3.1 or greater - Platform Support: iPad - Offline Support: no [See a Video of the AI-based Point of Sale Voice Assistant.](https://vimeo.com/873783852/0d3e3a4044). ## Configure Speech Recognition in Point of Sale CMS Set up speech recognition in CMS so that users can use voice commands within the Point of Sale (POS) app. Turn on speech recognition in the app settings. Then, use Voice Command Deep Linking to set up verbs, nouns, and adjectives for speech recognition that works for you in different languages. ### Tun On Speech Recognition To permit voice commands on the app: 1. In CMS, go to **Apps > All**. 2. Edit the app configuration to have speech recognition. 3. Go to **Modules > Voice Commands**. 4. Turn on **Enable Enhanced Voice Commands**. 5. Save the changes. ![The Enable Enhanced Voice Commands setting in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_speech_recog_voice_command.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note “**HasVoiceSearch**” replaced “**UseEnhancedVoiceCommands**” in the POS app from v9.3.1. Users can use enhanced voice features regardless of the value of “**HasVoiceSearch**”. ### Voice Command Deep Linking The **Voice Command Deep Linking** feature allows merchants to define their own verbs, nouns, and adjectives for customized Speech Recognition within the app across various languages. As app configs are language-specific, Speech Recognition can also be tailored to each language. For example, if an app configuration is configured in Spanish, select that configuration to define verbs, nouns, and adjectives in Spanish. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This enhancement is available on the POS app. To use better speech recognition in the POS app, turn on the UseEnhancedVoiceCommands setting. Make sure there's at least one deep link set up under the **Voice Command Deep Link Mapping** setting in CMS, starting from v9.4.1. To configure deep linking: 1. In CMS, go to **Apps > All**. 2. Edit the app configuration to have speech recognition. 3. Go to **Modules > Voice Commands**. 4. Select the pencil icon to the right of **Voice Command Deep Linking**. ![The Voice Command Deep Link Mapping setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_voice_cmd_deep_linking.png) 5. Under **Verbs**, enter action verbs that can trigger commands for retrieving, adding, updating, and removing information (for example show, create, manage, delete). 6. Under **Deep Link Mappings**, configure and turn on keywords that'll be used in conjunction with the configured verbs to trigger deep links. See the example screenshot:![The Store Fullfillment Deep Link Mapping list in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_speech_recogg_deep_link_mapping.png) 7. Set and save your changes. Configure all keywords for deep links as lowercased ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip For easier UI navigation, select the ellipses to the right of **Enable**. You can turn on or turn off all deep links. Additionally, you can expand or collapse all sections. ![The window that appears when you click the ellipses next to enable, giving you the choice of turning off or on all deep links, expanding all groups, or collapsing all groups.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_speech_recog_enable_links.png) ### Deep Links Noun Sets Leverage deep links, verbs, and nouns in the POS app to fulfill voice commands. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note All deep links configured can be accessed irrespective of their accessibility via the UI of the POS app. Here’s the reorganized table, sorted alphabetically by **Deep Link String**: | Deep Link String | Verb | Nouns | Adjectives | | --- | --- | --- | --- | | adsloyalty | GET | \["loyalty"\] | | | analytics | GET | \["analytic"\] | | | blindreceiving | GET | \["blind", "receiving"\] | | | cashtender | ADD | \["cash"\] | | | cashpaidinorout | GET | \["cash", "paid"\] | | | cashpickup | GET | \["cash", "pick"\] | | | changeordertype | GET | \["order", "type"\] | | | clientelingprofile | GET | \["profile"\] | | | clientnotes | GET | \["note"\] | | | collections | GET | \["collection"\] | | | corptostoretransfers | GET | \["corp", "store", "transfer"\] | | | createPO | ADD | \["purchase", "order"\] | | | createQuoteFromCart | ADD | \["quote", "cart"\] | | | createclientnote | ADD | \["note"\] | | | createtill | ADD | \["till"\] | | | creditcardtender | ADD | \["credit", "card"\] | | | cyclecount | ADD | \["cycle", "count"\] | | | cyclecountshistory | GET | \["cycle", "count"\] | | | devicemanager | GET | \["device", "manager"\] | | | drawerhistory | GET | \["drawer", "history"\] | | | employeeDiscount | ADD | \["employee", "discount"\] | | | financetender | ADD | \["finance"\] | | | giftCardAddValue | ADD | \["value", "gift", "card"\] | | | giftCardCashOut | CUSTOM | \["cash", "gift", "card"\] | | | giftCardManage | UPDATE | \["gift", "card"\] | | | giftCardPurchase | ADD | \["gift", "card"\] | | | giftcardtender | ADD | \["gift", "card"\] | | | gmvReport | GET | \["gmv", "report"\] | | | hourlyReport | GET | \["hourly", "report"\] | | | itemNotOnFileReport | GET | \["item", "file", "report"\] | | | loyaltylookup | GET | \["loyalty", "id"\] | | | loyaltyrewardtender | ADD | \["loyalty", "reward"\] | | | managertillsummary | GET | \["active", "tills"\] | | | messageinbox | GET | \["message", "inbox"\] | | | multitender | ADD | \["multi"\] | | | notonfileitem | ADD | \["not", "file"\] | | | nosale | GET | \["no", "sale"\] | | | offlinemode | GET | \["network", "mode"\] | | | outgoingincomingtransfershistory | GET | \["inventory", "transfer"\] | | | outgoingtransfershistory | GET | \["inventory", "transfer"\] | | | paybylinkTenderInStore | ADD | \["store", "pay", "link"\] | | | paybylinkTenderRemote | ADD | \["remote", "pay", "link"\] | | | poHistory | GET | \["purchase", "order"\] | | | quoteLookupallcustomers | GET | \["quote", "all"\] | | | quoteLookupcurrentcustomer | GET | \["quote", "current"\] | | | receivedshipmentshistory | GET | \["received", "shipment", "history"\] | | | receiveshipments | GET | \["shipmentId"\] | | | reconcileTill | UPDATE | \["till"\] | | | reconReport | GET | \["recon", "report"\] | | | returnsandexchanges | GET | \["return", "exchange"\] | | | rewardtender | ADD | \["reward"\] | | | rewards | GET | \["reward"\] | | | safemanagement | GET | \["safe", "management"\] | | | salesReport | GET | \["sale", "report"\] | | | salesattribution | ADD | \["sale", "attribution"\] | | | savedcartscurrentcustomer | GET | \["cart", "current"\] | "saved" | | savedcartsallcustomers | GET | \["cart", "all"\] | "saved" | | setTransactionOrderType | GET | \["transaction", "order", "type"\] | | | showOrderSearchByCreditCard | GET | \["order", "credit", "card"\] | | | showOrderSearchByCustomer | GET | \["order", "customer"\] | | | showOrderSearchByProduct | GET | \[“orders”, “product”\] | | | showOrderSearchByReceipt | GET | \["order", "receipt"\] | | | showOrderSearchFilters | GET | \["order", "filter"\] | | | storeanalyticsdashboard | GET | \["analytic", "dashboard"\] | | | storeandforward | GET | \["pending", "order"\] | | | storecredittender | ADD | \["store", "credit"\] | | | storefulfillorderreadytoship | GET | \["order", "ready", "shipped"\] | "fulfill" | | storefulfillordertobepacked | GET | \["order", "packed"\] | "fulfill" | | storefulfilledorderhistory | GET | \["order", "history"\] | "fulfill" | | storepickuporderready | GET | \["order", "ready"\] | "pick" | | storepickupordertobepacked | GET | \["order", "packed"\] | "pick" | | storepickeduporderhistory | GET | \["order", "history"\] | "pick" | | storetostoretransfers | GET | \["store", "transfer"\] | | | switchbarcodescanner | GET | \["barcode", "scanner"\] | | | switchcardreader | GET | \["card", "reader"\] | | | switchprinter | GET | \["printer"\] | | | taxoverride | ADD | \["tax", "override"\] | | | transactiondiscount | ADD | \["transaction", "discount"\] | | | unlinkLoyalty | DELETE | \["loyalty"\] | | | voidcartbeforetendering | ADD | \["void", "cart"\] | | | wishlist | GET | \["wishlist"\] | | #### Example Commands For a list of example commands, see the table:
POS App Screen Command
Home
  • "Show cycle count history"

  • "Create cycle count"

  • "Show associate login report"

  • "Show purchase orders"

  • "Create purchase order"

  • "Show received shipment history"

  • "Search order by receipt"

  • "Search order by customer Michael"

  • "Show Michael's profile"

  • "Search sweaters"

Cart
  • "Add cash tender"

  • "Add credit card tender"

  • "Add transaction discount"

  • "Add tax override"

## View Speech Recognition in the POS app Use the speech recognition capability on the Point of Sale (POS) app. On the home, cart, or client profile screen, tap the voice icon on the bottom right.![The POS App home screen with the voice icon at the bottom right.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_speech_recog_pos_home_screen.png) To go to a specific screen, such as the **Cycle Counts report**, say the voice command, "Display cycle count report." ![The Listening window in the POS app that appears when you tap Voice Command and say the name of a screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_speech_recog_voice_cmd_box.png) ## View Speech Recognition Error Handling and Known Issues Understand how to troubleshoot Speech Recognition errors and understand its limitations. The table shows a list of potential errors with their reasons. | Error Message | Description | | --- | --- | | Unable to find matching nouns for this text | Nouns found from phrase text don’t match any of in deep link nouns set | | Unable to find matching adjective for this text | Nouns found from phrase text match with deep link nouns set but adjectives don’t match | | Can't perform action on this screen. Go to screen | Nouns and adjectives found from phrase text match with deep link nouns and adjectives set but the current screen isn't linked to the action | | action is not supported for this context | Nouns and adjectives found from phrase text match with deep link nouns and adjectives set, and correct screen, but action verb is not supported | | Can't find new verb mentioned for this action. Check in the CMS and add new verbs for the respective action. | Nouns and adjectives found from phrase text match with deep link nouns and adjectives set and correct screen; but any of the verbs mentioned in the phrase text don't match with verbs set for the action | | Speech recognization authorization denied | Turn on speech recognition for the POS app on the device (Settings > PS POS > Speech Recognition) | | Unable to find microphone icon | Turn on speech recognition for the POS app on the device (Settings > PS POS > Speech Recognition) | ### Known Issues and Restrictions - Some deep links, particularly in the report and inventory modules, don't support date and status filters. - On screens not supported for deep links, navigating to the correct screen won't be possible. - In Phase One implementation, deep links are supported for only the **Home**, **Cart**, and **Client Profile** screens. - Order search and customer search are based on first names. - English is the only supported language as of build 9.3.1. - Voice search isn’t supported in offline mode. # Configure Standalone Mode Configure Adyen terminals to accept payments via Point of Sale without a store associate Point of Sale (POS) app connection during an outage. Prerequisites: - Modern POS App Build: 5.8.2 or later - Platform Support: iPhone & iPad - Other: Standalone Adyen terminal Adyen SF01 terminals are supported for builds 11.6.1 or greater. AMS1 and M450 terminals are supported for app builds 10.5.1 or greater. ## Setup Standalone Mode in the Terminal 1. Go to Terminals in the [portal](https://ca-live.adyen.com/) by going to **Point of Sale > Terminals**.![The Terminals link in the Point of Sale section.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_terminals.png) 2. Select a terminal from the list that you want to assign as Standalone.![A list of available terminals that you can assign as a standalone terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_terminal_standalone.png) 3. Select **Integrations** and make these modifications in the **Standalone mode** section: 1. **Standalone enabled**: yes 2. **Show start**: Yes (this only applies to Adyen terminal firmware < 1.90) 3. **Merchant Reference**: Used for reconciling orders that were taken in standalone 4. **Show Merchant reference**: yes 5. **Merchant reference**: Enter a string that you want to associate with standalone transactions made on this particular terminal (for example "STANDALONE-${serialnumber}"). You can select the information icon beside Merchant's reference to get more specialized tags for constructing this string.![A list of modifications in the Integrations section of the Stnadalone Mode settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_merchant_ref_ayden.png) 4. Save the configuration. Save only appears if you make any changes. 5. Sync the Adyen terminal with the changes made in the portal using these steps: 1. Enter the admin menu by selecting **9** and **O** (green O button) in the terminal with the admin password 2. Select **Config > (Sync/Update)**. 6. The terminal boots up and now shows **Start (Terminal firmware < 1.90)** or Payment Icon (Terminal firmware >= 1.90) on the terminal. If you don't see either of these buttons, see the [Alternate Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_standalone_mode.htm&release=264.0.0&type=5) section. 7. ![The Ayden terminal with the start icon on one screen and the payment icon on another screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_start_payment_icon.png) 8. The associate will be directed through a series of steps to: 1. Enter the amount 2. Take payment with a card 3. Signature verification (if applicable) 4. Receipt print (if terminal model supports it) 9. The transactions are synced to the Adyen console with the reference number chosen previously. 10. For Offline standalone mode, ‌set these limits: 1. **Contactless floor limit** (the max amount you can take via contactless/chip insert) 2. **Offline swipe limit** (the max amount you can take via card swipe) ## Setup Standalone Mode in Point of Sale CMS If the app configuration has a custom [Cart Options Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_custom_cart_options.htm&release=264.0.0&type=5 "Add features that appear on the right side panel of the POS app, such as overrides, void cart, tax-exempt, and so on."), add a cell for Standalone Transaction in that layout and set the deep link to 'Start Standalone Transaction'. This can be done by going to **CMS > Apps > Edit App > Modules > Cart > CartOptionsLayout**.![A cart options layout in the CMS for the Standalone option.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_standalone_config_cms.png) If the app configuration doesn't have a custom **Cart Options** Layout, then go to **Modules > Payments** and turn on the **Has Standalone Option** flag to get the **Standalone** option on the cart screen.![Entering the standalone string to start a standalone transaction on the Select a Deep Link screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_standalone_deep_link.png) ## POS App Flow Select the “**Standalone**” option on the **Cart** screen. The POS app shows instructions for the Standalone terminal.![The popup window in the POS App for when you want to start a Standalone Transaction.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_standalone_pos_app.jpeg) You'll be shown instructions to begin the transaction on the standalone terminal. If you don't see either the **Start** or **Payment** icons, see the [Alternate Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_standalone_mode.htm&release=264.0.0&type=5) section. 1. Select **Start** or the **Payment** icon on the standalone terminal. 2. Enter the amount to be charged manually 3. Take payment with card 4. Signature verification (if applicable) 5. Approved 6. Terminal goes back to the home screen with the **Start** or **Payment** icon. After the payment is taken on the Adyen terminal, select **CONTINUE** on the POS app. Enter the terminal and transaction details. Enter the terminal ID (you can scan the QR Code on the terminal by selecting **5** and then O). Enter the tender reference number by using the instructions on the POS app. Select **COMPLETE** on the POS app to place the order.![The popup window in the POS App to complete the Standalone transaction.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_complete_standalone_terminal.jpeg) ## Alternate Flow If the Start or Payment icon isn't enabled or not appearing, there are workarounds to initiate a standalone payment on the terminal. 1. Select **8** and **O** on the terminal to open the transactions menu. ![The new transaction option in the payment terminal for an alternate payment process.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_alternate_flow_new.jpg) 2. Select **New transaction** in the menu and enter the [transaction code](https://docs.adyen.com/point-of-sale/managing-terminals/menu-access?tab=manage_passcodes_in_the_customer_area_1#manage-passcodes) for your terminal.![The normal payment option in the payment terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_alt_flow_normal_pay.png) 3. Select **Normal payment** and it opens the same standalone payment flow as the **Start** or **Payment** icons. After the payment is taken on the Adyen terminal, select **CONTINUE** on the POS app. Enter the terminal and transaction details. Enter the terminal ID (you can scan the QR Code on the terminal by selecting **5** and then O). Enter the tender reference number by using the instructions on the POS app. Select **COMPLETE** on the POS app to place the order ## Known Issues and Restrictions - Each store has one or more Adyen terminals that are preconfigured to work in standalone mode. Configuring a terminal to work standalone requires a network, so verify this is ready to go if the network is available. - Admin Menu Pin for Standalone Terminal. The associates shall enter the reference ID of the standalone transaction, which requires them to go into **Admin Menu > Transactions.** # Configure Status Indicators for Pickup Orders To show status indicators for pickup orders in the Salesforce POS, set the threshold in CMS. 1. In CMS, go to **Store Management | Store Settings | Store Fulfillment**. 2. Enter a percentage in the **Pickup SLA Threshold** field. For example, if the pickup deadline is 24 hours and the threshold is 80, the order has an orange indicator after 19 hours and 12 minutes. 3. Save your changes. 4. To apply the changes in the POS app, close out the app and log back in. 5. On the Pickup Order List page, review the status indicator for each order or filter orders by status.
Status Description
On Track

Order is still within the pickup deadline and shows a green indicator.

Near Due

Order is getting close to the pickup deadline and shows an orange indicator.

Overdue

Order has passed the pickup deadline and shows a red indicator.

![Filter Option Window in POS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_order_fulfill_status_indicators.png) #### See Also - [_Salesforce Help:_ Manage Buy Online, Pickup In Store (BOPIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bopis.htm&release=264.0.0&type=5 "Configure and process Buy Online, Pickup In Store (BOPIS) orders in the POS app.") - [_Salesforce Help:_ Manage Buy Online, Fulfill In Store (BOFIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bofis.htm&release=264.0.0&type=5 "Process Buy Online, Fulfill In Store (BOFIS) orders in the POS app. Store associates pack, ship, and manage orders fulfilled from the store.") - [_Salesforce Help:_ Use Reserve Online, Pick Up In Store (ROPIS)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_ropis.htm&release=264.0.0&type=5 "Point of Sale's Reserve Online, Pick Up In Store (ROPIS) feature lets customers reserve items online for in-store trials before buying. After reserving online, the store gets an order, allocates the items, and prepares them for fulfillment, similar to Buy Online Pick Up In Store (BOPIS). Once the order is ready, the customer receives a notification to try the items in-store before purchase.") # Configure Store Associate Users Set up your store associates and assign them the necessary permission set to access the store fulfillment app. ### Required Editions
View supported editions.
1. Log in to Salesforce as a System Administrator. 2. Add a store associate. 1. From Setup, in the Quick Find box, enter Users, and then select **Users**. 2. Click **New User**. 3. Enter the associate’s general information. 4. For User License, select **Identity**. 5. For Profile, select **Identity User**. 6. Click **Save**. 3. Assign the Store Associate Permission set to a store associate. 1. From Setup, in the Quick Find box, enter Users, and then select **Users**. 2. Select the store associate’s account. 3. Under Permission Set Assignments, click **Edit Assignments**. 4. Select **Order Management Store Associate** and click **Add**. 5. Click **Save**. #### See Also - [Store Fulfillment App Setup](https://help.salesforce.com/s/articleView?id=commerce.om_store_fulfillment_application.htm&release=264.0.0&type=5 "The Store Fulfillment app provides guided workflows that walk store associates through the process of picking and packing each order. Store associates can indicate how much of each item they can fulfill and how much they can pack. They can also track the items that they can’t fulfill and the reasons for rejection. Access to the site is controlled using the Identity User license. After the Identity User license is configured, create accounts for your store associates and assign the license to them.") # Configure Store Language, Currency, and Tax Make sure that the language, currency, and tax settings are configured correctly to sell around the world. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Configure Language, Ship-To Countries, and Currencies for a D2C Store](https://help.salesforce.com/s/articleView?id=commerce.comm_lang_curr_international_b2c_store.htm&release=264.0.0&type=5)** Specify the language, ship-to countries, and currency settings for a D2C store. - **[Configure Language, Ship-To Countries, and Currencies for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_lang_curr_international_b2b_store.htm&release=264.0.0&type=5)** Configure your B2B store for international customers by specifying the languages, shipping countries, and currencies that you support. Buyers can then see the pricing and shipping options based on their location and account. - **[Configure Tax Settings for a Store](https://help.salesforce.com/s/articleView?id=commerce.comm_taxes_international_store.htm&release=264.0.0&type=5)** Configure tax settings for a B2B store. - **[Languages Supported for Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_search_localization.htm&release=264.0.0&type=5)** Search for B2B stores supports all languages provided by Salesforce. For D2C stores, search results are returned in the language of the store. For B2B stores, search results are returned in the language assigned to the buyer’s user account. If a buyer is configured to use a language that isn’t enabled for the store, search results, including facet and filter values, are returned in the store's default language. # Configure Store Roles for Point of Sale Manage roles, such as Store Manager and Store Associate, to define the responsibilities for each associate. - Area Manager—The manager of stores that belong to a defined region or territory (California, New Heaven, and so on). - Store Manager—The manager of a defined store. - Store Associate—The associate who works in this store, mainly assists customers with purchases. ## Add New Role To add a new role: 1. Go to **CMS > Store Management > Associates.** 2. Select **Add**. 3. Set the Associate Role. 4. Complete the rest of the fields. 5. Select **Save**. ## Edit Existing Roles To edit an existing role: 1. Go to **CMS > Store Management > Associates.** 2. Select **Edit**. 3. Change 'Associate Role' to the role you want. 4. Select **Save**. # Configure Store Settings in Point of Sale CMS Support store operations by managing store associates, setting up offline mode and fiscalization, configuring returns and exchanges, and managing franchises. Define store-level policies and permissions to align with your daily workflows. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In 2024, Salesforce acquired PredictSpring, a provider of modern retail point-of-sale (POS) software built natively in the cloud. PredictSpring was renamed Retail Cloud and is now called Point of Sale. You may still see references to PredictSpring or Retail Cloud in the Point of Sale app and in our documentation. - **[Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5)** Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations. - **[Manage Store Associates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_store_associates.htm&release=264.0.0&type=5)** Control who can access sensitive customer and sales data in Point of Sale CMS, and ensure smooth store operations. - **[Support Fiscalization](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_support_fiscalization.htm&release=264.0.0&type=5)** Ensure sales transactions meet goernment-specific requirements and provide EFSTA access in Point of Sale CMS. - **[Support Offline Mode](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_settings_support_offline_mode.htm&release=264.0.0&type=5)** Continue working with Point of Sale CMS data even without an internet connection. Stay productive in areas with little-to-no internet access. - **[Configure Returns and Exchanges](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_configure_returns_and_exchanges.htm&release=264.0.0&type=5)** Manage refund and exchange processes in Point of Sale CMS. Provide a seamless post-purchase expereince for customers. - **[Set Up Store Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_set_up_store_management.htm&release=264.0.0&type=5)** Manage stores in Point of Sale CMS to gain a centralized view of your retail network. Manage inventory, track sales, and reconcile transactions. # Configure Subscription Shopping in a Commerce Store In Experience Builder, customize your B2B store pages so that shoppers can purchase subscription products and manage their active subscriptions from their profile. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Unlimited and Developer editions
Available in: B2B Commerce
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Watch the video to help you configure subscription shopping for your store. If you can’t watch the video in full screen, open the video on a new tab: [Configure Subscription Shopping](https://play.vidyard.com/Yaf5gABwiMWesyVWBKh3Wi). 1. In the navigation sidebar, select a store from the Store dropdown. 2. Click **Experience Builder**. 3. On the Product page, add the Subscriptions component. You also need up-to-date versions of the Product Detail Purchase Options and Product Set components. If you’re not sure if the latest versions of these components are in your store, replace your components with the versions from the component menu. 4. Update the Checkout page. 1. To make sure that you’re using the latest version of the Checkout Layout: One-Page component, replace it with the new version from the component menu. 2. Drag and drop the Subscription Policy component under the Place Order section. 3. Replace the Payments component with the Salesforce Payments component. Your store must use Salesforce Payments to sell subscription products. See [Salesforce Payments](https://help.salesforce.com/s/articleView?id=commerce.payments_product_intro.htm&language=en_US). 5. On the Search Page, customize how the subscription option label for a product displays in search results. 1. Select the Results component. 2. In the Results display section, edit the Subscription Option Text label. 6. On the My Profile Page, add a menu item and page so that shoppers can view and manage their subscriptions. 1. Select the Navigation List Menu component. 2. Click **Edit Default My Account Menu**. 3. Click **Add Menu Item**. 4. Enter a name for the menu item. For example, “Subscriptions” or “My Subscriptions.” 5. For Type, select **Site Page**. 6. For Page, select **Subscriptions**. 7. Click **Save Menu Item**. 7. To support updating saved payment methods on your store’s subscription page, configure the same payment method set key on the Subscriptions page that you use on the Saved Payment Methods page. 1. From the Pages list, open the **Add Payment Methods** page. 2. Select the **Add Payment Method** component on the page. If the component is not already added to the page, drag and drop the component from the Components list. 3. In the Settings tab, select a key for the Payment Method Set Key field. 4. Copy the key value for your reference. 5. From the Pages list, open the Subscriptions page. 6. Select the **List Repeater** component. If the component is not already added to the page, drag and drop the component from the Components list. 7. In the Settings tab, select the same key that you used for the Add Payment Methods page. 8. From the Pages list, open the **Saved Payment Methods** page. 9. Select the **Saved Payment Methods** component. If the component is not already added to the page, drag and drop the component from the Components list. 10. In the Settings tab, select the same key that you used for the Add Payment Methods page. 8. Preview the site and publish your store. #### See Also - [Website Design for Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_template.htm&language=en_US) - [Use Experience Builder to Design a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_experience_builder.htm&language=en_US) # Configure Tap to Pay Turn on Tap to Pay in Point of Sale for a register in Store Management and configure the Adyen URL in Payment Gateways. ## Register To turn on Tap to Pay for a specific register: 1. In Point of Sale CMS, go to **Store Management > Registers**. 2. Select a store from the dropdown menu. 3. Edit a register by selecting the pencil icon to the right of it. 4. Go to **Card Reader**. 5. Turn on the "**Tap to Pay**" flag. ## Payment Gateway Setting Next, you'll need to configure the Adyen URL. 1. In Point of Sale CMS, go to **Integrations > Payment Gateways**. 2. Select **Create** in the upper right. 3. Under Payment Gateway, select "Adyen". 4. Go to **Tap to Pay Settings**. 5. Enter the endpoint used to create a payment session for the POS app. ## Switching Between Tap to Pay and a Terminal Registers configured to use Tap to Pay can process credit card payments using both Tap to Pay and a connected terminal. The default selection is Tap to Pay, and associates can switch to a terminal in Device Manager. You can set a deep link in the Cart Options layout to let associates easily change items during checkout without having to go back to the Device Manager. 1. In CMS, go to your **Cart Options Layout** and edit it. 2. In the deep link picker, go to **Cart Options > Switch Payment Hardware**. 3. Add the **Switch Payment Hardware** deep link to the cart layout. 4. Set and save your changes. ## Configure Tap to Pay - Set Up Ayden Portal Prepare the Ayden portal for use with the Point of Sale (POS) app. Set this configuration: ``` TFM setting -> appleTapToPay.enable TFM setting -> appleTapToPay. terminalProfileId TFM setting -> appleTapToPay. merchantDisplayName POS WebService User -> Client Key ``` ### TFM Settings Contact Adyen POM for configuring the TFM on Adyen Console. ### Generating a Client Key 1. Go to **Developers > API Credentials**. . 2. Select the Web service user associate with the POS. 3. Scroll down to **Client Settings** section. 4. If **Client Key** field is empty, select **Generate client key**. 5. Select **Save Changes**. ### Currency Settings All accepted currencies across regions (for example USD, EUR, and so on) are configured at the merchant level. ## Configure Tap to Pay - Set Up Apple Business Manager Accept Apple's terms and conditions to use Tap to Pay in the Point of Sale (POS) app. For merchants that use Apple IDs on their registers, the register user must accept the terms and conditions directly on the iPhone. For merchants that don't use Apple IDs on their registers (and use an MDM instead), the merchant must accept the terms and conditions directly in the Apple Business Manager. ![Apple's Terms and Conditions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_apple_terms_conditions.png) # Configure Tariff Rates in Point of Sale CMS Set a percentage-based tariff rate in Point of Sale CMS to apply at the order level during checkout. 1. In CMS, go to **Store Management** | **Store Settings** | **Tariffs**. 2. Enter a percentage value in the Tariff Rate (tariffRate) field.![The tariff rate field.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_tariff_surcharges_configure_rate.png) 3. Save your changes. 4. Open the POS app and add products to the cart. The tariff charges are displayed in the cart summary (1).![The POS app shows a tariff surcharge on an order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_tariff_surcharges_configure_pos.png) #### See Also - [_Salesforce Help:_ Managing Tariff Surcharges in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types_tariff_surcharges.htm&release=264.0.0&type=5 "Manage tariff surcharges in the POS app so merchants can consistently apply them and shoppers have a clear understanding of the impact on their purchases. The POS dynamically calculates the tariff based on the order subtotal and updates the amount as items are added or removed. The tariff appears as a separate charge, distinct from the subtotal and tax.") - [_Salesforce Help:_ Print Tariff Surcharges on Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types_tariff_surcharges_print.htm&release=264.0.0&type=5 "Configure Point of Sale CMS to show tariff surcharges on printed receipts.") # Configure Tax and Fiscalization Service Monitoring for Point of Sale Identify integration issues that could impact checkout by monitoring tax and fiscalization services. When errors or high latency occur, the POS app sends monitoring events to your system. Before you begin, configure the Monitoring Event webhook. See [Webhook Monitoring Event Webhook](https://developer.salesforce.com/docs/commerce/retail-cloud/references/webhook-monitoring-event-webhook?meta=Summary). 1. In CMS, go to **Store Management** | **Store Settings** | **Monitoring**. 2. In the External System Monitoring section, click **Edit**. 3. Click **Add Monitor**. 4. Select the service to monitor: **Tax Service** or **Fiscalization Service**. 5. Enter the latency threshold in milliseconds. The default is 5000. 6. Save your changes. ![External System Monitoring configuration screen showing tax and fiscalization service monitor settings](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_tax_fiscal_monitor.png) #### See Also - [Salesforce Help: Fiscalization in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_support_fiscalization.htm&language=en_US) - [Salesforce Help: Tax Integrations](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax.htm&language=en_US) # Configure Tax Exemptions for Point of Sale Merchants can apply tax breaks to customer carts during checkout when valid proof is provided. This ensures customers receive the appropriate tax exemptions, while merchants can efficiently manage exemptions through the CMS, even in offline mode. - Modern POS App build: 6.2.1 and above - Platform Support: iPad - Offline Support: Yes, if tax exempt are configured in CMS(Store Management > Tax > Tax Exemption Configuration) for the merchant, the tile comes automatically in the native cart options screen 1. Configure POS store settings. 1. Go to **Store Management** | **Tax Exemptions** | **Create**. 2. Configure a tax exemption with a code, name, rate, associated country, state, and postal code. 3. Associate a tax-exempt to the tax rates by selecting the tax class and tax names associated with the tax rates. 4. Click **Save**. 2. Configure tax exmpetion in cart option layout. 1. Go to configured **Cart Option Layout**. 2. Select the deep link and choose **Cart Options** | **Tax Exempt**. 3. Click **Save**. 3. Configure paper receipt settings. 1. Go to **Modules** | **POS** | **Receipt Configuration** 2. Add the necessary tags to the Tax Exempt details sectionto see them above the footer section in the paper receipt. 3. Click **Save**. # Configure Tax Integrations Integrate Point of Sale with third-party tax solutions such as Vertex, OneSource (Sabrix), Native Tax Engine, and Avalara. Tax integrations help ensure accurate tax calculations and compliance within your retail operations. By connecting Point of Sale with a tax service, you can automate tax determination, calculation, and reporting. This automation reduces errors, saves time, and helps businesses stay compliant with changing tax regulations. - **[Integrate Tax Engines](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_overview.htm&release=264.0.0&type=5)** To calculate taxes, apply exemptions, and support tax overrides during checkout, configure a tax engine in the Point of Sale CMS. - **[Integrate Vertex](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex.htm&release=264.0.0&type=5)** Integrate Point of Sale with the Vertex tax engine to facilitate tax calculations during sale transactions. Confirm that the Vertex engine handles all necessary tax computations. - **[Integrate OneSource (Sabrix)](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5)** Facilitate tax calculations during sale transactions with OneSource (Sabrox) tax engine. Ensure that the OneSource engine handles all necessary tax computations. The process operates as follows: a real-time request is sent to OneSource with the cart details, and the corresponding VAT information is retrieved. For transactions occurring in offline mode, the necessary data is stored to enable offline processing. - **[Integrate Avalara for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_avalara.htm&release=264.0.0&type=5)** Automate tax calculations and tax filing by using Avalara in Point of Sale. - **[Integrate the Native Tax Engine](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_native.htm&release=264.0.0&type=5)** Onboard a merchant for integrating with Point of Sale's inbuilt tax engine - the native tax engine. By default, POS supports the native tax engine. - **[Configure Tax and Fiscalization Service Monitoring for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_configure_http_monitoring_tax_fiscal.htm&release=264.0.0&type=5)** Identify integration issues that could impact checkout by monitoring tax and fiscalization services. When errors or high latency occur, the POS app sends monitoring events to your system. - **[Manage Global Blue Tax-Free Forms in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue.htm&release=264.0.0&type=5)** Create tax-free forms for eligible customers during checkout by using Global Blue in the POS app. When a customer qualifies for tax-free shopping, complete the Global Blue form in the POS app and print the form on an A4 or thermal printer. # Configure Tax Rates When you configure the manual Salesforce tax solution for B2B Commerce, you configure tax rates and tax treatments. A tax rate specifies the percentage at which a product is taxed and the country, state, or province where that rate applies. A tax treatment maps the tax rate to products. A tax policy includes all the tax treatments for your store’s products. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. From the App Launcher, search for and select **Tax Rates**. 2. Click **New**. 3. If you're using tax codes to calculate the taxes on a product, then enter a tax code. The tax code maps products to the tax rate. You can use a tax code supplied by a country, state, or province or create your own. If you don't want to use tax codes, but want to set up taxes for products manually , see [Assign a Tax Policy with the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_assign_tax_policy.htm&release=264.0.0&type=5 "When you set up the manual Salesforce tax solution, assign a tax policy to your B2B store."). 4. Enter the geo country or geo state where the rate applies. The geo country and geo state is where the item is shipped. See [Create Geo Countries for the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_create_geocountries.htm&language=en_US) and [Create Geo States for the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_create_geostates.htm&language=en_US). 5. Enter a tax percentage for the rate. 6. Enter a priority. The priority number determines which tax rate applies first. The lower the number, the higher the priority. If a tax code has both a country and state tax rate associated with it, the priority determines the order in which the tax is calculated. If two tax rates have the same priority, they're added together and applied to the product price. If you don't enter a priority number, the tax rate is evaluated last. If your org has only Commerce licenses, the Tax Rate record enforces a unique key constraint on the combination of the tax code, geo country, and geo state. You can't create duplicate tax rates with identical values for these three fields. If your org has Revenue Cloud licenses (or a combination of Revenue Cloud and Commerce licenses), no unique key constraint is enforced on Tax Rate. Repeat these steps to create tax rates and treatments for all products included in the store’s tax policy. Create a tax treatment for each tax rate. See [Create a Tax Treatment](https://help.salesforce.com/s/articleView?id=commerce.comm_createtaxtreatment.htm&release=264.0.0&type=5 "A tax treatment defines how taxes are calculated for a specific item through the product's tax code. When you configure the manual Salesforce tax solution in B2B Commerce, create a tax treatment."). # Configure Tax Settings for a Store Configure tax settings for a B2B store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) These steps assume that you’ve already created a B2B store using the B2B store template. See step two in [Set Up Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&release=264.0.0&type=5 "Use the automated and guided assistant to configure your Salesforce org for Commerce and create an online store. Preview and polish the store before going live."). 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Checkout**. 3. Click **Taxes**. 4. Under Tax Type, select Net or Gross. For net, the product price doesn’t include the tax. For gross, the product price includes the tax. If your store is using gross taxes, you can use the Salesforce tax solution. See [Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_salesforce_tax_solution.htm&release=264.0.0&type=5 "You can set up taxes for your B2B store by using the manual Salesforce tax solution. The manual tax solution is available only with a custom checkout configuration. Configure tax rates and tax treatments and assign them to the store’s tax policy."). If your store is using net taxes, or you want to use a third-party tax solution, see [Add a Tax Calculation Service for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_tax.htm&release=264.0.0&type=5 "A tax calculation service determines how much your customers pay in taxes based on their location. You can set up the Salesforce Tax Solution or use a third-party tax calculation service for your B2B store."). # Configure the Salesforce (SF) Order Management System (OMS) in CMS Discover the steps to configure the Salesforce Order Management System (OMS) in CMS. Point of Sale platform has an inbuilt Salesforce OMS connector. The connector is built on the best practices and collaboration with the Salesforce team. Before reading this article, refer to [Salesforce (SF) Order Management System (OMS) Integration Guide](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_oms.htm&release=264.0.0&type=5 "Integrate the Salesforce Order Management System (OMS) connector with the Point of Sale platform.") to learn the integration portion. Based on various OMS features and declarative integration paradigms we have the following sections: - Connectivity and Authentication - Order Search Configuration - BOPIS Setup - Custom Field Mappings - Return Field Mappings - Order Field Mappings - Digital Wallet Types - Additional Payment Types - Payment Gateway - URL Override - Delivery Methods - Order Status Mappings ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This connector is compatible with Salesforce REST API version 49.0 and above. ## Prerequisites - Refer to [POS Access List - URLs and IP Addresses](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_pos_access_list.htm&release=264.0.0&type=5 "To enable POS and cloud services to interact with external, third-party services, allowlist specific URLs and IP addresses within the merchant's firewall. Ensure necessary communication for Adyen Payments, Elavon Payments, and other connectors by allowlisting URLs configured on CMS and product or order systems. The in-store IT team handles store firewall and POS app URLs, while the corporate IT team manages backend outbound NAT gateway IPs for connectors.") for a list of URLs and IP addresses to be allowlist. This is to enable the necessary communication. - If you've yet to set up an Adyen and Point of Sale account, confirm that your StoreIDs are the same for both accounts. - If your Point of Sale account is already live but you haven't set up Adyen, confirm that your Adyen's StoreID is the same as your Point of Sale's StoreID. - If your Adyen account is already live but you haven't set up Point of Sale, confirm that your Point of Sale's StoreID is the same as Adyen's StoreID. - Contact your Customer Success Manager (CSM) to configure an OMS Import Job for each environment. ## Enable CMS Configurations Turn on the Generate Order ItemId for SFOMS Order setting in Point of Sale CMS to generate unique orderItemIDs for each product in an order. Failing to turn on this setting may lead to errors in processing split order 1. In CMS, go to **Store Management** | **Store Settings** | **System**. 2. Expand **Rollout**. 3. Turn on **Generate Order ItemId for SFOMS Order**. ## Create OMS Configuration Now create the OMS configuration. 1. In CMS, go to **Integrations** | **OMS Configuration**. 2. Fill out the fields by referring to the table. | Field | Required | Description | Example | | --- | --- | --- | --- | | General Settings | | | | | Service | Yes | Service type for your implementation. Select NetSuite for standard NetSuite implementation, Salesforce OMS for Salesforce Order Management implementation, or Custom for specific implementations. If you select Salesforce OMS, configure Inventory Configurations. When you use the order SPI, you don't need a custom configuration. Process the order JSON and assign fulfillment workflows based on the fulfillmentTypes and subFulfillmentTypes. | NetSuite, Salesforce OMS, Custom | | Error Reporting | No | Error monitoring and reporting configuration. Access this feature by going to **Advanced | Monitoring** [Learn more](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_policy_management_settings.htm&release=264.0.0&type=5 "Create monitoring policies in Point of Sale CMS to designate email addresses for receiving alerts about subscription or application-based events.") | N/A | | Order Statuses to Process | No | Order statuses that filter which orders to process during import. Enter one or more statuses. | N/A | | Connectivity and Authentication | | | | | Username | Yes | Username for your Salesforce Order Management integration account. Use an integration account, not an individual user account. | username123 | | Password | Yes | Password for your Salesforce Order Management account. | password123 | | Client ID | Yes | Client ID for your Salesforce Order Management account. | SDOKWmwe123.sadAJS | | Client Secret | Yes | Client secret for your Salesforce Order Management account. | 456xyz | | Environment | No | Environment for your account. | TEST, PRODUCTION | | API version | No | API version for Salesforce Order Management. The recommended version is v51.0. | v51.0 | | Query API version | No | Query API version for Salesforce Order Management. The recommended version is v51.0. | v51.0 | | Order Search Configuration | | | | | Enable | No | Select to configure order search fields in this section. | N/A | | Currency Code | No | Currency code that filters search results. Maps to the OrderSummary CurrencyIsoCode in Salesforce OMS. | US Dollar (USD) | | Sales Channel IDs | No | Sales channel IDs that filter search results. Maps to OrderSummary SalesChannelIDs in Salesforce OMS. | 0000000123abc | | Store ID | No | Store ID that filters search results. Maps to the POS field ORDER\_STORE\_ID and applies to the ORDER field. | 1 | | Card Last Four | No | Salesforce OMS custom field to use for order search by the last four digits of the payment card. | CardLastFour\_\_c | | BOPIS | | | | | Enable | No | Select to configure BOPIS fields in this section. | N/A | | Order Statuses to Import | No | Order status in Salesforce OMS to import BOPIS orders on the POS app. | Allocated | | Pack Order Status | No | Order status in Salesforce OMS when an associate marks a BOPIS order as packed. | Pickpack | | Delivery Method Name | No | Delivery method of the BOPIS order in Salesforce OMS. | Store PickUp | | Delivered Order Status | No | Order status in Salesforce OMS when an associate marks a BOPIS order as delivered. | Fulfilled | | Canceled Order Status | No | Order status in Salesforce OMS when an associate marks a BOPIS order as canceled. | Canceled | | Custom Field Mappings | | | | | POS Field | Yes | Predefined Point of Sale field that applies to posted orders. | ORDER\_STORE\_ID | | OMS Field | Yes | Salesforce OMS field that applies to posted orders. | warehouseID\_\_c | | Applied To | Yes | Salesforce object for the mapping. Applies to posted orders. | ORDER | | Transform Function | No | Supported transform function to apply to the mapping. | NONE | | Return Field Mappings | | | | | Mapping Field | No | Predefined Point of Sale field that applies to returns. | CHANGE\_ORDER\_ID | | OMS Field | No | Salesforce OMS field that applies to returns. | ChangeOrder\_\_c | | Applied To | No | Salesforce object for the mapping. Applies to returns. | REFUND | | Payment Field Mappings | No |   |   | | Mapping Field | No | Predefined Point of Sale payment field that maps to OrderPaymentSummary for returned or edited orders. | REFUND\_FEE\_AMOUNT | | OMS Field | No | Salesforce OMS payment field that maps to OrderPaymentSummary for returned or edited orders. Create field in the OrderPaymentSummary sObject before you configure this field. | RestockingFee\_\_c | | Applied To | No | Salesforce object for the payment mapping. Applies to returned or edited orders. | PAYMENT | | Transform Function | No | Supported transform function to apply to the mapping. | NONE | | Order Field Mappings | No | | | | No Receipt Returns Order Type | No | Order type for no-receipt return orders in Salesforce OMS | Unreferenced Returns | | Default Email Address | No | Email address for the account when guest orders have no email address. The email address is the Person Account object in Salesforce. | default@email.com | | Endless Aisle Order Type | No | Order type for endless aisle orders. Endless aisles are in-store kiosks that let customers browse and order products not available in the store. | Endless Aisle | | Digital Wallet Type | | | | | Digital Wallet | No | Digital wallets supported on the website for BORIS scenarios. POS requires this list. For more information, see [Digital Wallet Types](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_sfoms.htm&release=264.0.0&type=5 "Map online payment options, such as ApplePay, PayPal, and Google Pay, to the Retail CLoud POS app. This field(s) is not mandatory however, it is critical for BORIS flows to map online payment options to the POS. Configure the same payment types in the Commerce system and Point of Sale CMS. These are found in your Salesforce account under Type in the Order Payment Summary."). | Apple Pay, PayPal, or Google Pay | | SFOMS Values | No | Payment types configured in Commerce for the digital wallet type. The values are in your Salesforce account under Type in the Order Payment Summary. For more information, see [Digital Wallet Types](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_sfoms.htm&release=264.0.0&type=5 "Map online payment options, such as ApplePay, PayPal, and Google Pay, to the Retail CLoud POS app. This field(s) is not mandatory however, it is critical for BORIS flows to map online payment options to the POS. Configure the same payment types in the Commerce system and Point of Sale CMS. These are found in your Salesforce account under Type in the Order Payment Summary."). | DW\_APPLE\_PAY | | Additional Payment Types | | | | | Additional Payment Type | No | Additional payment types, such as Affirm or Miscellaneous, configured in your Salesforce account. | Affirm Payment Type, Miscellaneous Payment Type | | SFOMS Values | | Corresponding payment type values in Salesforce OMS. For Miscellaneous Payment Type, use the `tender.externalPaymentSystemId` value. Alternatively, use the payment type you configured for Miscellaneous Tenders in **Store Management** | **Store Settings** | **Payment**. | Uber, Bank Transfer | | Tender Types | | | | | Tender Types | No | POS tender type. | Cash, Credit Card, Gift Card, Miscellaneous | | SFOMS Values | No | Salesforce OMS TenderType value. Corresponds to the PaymentGatewayName value, not the PaymentGatewayID. For Miscellaneous, use the same value you configured for Cash. | Cash, Givex, Adyen, POS Adapter | | URL Override | | | | | OMS Endpoint | No | Endpoint for advanced use cases. If you built a custom URL to override Salesforce OMS core flows, enter the endpoint here. | Submit Return, Preview Return | | Override Values | No | Custom URL that alters the default behavior. The URL must start with a forward slash. | /services/apexrest/pos-return?step=preview | | Delivery Methods | | | | | Delivery Method | No | POS order type configured in your Salesforce account. For more information, see [Delivery Methods](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_sfoms.htm&release=264.0.0&type=5 "View delivery methods in your Salesforce Point of Sale account in the Order Delivery Method summary."). | Ship To Home | | SFOMS Values | No | Corresponding delivery methods in Salesforce OMS. For more information, see [Delivery Methods](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_sfoms.htm&release=264.0.0&type=5 "View delivery methods in your Salesforce Point of Sale account in the Order Delivery Method summary."). | OVERSIZE\_HOME\_DELIVERY | | Order Status Mappings | | | | | Created | Yes | Salesforce OMS order status to display as CREATED on the POS. | Created | | Completed | Yes | Salesforce OMS order status to display as COMPLETED on the POS. | Fulfilled, Closed, Return | | Cancelled | Yes | Salesforce OMS order status to display as CANCELLED on the POS. | Canceled | | Processing | Yes | Salesforce OMS order status to display as PROCESSING on the POS. | Waiting Approval, Waiting Allocation, Waiting Fulfillment, Waiting Business Approval | | Advanced | | | | | Enable 'Skip In-Store' Order Search | No | Select to skip in-store order search. | N/A | | Enable Returns | No | Select to enable returns. | N/A | | Enable Streaming | No | Select to enable the Salesforce OMS Streaming listener to pull orders that a store fulfills (BOPIS / BOFIS). | N/A | | Enable Master of Record for Web Orders | No | Select to use Salesforce OMS as the master of record for web orders. | N/A | | Enable Cancellation APIs | No | Select to enable cancel APIs for fulfillment orders. | N/A | | Enable Composite Query Search | No | Select to enable the Salesforce OMS Composite Query API. This API queries multiple SObjects in a single request instead of separate requests for Order Items and Tax Line Items, improving efficiency for orders with many items. | N/A | | Enable Payment Update | No | Select to post the Payment object to Salesforce OMS in Draft status for updates during Store-and-Forward. Use when a tender reference ID is incorrect during initial order posting and needs correction during the SAF process. | N/A | | Enable Ensure Refund Payment Sequence for Web Orders | No | Select to include the refund payment sequence in the EnsureRefundsAsync API call to honor the tender allocation that the associate selects. Disabled by default. | N/A | 3. Save your configuration. ### Custom Field Mappings The field mappings provide a mapping of the custom fields between Point of Sale and the Salesforce OMS. The following properties are used to map the fields from Point of Sale's Order objects to the Salesforce objects. On a high-level overview, this is how information about an order is selectively processed and then posted to SF OMS. ![A settings window displays custom field mappings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_sf_int_sfoms_create_mapping.png) In the screenshot, the POS app field (ORDER\_NOTES) is mapped to the SF OMS field (OrderNotes\_\_c). It is applied to "ORDER" and the transformation type is "Order to Order Notes". With this configuration, we're using code logic (transformation type) to read and grab the order notes we're trying to find in the Order object (apply to). `order.notesList[0].noteText` To further explain, in the code example above, the transformation type of "Order to Order Notes" is being used to read the field value of noteText from the order.noteList\[0\] object. After we have the information we need, we process it and post it to SF OMS. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important We need at least one field mapping defined to identify the store ID to ensure BOPIS orders are routed to the correct store. - **POS Field** - A configuration property that is a predefined Point of Sale field to map to. E.g., ORDER\_NOTES. - **OMS Field** - A configuration property that is an SF OMS custom field name. E.g., OrderNotes\_\_c. - **Apply/Applied To** - A configuration property that is a list of SF object names for which this mapping should be applied. E.g., ORDER. The difference between Order and Product is just a way, for example, to read the order notes from either the Order object or Product object. It is specific to the POS field that is being selected. - **Transform Function/To** - A configuration property that applies a supported transform function. E.g, Order To Order Notes. This is the logic that will find the specific field value of an array object in a JSON string. It is specific to the POS field that is being selected. - **Delimiter** - A character that marks the beginning or end of a unit in a string of data. E.g., comma (,), semicolon (;). - **Date Format** - The format of the date to be posted in SF OMS. E.g., MM-dd-yyyy. To Add a Custom Field Mapping: - Click **\+ Add** at the bottom of the panel. - Fill out the fields. - Click **SET**. - (Optional) Select the pencil icon to the right to edit a field mapping. - (Optional) Select the trash bin icon to the right to delete a field mapping. #### POS Fields
POS Field Applied To Transform Function
ASSOC_ID ORDER NONE
ORDER_NO_RECEIPT_RETURNS ORDER NONE
ORDER_DETAIL_STORE_ID PRODUCT NONE
ORDER_NOTES ORDER ORDER_TO_ORDER_NOTES
ORDER_QUOTE_ID ORDER NONE
ORDER_STORE_ID ORDER, LOCATION NONE
ORDER_TARIFF ORDER NONE
ORDER_TAX_EXEMPT ORDER ORDER_TO_TAX_EXEMPT
ORDER_UPDATE_DATE ORDER, FULFILLMENT_ORDER EPOCH_TO_DATE
ORIGINAL_ORDER_ID ORDER NONE
PRODUCT_CARD_ALIAS ORDER PRODUCT_CARD_ALIAS
PAYMENT_CARD_LAST_FOUR ORDER PAYMENT_TO_CARD_LAST_FOUR
PRODUCT_ASSOC_ATTR PRODUCT PRODUCT_TO_ASSOC_ATTR
PRODUCT_CUSTOMSKU PRODUCT List to JSON string
PRODUCT_NOTES PRODUCT PRODUCT_TO_PRODUCT_NOTES
PRODUCT_PICKUP_STOREID PRODUCT

PRODUCT_PICKUP_

TO_TARGET_STORE_ID

PRODUCT_FULFILLMENTLOC_STOREID PRODUCT NONE
PRODUCT_FULFILLMENT_TYPE PRODUCT NONE
PRODUCT_FULFILLMENT_SUBTYPE PRODUCT NONE
PRODUCT_PRICE_ADJUSTMENT_PROMONAME PRODUCT_PRICE_ADJUSTMENT NONE
PRODUCT_PRICE_ADJUSTMENT_REASON PRODUCT_PRICE_ADJUSTMENT_REASON List to JSON string
PRODUCT_TARGET_STORE_ID PRODUCT NONE
PRODUCT_TAX_CODE PRODUCT_TAX NONE
PRODUCT_TAX_JURISDICTION PRODUCT_TAX NONE
PRODUCT_TAX_REGISTRATION_NO PRODUCT_TAX NONE
STORE_FULFILLMENT_ORDER_ID ORDER NONE
STORE_REGISTER_ID ORDER NONE
TARIFF_RATE ORDER NONE
### Digital Wallet Types Map online payment options, such as ApplePay, PayPal, and Google Pay, to the Retail CLoud POS app. This field(s) is not mandatory however, it is critical for BORIS flows to map online payment options to the POS. Configure the same payment types in the Commerce system and Point of Sale CMS. These are found in your Salesforce account under Type in the Order Payment Summary. ![An order payment summary shows payment details.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_sf_int_sfoms_create_wallets_paymant.png) ![A web form displays digital wallet settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_sf_int_sfoms_create_wallets_map.png) For details on the support capability for BORIS returns to credit card payments, refer to [Buy Online, Return In-Store (BORIS) Payment Refunds via Credit Card](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_boris_overview.htm&release=264.0.0&type=5 "Point of Sale offers flexible methods for processing BORIS returns, including referenced and unreferenced refunds, and tender remapping. These options are tailored to merchants using SPIs, Salesforce Order Management, or NetSuite connectors, ensuring alignment with specific business needs."). ### Additional Payment Types In terms of functionality, Additional Payment Types is similar to Digital Wallet. If you allow, for example, Affirm during checkout, then it needs to be configured so that Retail Cloud's additional payment type values can be mapped to the SF OMS additional payment type values. The values to be entered, if applicable, can be found in your Salesforce account. ### Delivery Methods View delivery methods in your Salesforce Point of Sale account in the Order Delivery Method summary. ![An order delivery method form details oversize home delivery.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_sf_int_sfoms_create_delivery_types_methods.png)![A table displays Point of Sale delivery methods and corresponding Salesforce delivery methods.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_sf_int_sfoms_create_delivery_types_map.png) There are different order fulfillment types (for example, online, in-store) at the item-level as well as fulfillment subtypes (for example, BOPIS, try at store, pick up later). Point of Sale created the **Delivery Methods** field to map a brand's various delivery methods. Point of Sale uses logic to map out the delivery methods in their subsequent fulfillment and fulfillment subtypes. In the above screenshot, since a delivery method was entered under **Ship to Home** in the CMS, with Point of Sale's logic, the fulfillment type would be _online_ with a fulfillment sub type as _default_. # Configure the Subscription Product Bundle After you've created your subscription product bundle, configure the bundle from the bundle's record page. ### Required Editions
View supported editions.
1. In the Product Workspace, select the product bundle that you want to configure. Or if you just created your bundle, skip to the next step. 2. Add a product selling model. You can add multiple product selling models to a subscription bundle. The product selling model must also be supported by the child products in the bundle. If you add a product selling model that isn't supported by the child products in the bundle, then the subscription bundle isn't shown in the store. If a buyer navigates directly to your bundle's product details page, by using a bookmarked URL, for example, and attempts to add it to the cart, the action will fail. 1. On the Related tab, in the Product Selling Model Option, click **New**. 2. Select the product selling model and save your changes. 3. Assign categories. 1. On the Related tab, in the Categories section, click **Assign**. 2. Select the category, and save your changes. 4. If you're using entitlement policies, assign one or more entitlement policies. 1. On the Related tab, in the Commerce Entitlement Policies section, click **Assign**. 2. Select the policy, and save your changes. 5. Add pricing. 1. On the Related tab, in the Price Books section, click **New**. 2. For Price Book, select your store's standard price book. 3. Enter a list price. 4. (Optional) Select a currency. 5. Save your changes. 6. Create any additional price book entries as required. 6. Add child products to the bundle. If you don't see the Child Components section, add it to the Product page layout. See [Prepare Your Commerce Store to Sell Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_prereq_product_bundles_and_sets.htm&language=en_US). 1. On the Related tab, in the Child Components section, click **Add**. 2. Select the child products and click **Next**. 3. Set the quantity for each child product. 4. For Product Relationship Type, select **Bundle to Bundle Component Relationship**. If you don't see the bundle product relationship type, see [Prepare Your Commerce Store to Sell Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_prereq_product_bundles_and_sets.htm&language=en_US). 5. Save your changes. 7. To make the subscription bundle you created visible in the store, [update the Commerce search index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&language=en_US). # Configure Up to 10 Categorization Conditions When configuring a categorization rule in Business Manager, you can now set up to ten categorization conditions per categorization rule set. Previously, Business Manager supported five conditions per rule set while the API supported ten conditions per rule set. # Configure Vertex Product Field Mapping for Point of Sale Map the tax class attribute from your product feed to a custom field so Point of Sale can calculate taxes correctly in offline mode. - Modern POS App Build: 10.2.1 or greater - Platform Support: iPad & iPhone - Offline Support: Yes This task applies only if you upload products using feed files and you support both online and offline transactions. If you upload products using an API, provide the tax class using the selected custom attribute in the payload. For payload specification, refer to Point of Sale's [SwaggerHub documentation](https://app.swaggerhub.com/apis/PredictSpring1/POSAPI_SPEC/). To support tax calculation in offline mode, use the following product feed attribute mapping to add tax type dynamically while setting up the field mapping for product feed. 1. In CMS, go to **Feeds** | **Field Mapping** | **Products**. 2. Under **Source Fields**, map the custom attribute (for example, taxClassID) that is selected for tax class from the product feed file to any unused custom attributes (for example, CustomString12). ![A graphic shows source and target fields.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_vertex_source_fields.png) 3. Back in CMS, go to **Store Management** | **Store Setting** | **Checkout**. 4. Expand **Tax**. 5. Under **Product Field to read tax class**, enter the custom string you've previously mapped to ensuring it's case sensitive and in the camelCase format (for example, customString12). ![A form field indicates a product field name.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_vertex_product_fields.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note There is no need to send a separate tax class field in the product feed. The below screenshot is an example where the tax class "GENERIC" is configured in the product feed. During offline processing, it's used to determine the tax rate. This product feed setting is required for offline processing as offline processing supports a default tax class that's configured for all store locations. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Upload the product feed after these settings are complete. ![A screen displays fields and settings for field transformation.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_vertex_field_trans.png) # Configure Volume-Based Adjustments for Contract Pricing Offer more savings by applying volume-based discounts on top of contract prices when B2B buyers purchase in larger quantities. Volume-based adjustments apply to both subscription and non-subscription products. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before you configure volume-based adjustments, make sure that you have an active contract with contract item prices. See [Offer Contract-Based Pricing to a B2B Buyer](https://help.salesforce.com/s/articleView?id=commerce.comm_offer_contract_pricing_to_buyer.htm&release=264.0.0&type=5 "Create a contract to define negotiated prices for a specific buyer account. Contracts override standard price book prices, ensuring buyers see their negotiated prices across store pages."). 1. From the App Launcher, search and select **Contracts**. 2. Open the contract that you want to update. 3. In the **Contract Item Prices** related list, click ![Action button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_edit_action_arrow.png) for a product and click **Edit**. 4. In the **Adjustment Method** field, select the type of adjustment you want to apply. - Range: Select this option to apply a single discount to all units based on the total quantity purchased. For example, if a customer buys 15 items, all 15 items receive the 10% discount for the 11–20 tier. - Slab: Select this option to apply cumulative discounts where different portions of the total quantity receive different rates. For example, the first 10 items receive a 5% discount, and items 11–20 receive a 10% discount. 5. Save your changes. 6. In the Related tab, add a contract item price adjustment tier. 1. Select whether the discount is a percentage or a fixed amount. 2. In **Lower Bound**, enter the minimum quantity for this tier. For the first tier, enter 1. 3. **Upper Bound**: Enter the maximum quantity for this tier. For an open-ended tier, leave this blank. 4. **Tier Value**: Enter the discount applicable to the tier. For percentage discounts, enter the percentage (for example, 10 for 10%). For fixed amount discounts, enter the discount amount per unit. For example, to offer a 5% discount when buyers purchase 10 or more units, set **Lower Bound** to 10, leave **Upper Bound** blank, set **Tier Type** to Percent, and enter 5 in **Tier Value**. 7. Save your changes. 8. Repeat the previous steps to create more tiers for different quantity ranges. Make sure that your tiers don't overlap and that they cover the quantity ranges you want to offer discounts for. 9. After creating all adjustment tiers, refresh the decision tables. 1. In Setup, in the Quick Find box, enter `Lookup Tables`, and select **Lookup Tables**. 2. Select **Contract Pricing Entries** and click **Refresh**. Similarly, refresh **Contract Pricing Adjustment Tiers** and **Contract Pricing Volume Tiers**. When the buyer purchases products covered by the contract, the volume-based adjustments are applied on top of the contract price based on the quantity purchased. The final price reflects both the negotiated contract price and any applicable volume discounts. #### See Also - [Configure Advanced Pricing for Commerce Powered by Revenue Cloud](https://help.salesforce.com/s/articleView?id=commerce.comm_advanced_pricing_for_commerce_stores.htm&language=en_US&type=5) - [Offer Contract-Based Pricing to a B2B Buyer](https://help.salesforce.com/s/articleView?id=commerce.comm_offer_contract_pricing_to_buyer.htm&release=264.0.0&type=5 "Create a contract to define negotiated prices for a specific buyer account. Contracts override standard price book prices, ensuring buyers see their negotiated prices across store pages.") - [Considerations for Contract-Based Pricing](https://help.salesforce.com/s/articleView?id=commerce.comm_contract_pricing_considerations.htm&release=264.0.0&type=5 "Review these considerations before you offer contract-based pricing to B2B buyers.") # Configure Wave Picking for Fulfillment Orders in Salesforce POS To process up to 10 fulfillment orders in a single picking workflow, add the Picklist Management deep link to a layout in CMS. Wave picking supports pickup orders, shipping orders, and corporate transfers. 1. In CMS, go to **Layouts | Layout Templates**. 2. Create or edit a layout. 3. Add the **Picklist Management** deep link. 4. Save your changes. 5. To apply the changes in the POS app, close out the app and log back in. 6. Create a picklist on the app. 1. In the POS app, tap the **Picklist Management** deep link. 2. Select an order type and select up to 10 orders. 3. Review the product list and pick the required quantities for all selected orders. To update picked quantities, scan items (1) or tap **+** (2). 4. After picking is complete, print the records if needed. The system deletes picklists after 48 hours. ![Picklist Screen in POS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_order_fulfill_wave_picking.png) #### See Also - [_Salesforce Help:_ Manage Buy Online, Pickup In Store (BOPIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bopis.htm&release=264.0.0&type=5 "Configure and process Buy Online, Pickup In Store (BOPIS) orders in the POS app.") - [_Salesforce Help:_ Manage Buy Online, Fulfill In Store (BOFIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bofis.htm&release=264.0.0&type=5 "Process Buy Online, Fulfill In Store (BOFIS) orders in the POS app. Store associates pack, ship, and manage orders fulfilled from the store.") - [_Salesforce Help:_ Use Reserve Online, Pick Up In Store (ROPIS)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_ropis.htm&release=264.0.0&type=5 "Point of Sale's Reserve Online, Pick Up In Store (ROPIS) feature lets customers reserve items online for in-store trials before buying. After reserving online, the store gets an order, allocates the items, and prepares them for fulfillment, similar to Buy Online Pick Up In Store (BOPIS). Once the order is ready, the customer receives a notification to try the items in-store before purchase.") # Configure What Shoppers or Buyers See When a Store Isn’t Available When a CDN is enabled for your B2B Commerce store, the Service Not Available page is available in Experience Builder for you to customize with your own brand and message. Shoppers and buyers see the Service Not Available page when your store is unavailable. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) For more information about the Service Not Available page, see [Service Not Available Page](https://help.salesforce.com/articleView?id=experience.community_builder_sna_page.htm&type=5&language=en_US). #### See Also - [Use Experience Builder to Design a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_experience_builder.htm&release=264.0.0&type=5 "Use Experience Builder for advanced design tasks, such as configuring store components, pages, or navigation. With Experience Builder, you can make the Commerce Store template yours by dragging components onto your page and customizing properties. Use the Commerce Store template to create B2B stores. You can add images and styles to your stores to create a unique experience for your customers. You can also add markup to the head of every page.") # Configure Your B2B Commerce Org to Support Digital Products Add digital products to your store, such as downloadable cookbooks, e-books, music files, or software. To do this, you must configure the page layout for the Product object to include the Shipping Charge Not Applicable field. ### Required Editions
View supported editions.
[Which Salesforce Commerce Products Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) You have to be a Salesforce admin to complete these steps. 1. At the top of the page, click ![Settings](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png)and select **Setup**. 2. In the Quick Find box, enter and select **Profiles**. 3. Click **System Administrator**. 4. Click **View** next to Products in the Field-Level Security section. 5. Click **Edit**. 6. Select Read and Edit access checkboxes for the Shipping Charge Not Applicable field. 7. Click **Save**. 8. Click **Object Manager** and select **Product**. 9. Click **Page Layouts** and select **Commerce Product Layout**. 10. Drag the Shipping Charge Not Applicable field to the Product Detail section. 11. Save your changes. A checkbox for Shipping Charge Not Applicable is now available when you create a product. See [Add a Product to a B2B Commerce Store from the Workspace](https://help.salesforce.com/s/articleView?id=commerce.comm_products_create.htm&release=264.0.0&type=5 "Add a product to up to five categories. The product can include variations such as color and size. You can also add digital products, which can be excluded from shipping calculations.") #### See Also - [Add a Product to a Commerce Store from the Workspace](https://help.salesforce.com/s/articleView?id=commerce.comm_products_create.htm&language=en_US) # Configure Your Finance System Integrate Point of Sale CMS with your finance systems using the new payment gateway integration. You can now configure systems such as Synchrony and Nebraska Furniture Mart. Streamline your financial processes and gain better control over payment transactions. Accept payments seamlessly through your Point of Sale CMS. - Modern POS App Build: 8.4.1 or greater - Platform Support: iPhone & iPad - Offline Support: No ![A settings page displays finance system configuration.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_configure_prerequisites.png) ## Set Up your Finance System Configuration 1. In CMS, go to **Store Management** | **Integrations** | **Finance System Configuration**. 2. Edit a configuration or create one by clicking **Create**. 3. Complete the fields.
Field Required Description
General Settings
Finance System Yes

The type of finance system to be integrated.

Example: NFM - Nebraska Furniture Mart OR Synchrony

Environment Yes Determine if this configuration will be either Test or Live based on if this is for a test account or live account.
Store ID Yes Select a store to apply the settings to. Optionally, select DEFAULT to apply settings across all the stores.
Device ID No Enter the device ID to apply the settings to a particular device. Optionally, enter DEFAULT to apply settings across all the store devices.
Connectivity and Authentication
URL Base Yes The URL base of your selected finance system.
Merchant Key Yes Enter the API Key used by the Point of Sale cloud. This can be found by going to Account > Users.
Merchant Public Key No Enter the API authentication key that can be used across stores.
Custom Attributes No Enter additional attributes, if applicable, for the authentication settings.
4. Save your changes. ## Configure Receipts Finance information, obtained from the financing partner, can be included in e-receipts using [Email Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_email.htm&release=264.0.0&type=5 "Email tags in Point of Sale are placeholders for email and print templates that pull specific information from data that are then shown instead of the actual placeholder.")Email Tags. These tags are only applicable to the Transaction Print Receipt and Order Print Receipt.
Email TagDescription
{finance_account}Displays the last four digits of the finance account for each specific financing in the order. Enclose this tag within {finance_placeholder_start} / {finance_placeholder_end} tags.
{finance_amount}Displays the finance amount for each specific financing in the order. Enclose this tag within {finance_placeholder_start} / {finance_placeholder_end} tags.
{finance_placeholder_start}Marks the beginning of the finance terms and conditions. It includes a hardcoded page break between multiple financing tenders, if relevant for the order. Refer to Tag Structure in Email Tags for more information.
{finance_placeholder_end}Marks the end of the finance terms and conditions. It includes a hardcoded page break between multiple financing tenders, if relevant for the order. Refer to Tag Structure in Email Tags for more information.
{finance_promo_code}Displays the finance promotion code. Enclose this tag within {finance_placeholder_start} / {finance_placeholder_end} tags.
{finance_terms}Displays the finance terms of the transaction for each specific financing in the order. You can enclose this tag within {finance_placeholder_start} / {finance_placeholder_end} tags or use it as a standalone tag.
Example configuration ![A receipt configuration.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_configure_receipt_configuration.png) Example receipt ![An example receipt.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_configure_receipt.png) # Configuring & Printing Shipping Labels via Point of Sale SPI Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing. Point of Sale's SPI offers integration capabilities for shipping aggregators. This extensible solution allows merchants to select and integrate various shipping services, including options like ProShip. With this feature, merchants can configure to have prepopulated item weights and box dimensions or make selections during the app flow. Additionally, merchants can create multiple boxes as needed during the packing process. This feature is available for Buy Online, Fulfill In-Store (BOFIS), Store to Store (STS) Transfer, Return to Vendor (RTV) Transfer, and Corporate Transfer (CTS) order flows. ## Prerequisites - Modern POS App Build: - 9.7.1 and later for BOFIS flow - 9.8.1 and later for STS/RTV flows and label generating via deep link - 10.4.1 and later for CTS flows - Platform Support: iPhone & iPad - Offline Support: No ## Set up Point of Sale CMS for Configuring and Printing Shipping Labels Configure Point of Sale CMS to generate and print shipping labels. Select applicable flows and configure a deep link to generate shipping labels outside defined flows. ### Selecting Applicable Flows You can multiselect which flows to turn on this feature. 1. Go to **Store Management > Store Settings > Store Fulfillment**. 2. Expand **Shipment**. 3. Edit **Shipment Aggregation**. 4. Turn on applicable flows. ![A window showing Shipment Aggregator Settings in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_shipment_aggregation.png) ### Configuring Deep Link Configure a deep link to generate shipping labels outside defined flows. 1. In CMS, edit a layout or hamburger menu. 2. In the deep link picker, go to **Store Associate > Generate Shipping Label**. 3. Set and save your changes. ### Set Box Dimensions Add and configure a list of available shipping boxes on the POS app. 1. Go to **Advanced > Shipping Packages Configuration**. 2. Select **Create** in the upper right. 3. Under **General Settings**, enter the package details, which include the barcode ID and any relevant notes. 4. Under **Package Dimensions** provide the package's length, height, and width measurements. ![The Edit Package section on the Shipping Packages Configuration screen in Point of Sale CMS. Edit a package's dimensions, name, and barcode ID.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_box_settings.png) 5. After the configuration is saved, the list of shipping boxes on the main screen will be automatically sorted alphabetically in the CMS. The same sorting applies to the POS app, but only for app builds 10.8.1 or greater.![List of packages sorted and ready for shipping.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_package_list.png) ### SPI Integrations To receive the shipping options, shipping method, and shipping label, configure the SPIs. The diagram illustrates the Buy Online, Fulfill in Store (BOFIS) flow in relation to the Shipping Options and Shipping Labels SPIs. ![The BOFIS flow in relation to the shipping options and shipping label SPIs diagramed.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_spi_integration.png) This SPI is required for enabling shipping aggregators. 1. Go to **Integrations > Customer Connectors**. 2. Create a connector by selecting Create in the upper right. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**SHIPPING\_OPTIONS**". 5. Configure the rest of the fields by referring to [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html). 6. Save your changes.![The Custom Connection Configuration section in Point of Sale CMS that shows the Shipping Options endpoint.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_shipping_options_webhooks.png) #### Shipping Methods This SPI is required to enable cart flows. If "[Enable External Shipping Provider](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_shipping_methods_on_pos_app.htm&release=264.0.0&type=5 "Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls.")" is enabled, the SPI must be set up and integrated along with the Shipping Options and Shipping Labels SPIs. If the flag is disabled, only the Shipping Options and Shipping Labels SPIs are needed. In this case, Point of Sale will use the [shipping methods](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_shipping_methods_management.htm&release=264.0.0&type=5 "Create different types of shipping methods for orders and transitions in Point of Sale CMS.") configured in CMS during the checkout flow and external shipping methods during the shipment flow. This SPI is required for enabling shipping aggregators. 1. Go to **Integrations > Customer Connectors**. 2. Create a connector by selecting **Create** in the upper right. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**SHIPPING\_OPTIONS**". 5. Configure the rest of the fields by referring to [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html). 6. Save your changes.![The Custom Connection Configuration section in Point of Sale CMS that shows the Shipping Methods endpoint.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_connector_shipping_methods.png) ### Shipping Label This SPI is required for retrieving and printing shipping labels. 1. Go to **Integrations > Customer Connectors**. 2. Create a connector by clicking **Create** in the upper right. 3. Under **Connector Type**, select "**SPI**". 4. Under Endpoint Name, select "**SHIPPING\_LABEL**". 5. Configure the rest of the fields by referring to [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html). 6. Save your changes.![The Custom Connection Configuration section in Point of Sale CMS that shows the Shipping Methods endpoint.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_shipping_label_connector.png) ## Configure and Print Shipping Labels for BOFIS Orders Initiate the Buy Online, Fulfill In-Store (BOFIS) flow on the Point of Sale (POS) app, pack items into multiple boxes, and generate shipment labels with predefined box options to complete the fulfillment process. ### Packing Items Initiate the BOFIS flow on the POS app and select the New Orders deep link. ![The New Orders deep link in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bopis_deep_link.png) Locate the order and tap Pack to the right of it. You'll be directed to the order details screen, which lists the items to be packed. ![The Pack button next to the order in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bopis_pack.png) During the pack flow, you can pack multiple boxes by scanning or selecting items. Tap **Pack Box** and the selected items and quantities will be moved into a sequential box (for example Box 1, Box 2) and be shown at the bottom of the screen. To pack the next box, repeat the process by scanning or selecting the items and tap **Pack Box** again. Boxes can always be unpacked by tapping **Unpack this box**. ![Items listed as to be packed and already packed, y box, in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bopis_pack_unpack.png) After all items are packed in boxes, tap **Complete Packing**. If there are any products not selected during packing, you will have to select a **Reason Code** and then proceed with a refund or cancellation flow.![A window in the POS app where you can select a reason that you're unpacking the box.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bofis_unpack_reason.png) ### Generating Shipment Label To ship packed boxes, tap the **Store Fulfill Orders Ready to Ship** deep link.![The drrp link that allows you to start generating a label.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bofie_generate_label.png) Locate the order and tap **Ship** to the right of it. ![The Ship button next to the order in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bofis_ship.png) On the next screen, the number of boxes is shown on the list of ready-to-ship orders. Tap **Generate Label**. ![The POS app showing the option to generate a label or enter tracing for an order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_generate_label.png) The window shows. At the top is a dropdown with the option to select predefined boxes. The window also allows editing of weight and dimensions. ![Select and configure the shipping box information in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_boxes.png) Tap **Done** and the next screen allows you to select a shipping option. ![A window in the POS app where you select shipping options for an order and select Confirm.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_shipping_options.png) Select **Confirm** and you can print the shipment label. ### Completing Order After the shipment label has been generated and printed, complete the order by adding a tracking number. ![A window where you enter the tracking number of the order and select Done in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bofis_complete_order.png) Scanning or entering the tracking number marks that box as shipped. If multiple boxes are to ship, the order status changes to **Partially Shipped**. After all boxes are designated as shipped, the order status changes to **Shipped**. ### Order History Tap the **Store Fulfilled Order History** deep link to view a list of shipped orders. This list can be filtered by order number, customer phone number, or customer name. ![The Order History deep link in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_order_history_link.png) Access an order to view its packed boxes, and explore each box's contents. ![BOFIS order details showing in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bofis_order_details.png) ## Configure and Print Shipping Labels for Store-to-Store, Return to Vendor, and Corporate Transfers Scan and pack items for Store to Store (STS) Transfer, Return to Vendor (RTV) Transfer, and Corporate Transfer (CTS) in the Point of Sale (POS) app. View transfer details, add a tracking number, and print a packing slip. For STS, RTV, and CTS flows, after all items are scanned and packed, you can tap **Close Transfer** and you'll see the option to generate a shipping label. ![The Generate Shipping Label option in the Print Packing Slip window on the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_generate_label.png) After generating a label, the app updates the transfer's status to **Shipped**. The app displays a successful message along with a tracking number. Tap **OK** to view the list of transfers. ![The Order Shipped window with the order ID number and tracking number in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rts_view_transfers.png) On the transfer list, you can view the details of a shipped transfer along with the options to generate a label, add a tracking number, or print a packing slip. ![The Shipping Options window in the POS app, where you can generate a abel or add a tracking number.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_view_transfer_details.png) You can update the tracking number, and the transfer reflects this change, visible on both the transfer list screen and in the transfer details. ![The Add Tracking Number window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_add_tracking_number.png)![The Successfully Shipped window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_order_shipped.png) ## Generate a Label via a Deep Link in the POS App Create labels outside defined flows in the POS app. To generate a label outside defined flows, tap on the Generate Shipping Label deep link. You'll be directed to a screen where you can enter the destination's location. The origin location is prepopulated with the current store's address. ![The screen in the POS app where you can enter the location of the shipment's destination.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_generate_label_deep_link.png) After tapping **Generate Label**, you'll be directed to the same flow as [Generating Shipping Label](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_shipping_labels_spixml.htm&release=264.0.0&type=5 "Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing."). # Configuring and Customizing Cart Options in Point of Sale Add features that appear on the right side panel of the POS app, such as overrides, void cart, tax-exempt, and so on. ## Prerequisites - Modern POS App Build: 7.7.1 later - Platform Support: iPad, iPhone (iPhone support from 7.14.5 or greater) - Offline Support: 7.13.5 and later ## Set Up Point of Sale CMS for Custom Cart Options Add and configure features in Point of Sale CMS that will appear on the right side panel of the Point of Sale (POS) app. ### Creating & Assigning Cart Options Layout 1. In CMS, go to **Layouts > Layout Pages**. 2. Select **Add From Template > Cart Options**. 3. Configure the layout and save your changes. 4. Assign the layout to an app configuration by going to **Apps > {edit app config} > Modules > Cart > Cart Options Layout**. 5. Select the layout and save your changes.![The Create New Layout section of Point of Sale CMS, where you create a custom cart layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_custom_options_layout.png) ### Advanced Cart Options Layout Advanced Cart Options allows you to add more cart options on the POS app. 1. In CMS, go to **Layouts > Layout Pages**. 2. Select **Add From Template > Cart Options**. 3. Configure the layout and save your changes. 4. Assign the layout to an app configuration by going to **Apps > {edit app config} > Modules > Cart > Advanced Cart Options Layout**. 5. Select the layout and save your changes. 6. Configure the **Advanced** cell in the **Cart Options Layout** as an **Advanced Cart Options Layout**. **Deep Link Picker > More > Advanced Cart Options**.![The Advanced Cart Options setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_advanced_cart_options.png) ### Configure Cart Options Deep Links The table lists the deep links available to configure on the layout. | Deep Link | Definition | | --- | --- | | Add Product Not on File | Adds products not on file | | Custom Order | Displays the custom order screen | | Loyalty Lookup | Displays the Loyalty lookup screen | | Override Tax | Displays the override tax screen | | Product Lookup | Displays the product lookup screen | | Sales Attribution | Displays the sales attribution screen | | Set Cash Tender | Displays the cash tender configuration screen | | Set Check Tender | Displays the check tender configuration screen | | Set Credit Card Tender | Displays the credit card configuration screen | | Set Finance Tender | Displays the finance configuration screen | | Set Gift Card Tender | Displays the gift card configuration screen | | Set Miscellaneous Tender | Displays the miscellaneous configuration screen | | Set Reward Tender | Displays the reward configuration screen | | Set Store Credit Tender | Displays the tender type to store credit | | Set Transaction Discount | Displays the transaction discount configuration screen | | Set WeChat Pay Tender | Displays the WeChat pay tender configuration screen | | Start Loyalty Reward Payment | Applies to the Loyalty Reward payment | | Start In-Store Pay By Link | Send the in-store pay-by link | | Start Loyalty Reward Payment | Displays the interface for the Loyalty rewards screen | | Start Multi-Tender Flow | Starts the multitender flow | | Start Remote Pay By Link | Starts the remote pay by link | | Start Standalone Transaction | Starts the standalone transaction | | Tax Exempt | Displays the tax exemption screen | | Void Cart Before Tendering | Voids cart before tendering | | Employee Discount | Displays an interstitial that allows the user to add an employee discount | | Create Quote From Cart | Creates quotes directly from the cart | ### Configure Cart Session Timeout If items are in the cart and the POS app isn't used, they'll be removed from the Salesforce backend and can't be used by the user. Sessions can be configured in the CMS in App Config and Store Settings. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The app config session time always overrides the store settings session time if it's set to less than 3600 seconds. #### App Config 1. Go to **Apps > Store**. 2. Edit a selected app config. 3. Go to **Modules > Settings**. 4. Turn on **Enable Session Timeout**, and enter the timeout in seconds. #### Store Settings 1. Go to **Store Management > Store Settings > Transaction**. 2. **Under Cart Session Expiry Duration In Seconds (cartSessionExpiryDurationInSeconds)**, enter the time in seconds. If this setting isn't configured, the time defaults to an hour (3600 seconds). ### Other Cart Options There are additional settings available to customize the cart's behavior. Next are some examples: | Setting | Definition | | --- | --- | | Maximum Quantity Allowed Per Product (MaxProductCount) | Setting specifies the maximum quantity allowed for each unique product in the cart. For example, if set to 5, it limits each distinct product to a maximum of 5 units in the cart. | | Max Number of Items Allowed to Be Checked out in a Single Transaction (maxTotalQuantityAllowedInCart) | Setting determines the maximum total quantity of all products combined that can be in the cart for a single transaction. If set to 10, it limits the total number of all products in the cart to not exceed 10 units, no matter how many individual products are in the cart. | ## View Custom Cart Options in Point of Sale Access and configure customer information layouts for custom cart options in the POS app. ### Cart Options **Cart Options** can be seen on the right side of the **Cart** screen. ![The Cart screen in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_pos_cart_options.png) ### Advanced Cart Options **Advanced Cart Options** can be seen by tapping on the **Advanced** tile. ![The Advanced Cart Options window with a group of advanced option tiles in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_cart_options_advanced_cart_options.png) ### Void Cart If the **Void Cart Before Tendering** deep link is configured, store associates can cancel an order by tapping on the deep link. A [Reason Code](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.") is required to complete the action. ![THe POS app with the Void Cart option on the right side.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_void_cart.png) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Point of Sale's Void Cart Webhook can send real-time details if a cart is voided to an external system. [Learn More](https://support.predictspring.com/hc/en-us/articles/1500001610121-PredictSpring-API-SPI-Webhook-Specs) # Configuring Appeasements on the POS App Store associates can provide a partial refund to provide appeasement to the customer at the item or order-level (for any reason, for example such as a price match, delayed shipment, damaged item, poor customer experience, or overcharge). If appeasements are enabled and configured in Point of Sale CMS, associates can modify an order via Order History on the POS app and start the appeasement flow. - **[Configure Appeasements in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_appeasements_config.htm&release=264.0.0&type=5)** Use appeasements in the POS App to modify customer orders and receive price adjustments within a set time frame. Associates can efficiently process changes with approval policies and reason codes configured in the CMS, enhancing both customer satisfaction and operational efficiency. - **[Appeasement POS App Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_appeasements_pos_flow.htm&release=264.0.0&type=5)** Post-sale appeasements allow store associates to modify existing orders and apply discounts, ensuring customer satisfaction. Associates can search for orders and, if appeasement is enabled, apply item or order-level discounts within the defined policy. Price overrides are managed with authorization and reason codes, with the POS app reflecting the changes in the cart total and order history, and retain the original discount for cumulative adjustments. - **[POS App Appeasements Reporting and Known Issues](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_appeasements_reporting.htm&release=264.0.0&type=5)** Understand the different reporting aspects across the Point of Sale Electornic Journal, Transaction Logs, and Successful Orders for post-sale appeasements. # Configuring Azure AD Set up Azure Active Directory (AD) to work with Point of Sale CMS. Complete the following steps before configuring Point of Sale CMS. 1. Create and configure an Azure Active Directory Domain Services managed domain. 2. Set up the Point of Sale CMS app. 3. Enable ID Tokens for this app. 4. Obtain Tenant ID — The merchant tenant ID can be found on the Directory’s overview page. When logged into Azure, use the search bar and search for azure active. Select the search results for Azure Active Directory. Copy the Tenant ID value. 5. Obtain Client ID — The client ID can be found in the Directory’s App Registration section. Select the search results for Azure Active Directory. Find the Point of Sale CMS app. Copy the Application (Client) ID. 6. Configure Salesforce Redirect URIs for staging and Production environments. 7. Add Optional Claims in Token Configuration. 1. Select Token configuration and then select **Add optional claim**. 2. Select **ID** as the Token type and select the email option. You get a warning that the claim (email) requires OpenId Connect coupes to be configured through the API permission page. Select the checkbox to turn on the Microsoft Graph email permission (required for claims to appear in tokens). 3. Confirm your selections and select **Add**. # Configuring Locations for Order Shipping You can configure a fulfillment location to ship ordered products. For example, assign the location to a location group associated with a store. When a shopper places an order on that store, inventory reservations are created at the location group. Then, according to business rules, the reservations are routed to individual locations for fulfillment. When using B2B and D2C Commerce, create a site inventory list that represents the store, and then map it to the location group. # Configuring Locations for Order Shipping and Pickup You can configure a fulfillment location to ship order products or provide Buy Online, Pick Up In Store (BOPIS) service. ## Shipping Only In Salesforce, assign the location to a location group associated with a storefront. When a shopper places an order on that storefront, create inventory reservations at the location group. Then route the reservations to individual locations for fulfillment according to business rules. When using B2C Commerce, create a site inventory list that represents the storefront, and then map it to the location group. ## BOPIS Only When a shopper places a BOPIS order, reserve inventory at the location. When using B2C Commerce, create a site inventory list containing products available for BOPIS orders at that location, and then map it to the location. When a shopper places a BOPIS order, use that inventory list instead of the inventory list associated with a location group for shipping fulfillment. To restrict a location to only BOPIS orders, don’t add it to any location groups. ## Shipping and BOPIS In Salesforce, assign the location to a location group associated with a storefront. For order items to be shipped, reserve inventory at the location group. For BOPIS items, reserve inventory at the location. When using B2C Commerce, create a store inventory list containing BOPIS-eligible products for each location that can fulfill shipping and BOPIS orders. Map the location group to the inventory list that represents the storefront, and then map each location to the corresponding inventory list containing products available for BOPIS. # Configuring Merchants with Multiple Languages The Point of Sale platform lets you configure merchants based on MerchantID, Locale, and Region. A merchant on the Point of Sale platform is defined by three values: MerchantID, Locale, and Region. For example, a merchant can be based in the USA, Japan, and Canada. Merchant ID = a unique merchant ID defined for a merchant. Region = The country where customers ‌use the Point of Sale app. Locale = The language within the region. | MerchantID | Region | Locale | | --- | --- | --- | | BrandID | US | en\_US | | BrandID | JP | ja\_JP | | BrandID | CA | fr\_CA | ## Localization Components There are three parts to localization for the POS app - App Content This section refers to all the layouts and app configs for the merchant. The content created in one account can be copied over to other locales. This enables merchants to generate region-specific content in the local language. - System Buttons, Filters, Icon texts, Date Format This is bundled with the app binary that is deployed on the device. These are displayed to the user based on their device settings. - Product Catalog The product catalog is displayed based on the product feed that the merchant provides the CMS. For a locale of EN (English), you need product details in English and similarly, for FR (French) locale, you need a feed in the French language. This is important as we index different languages separately for effective search and tokenization. ## POS Settings Each locale has different settings based on local regulations, preferences, and hardware configurations. These settings will be defined on CMS under Store, Server, and Active App Config settings. The settings can be copied from one locale to another. ## Promotions Promotions have different call-out messages, terms, and conditions. # Configuring Notifications for Verifone Use Verifone Central Notifications in Point of Sale to receive transaction status updates and automate business processes, such as order management and report downloads. Only users with Merchant Admin, Merchant Cashier, or Merchant Supervisor roles can access this section. ## Events Events are the topics a notification is 'listening' to. The notifications will be triggered as soon as there's an event happening for one of the selected topics. Salesforce requires these events to be configured. | Event | Description | | --- | --- | | TxnAuthorisationApproved (Authorization approved) | An approved authorization or preauthorization | | TxnAuthorisationDeclined (Authorization declined) | A declined authorization or preauthorization | | TxnSaleApproved (Sales approved) | A single approved message sale (auth+capture) | | TxnSaleDeclined (Sales declined) | A single declined message sale (auth+capture) | To verify Salesforce receives Verifone callbacks for authorizations and sales, a callback URL is required. These URLs vary based on the merchant, region, and environment combination. 1. In CMS, go to **Integrations > Payment Gateways**. 2. Edit the **VERIFONEPSDK** payment gateway created for pay by link. 3. Under **Callback URL**, select **Generate**. It can take a few seconds to generate the URL. ![The Callback URL screen in the Payment Gateway section of Verifone Central.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_verifone_callback_url.png) 4. Copy the URL and configure it in the **Verifone Notifications** settings. ## Create Notifications in Verifone Central To use the information in the Notifications section in Verifone Central, follow these steps: 1. Log in to your Verifone Central account. 2. Go to **Administration > Notifications**. The **Notifications** page displays. 3. Select **Create new notification**. On the **Notifications** page, sort the notifications you've made by name, email, or URL. You can also use the **Event type** or **Status** filters. ![The Notifications page with the Create New Notification button highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_verifone_create_notification.png) 4. On the **Create Notification** page, provide the following information: 1. **Notification name**: Used to identify the notification configuration in the listing 2. **Organization(s)**: 3. By selecting an organization, you apply a scope to the configuration 4. By selecting a root-level organization, the notifications will send messages for all child organizations 5. By selecting the lowest-level organization, you will receive messages for the selected organization only. You can select to send the same notification to multiple organizations. 6. **Events**: Notifications will be sent as soon as an event happens for one of the transaction status updates you chose. For a list of events that Point of Sale needs, see Events. 7. Delivery Method: Specifies how notifications will be delivered. Select "URL Endpoint" and Verifone will send a webhook with the transaction payload. Only one webhook will be accepted. 8. URL Endpoint: Paste the callback URL you previously generated in [](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configuring_notifications_verifone.htm&release=264.0.0&type=5 "Use Verifone Central Notifications in Point of Sale to receive transaction status updates and automate business processes, such as order management and report downloads.")[Generate Callback URLs in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configuring_notifications_verifone.htm&release=264.0.0&type=5). 9. Webhook Type: Select "Full event payload" to send webhooks to Point of Sale with full content payload. ![The Create Notification screen in Verifone Central.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_create_verifone_notification.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important If a new webhook is added, it is loaded within 60 seconds. However, updates to existing webhooks can take 10 to 60 minutes depending on server load. ## Webhook Samples (Full Event Payload) Your webhook will receive a POST HTTP call with payloads: Authorization Approved: ``` { "eventType": "TxnAuthorisationApproved", "objectType": "TransactionEvent", "eventId": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "eventDateTime": "2023-03-02T13:16:44.654Z", "recordId": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "entityUid": "07652580-1037-4901-92f2-74676cb8aa7e", "source": "pdsp", "content": { "id": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "currency_code": "EUR", "country_code": "NL", "created_at": "2023-03-02T13:16:44.654Z", "customer": "18c4694c-b498-40fa-ab9d-fbe671c0afca", "customer_ip": "127.0.0.1", "dynamic_descriptor": "Test Transaction", "payment_product": "CARD", "payment_product_type": "VISA", "transaction_type": "SALE", "transaction_status": "FAILED", "shipping_information": { "address": "Singel 250", "city": "Amsterdam", "country": "NL", "phone": "31633344455", "postal_code": "1012 AB", "state": "Noord-Holland" }, "user_agent": "string", "cvv_present": false, "card_brand": "VISA", "masked_card_number": "430000******7107", "merchant_id": "290010026", "merchant_reference": "200001", "shopper_interaction": "ecommerce", "threed_authentication": { "eci_flag": "05", "enrolled": "Y", "cavv": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=", "pares_status": "Y", "ds_transaction_id": "020100004317fdc3ad2454438000000000000891", "threeds_version": "2.1.0" }, "amount": "3.0", "payment_summary": {} } } ``` Authorization Declined ``` { "eventType": "TxnAuthorisationDeclined", "objectType": "TransactionEvent", "eventId": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "eventDateTime": "2023-03-02T13:16:44.654Z", "recordId": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "entityUid": "07652580-1037-4901-92f2-74676cb8aa7e", "source": "pdsp", "content": { "id": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "currency_code": "EUR", "country_code": "NL", "created_at": "2023-03-02T13:16:44.654Z", "customer": "18c4694c-b498-40fa-ab9d-fbe671c0afca", "customer_ip": "127.0.0.1", "dynamic_descriptor": "Test Transaction", "payment_product": "CARD", "payment_product_type": "VISA", "transaction_type": "SALE", "transaction_status": "FAILED", "shipping_information": { "address": "Singel 250", "city": "Amsterdam", "country": "NL", "phone": "31633344455", "postal_code": "1012 AB", "state": "Noord-Holland" }, "user_agent": "string", "cvv_present": false, "card_brand": "VISA", "masked_card_number": "430000******7107", "merchant_id": "290010026", "merchant_reference": "200001", "shopper_interaction": "ecommerce", "threed_authentication": { "eci_flag": "05", "enrolled": "Y", "cavv": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=", "pares_status": "Y", "ds_transaction_id": "020100004317fdc3ad2454438000000000000891", "threeds_version": "2.1.0" }, "amount": "3.0", "payment_summary": {} } } ``` Sale Approved ``` { "eventType": "TxnSaleApproved", "objectType": "TransactionEvent", "eventId": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "eventDateTime": "2023-03-02T13:16:44.654Z", "recordId": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "entityUid": "07652580-1037-4901-92f2-74676cb8aa7e", "source": "pdsp", "content": { "id": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "currency_code": "EUR", "country_code": "NL", "created_at": "2023-03-02T13:16:44.654Z", "customer": "18c4694c-b498-40fa-ab9d-fbe671c0afca", "customer_ip": "127.0.0.1", "dynamic_descriptor": "Test Transaction", "payment_product": "CARD", "payment_product_type": "VISA", "transaction_type": "SALE", "transaction_status": "FAILED", "shipping_information": { "address": "Singel 250", "city": "Amsterdam", "country": "NL", "phone": "31633344455", "postal_code": "1012 AB", "state": "Noord-Holland" }, "user_agent": "string", "cvv_present": false, "card_brand": "VISA", "masked_card_number": "430000******7107", "merchant_id": "290010026", "merchant_reference": "200001", "shopper_interaction": "ecommerce", "threed_authentication": { "eci_flag": "05", "enrolled": "Y", "cavv": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=", "pares_status": "Y", "ds_transaction_id": "020100004317fdc3ad2454438000000000000891", "threeds_version": "2.1.0" }, "amount": "3.0", "payment_summary": {} } } ``` Sale Declined ``` { "eventType": "TxnSaleDeclined", "objectType": "TransactionEvent", "eventId": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "eventDateTime": "2023-03-02T13:16:44.654Z", "recordId": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "entityUid": "07652580-1037-4901-92f2-74676cb8aa7e", "source": "pdsp", "content": { "id": "5b5f42f6-db9f-4fd8-8396-1527ec621ab8", "currency_code": "EUR", "country_code": "NL", "created_at": "2023-03-02T13:16:44.654Z", "customer": "18c4694c-b498-40fa-ab9d-fbe671c0afca", "customer_ip": "127.0.0.1", "dynamic_descriptor": "Test Transaction", "payment_product": "CARD", "payment_product_type": "VISA", "transaction_type": "SALE", "transaction_status": "FAILED", "shipping_information": { "address": "Singel 250", "city": "Amsterdam", "country": "NL", "phone": "31633344455", "postal_code": "1012 AB", "state": "Noord-Holland" }, "user_agent": "string", "cvv_present": false, "card_brand": "VISA", "masked_card_number": "430000******7107", "merchant_id": "290010026", "merchant_reference": "200001", "shopper_interaction": "ecommerce", "threed_authentication": { "eci_flag": "05", "enrolled": "Y", "cavv": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=", "pares_status": "Y", "ds_transaction_id": "020100004317fdc3ad2454438000000000000891", "threeds_version": "2.1.0" }, "amount": "3.0", "payment_summary":{} } } ``` ## Update Notifications in Verifone Central Any notification can be edited. These updates can be applied to a notification: - Update the notification name - Add/remove organisation(s) - Add/remove events - Change the delivery method - Enable / disable / delete the notification ![The notification settings for the Test notification in Verifone Central](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_verifone_notifications_update_test.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important A notification can be deleted only after being turned off. ## Notification Failures Notification failures can only happen for webhook events if the system doesn't tell the merchant (for example, the URL endpoint can't be reached or service is down/time out). The failed notifications can be viewed in **Administration > Notifications**. Select the notification and go to the **Notification Failures** section from Verifone Central. # Configuring Price Checker in Point of Sale Create an app that customers use to scan a product’s bar code to get the current price. Change the layouts, visibility settings, and other important settings. ## Creating a Dedicated App Configuration 1. In CMS, go to **Apps > All**. 2. Create an app configuration by selecting the **+** symbol. 3. Select **Modern POS** and configure the necessary fields for the app configuration. For detailed instructions, refer to [Creating an App Config](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_app_cms.htm&release=264.0.0&type=5 "Customize Point of Sale app configurations for different user groups to enhance personalization and control. Toggling settings in CMS allows you to disable defaults and enable layout groups, ensuring a tailored experience. iOS users can select from a variety of native, license-free fonts by typing the name directly. Set and edit segmentation preferences to refine the user experience at associate and manager levels."). 4. Select **Create**. ![The Store App Configuration in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_price_checker_app_config.png) ## Creating Role and Approval Policies Create a dedicated role and assign approval policies. 1. To create a dedicated role, in CMS, go to **Store Management > Associates > Associate Roles**. 2. Select **Create** in the top right corner and configure the necessary fields. For detailed instructions, refer to [CMS Store Associate Custom Roles](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_roles.htm&release=264.0.0&type=5 "Create custom roles for store associates in Point of Sale CMS so that you can establish approval policies."). 3. To assign approval policies, in CMS, go to **Store Management > Associates > Approval Policies Configuration**. 4. Select **Create** in the top right corner and configure the necessary fields. For detailed instructions, refer to [CMS Store Associate Approval Policies](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_approval_policies.htm&release=264.0.0&type=5 "Control which features and roles in Point of Sale CMS require approval."). ## Creating Dedicated Login and Device Settings Establish a dedicated login for associates. 1. In CMS, go to **Store Management > Associates > Associates**. 2. Select **Add** in the top right corner and configure the necessary fields. For detailed instructions, refer to [Store Associates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associates.htm&release=264.0.0&type=5 "Store associate users can be fed into the Point of Sale platform through a feed file or they can be created and managed manually in the CMS."). ## Customizing Layouts Customize the appearance of the app configuration by configuring layouts. 1. In CMS, go to **Layouts > Layout Pages**. 2. Select **Add From Template**. 3. Select a template and edit it to match your requirements. ## Disabling Clienteling Search & Store Locator Picker Prevent customer access to Personally Identifiable Information (PII) and store locator picker. 1. In CMS, go to **Apps > All**. 2. Edit the customer-facing app config. 3. Go to **Modules > Clienteling**. 4. Turn off **Show Clienteling Icon**. 5. Go to **Modules > Store Locator**. 6. Turn off **Store Locator**. 7. Save your changes. ## Disabling Location Picker 1. In CMS, go to **Apps > All**. 2. Edit the customer-facing app config. 3. Go to **Modules > Clienteling**. 4. Turn off **Show Clienteling Icon**. 5. Save your changes. ## Configuring Timeouts Set timeouts on both the device and app configuration to make sure that customers remain logged in during their sessions. ### Store Settings With the Store Settings, the timeout is applied globally to all the registers. 1. In CMS, go to **Store Management > Store Settings > Transaction**. 2. Under **Cart Session Expiry Duration in Seconds**, enter the timeout in seconds. 3. Save your changes. ### App Config With the App Config, the timeout is applied to a specific app configuration and overrides the Store Settings. 1. In CMS, go to **Apps > All**. 2. Edit the app configuration you want to configure the timeout. 3. Go to **Modules > Settings**. 4. Under **Enable Session Time**, turn on this flag. 5. Under **Session Timeout in Seconds**, enter the timeout in seconds. The minimum is 120 seconds. 6. Save your changes. ### Store Associate Session You can configure the amount of time a store associate can be logged into the app before being automatically logged out. If this isn't configured, the timeout defaults to eight hours. 1. In CMS, go to **Store Management > Store Settings > Associate**. 2. Under **Length of associate session in seconds on login**, enter the timeout in seconds. 3. Save your changes. ### Customer Profile Login Session You can also configure the amount of time a customer profile can be logged. This only logs out the customer as the store associate remains logged in and items remain in the cart. 1. In CMS, go to **Store Management > Store Settings > Checkout**. 2. Expand **Advanced**. 3. Under **Customer Login Session Length**, enter the timeout in minutes. 4. Save your changes. ### iPad Configure the amount of time that elapses before the iPad turns off the display and swipe the screen to resume. 1. On the iPad, go to **Settings > Display & Brightness**. 2. Tap **Auto-Lock**. 3. Select the timeout. ![The Auto-lock settings on an iPad.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_price_check_timeout_ipad.png) # Configuring Product Display Labels in Point of Sale Select which product identifiers can be shown throughout the Point of Sale (POS) app to help confirm the items in an order for a faster and more efficient checkout process. Product identifiers on the app (for example UPC, Color, Size) can help confirm the items in an order for a faster and more efficient checkout process. However, these product identifiers can be unique to each merchant based on importance ‌or preference. With Point of Sale's Product Cell Attributes feature, merchants can select which product identifiers can be shown throughout the app, such as cart, order history, returns, corporate transfers, purchase orders, clienteling, and wishlist screens. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For app builds 9.0.1 and greater, this was expanded to the inventory and BOPIS or BOFIS screens. This feature provides the ability for them to select ‌fields that are important to their POS experience. ## Prerequisites - Modern POS App Build: 8.8.1 and later - Platform Support: iPad and iPhone - Offline Support: Yes Omnichannel needs to be enabled to show the product cell-configured UI on the cart screen. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_v2_overview.htm&release=264.0.0&type=5 "Integrate shopping experiences across channels with Point of Sale's Omnichannel."). ## Set Up Point of Sale CMS for Product Display Labels Manage cell attributes for product identifiers in Point of Sale CMS. ### Configuring Product Cell Attributes 1. In CMS, go to **Store Management > Store Settings > Product > Product**. 2. Select the pencil icon to the right to configure the product cell configuration. 3. By default, the Point of Sale fields GTIN, color, and size properties are configured. To learn more about the available fields, see [Understanding Point of Sale fields](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_product_display_labels.htm&release=264.0.0&type=5). 4. You can configure more fields by clicking **Add**. 5. Each property can have a customized In-app Field Label. Here, you can control what is to be shown on the app for the specific property. 6. The property can also have a default under Default Value. For example, if a color doesn't exist for a product it shows the default value (for example "**No Color**") in the app. 7. This setting can also be configured for different languages if a merchant supports multilanguage settings. To change the language, select the language dropdown on the top left. 8. Select **Set** and **Save** to save the configuration. ### Understanding Point of Sale fields Point of Sale fields are dynamically populated based on the mappings defined in your Product [Field Mappings](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5 "The raw columns or attributes inside the feed file are transformed and mapped onto fields that the Point of Sale backend understands.") "Target Field". For app builds 9.9.1 or greater, Point of Sale introduced three additional, optional fields that show on the Order History screen and if modifying an order in the POS app. - **actualAvailableDate**: This field displays the date of a product’s availability. This data is retrieved from NetSuite Connector's attributes during the order editing process. It doesn’t appear in the product cell if there's no available date. - **quantityBackordered**: This field displays the number of units that are backordered for this product. "Backordered" refers to orders that have been accepted and processed, but can't be immediately fulfilled because the items are out of stock. The value of this field is retrieved from the NetSuite Connector during order editing. If not available, it doesn’t show. - **quantityCommitted**: This field displays the number of units that are committed for this product. The value is retrieved from the NetSuite Connector during order editing. If a product is "committed," it means that it's been allocated to fulfill specific orders but hasn't yet been shipped out to the customer. The commitment of a product reduces the available stock for sale because those items are now reserved for pending orders. If not available, it doesn’t show. ![The product display fields in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_product_label_fields.png) ## View Product Display labels in the POS App Access and configure product display labels in the Point of Sale (POS) app. The POS app shows the product cell UI with the configured fields on the cart screens. For app builds 8.8.1, this feature shows on the **Order History**, **Order Return**, **Quotes, Clienteling**, **Wishlist**, and **Purchase Order** screens. For app builds 9.0.1 and greater, it also shows on the Inventory and BOPIS and BOFIS screens. ### Product Cell with GTIN, Color, and Size Fields ![GTIN, Color, and Size fields showing in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_product_cell_gtin-color_size.png) ### Product Cell with No UPC, Color, or Size Value The app shows the default values configured for each field. ![The POS app showing the default values configured for each field.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_product_fields_no_upc_color_size.png) ### Product Cell with Multilanguage Labels ![Product displays in the POS app with multilanguage labels.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_product_display_labels_multilang.png) ## View Deprecated Settings and Troubleshooting Steps See how to solve common product display label issues in Point of Sale and get a list of deprecated settings, deep links, and known issues. ### Troubleshooting 8.8.1 and later builds aren't showing the UPC, Color, and size values of product cell UI on any screen. 1. In CMS, go to **Store Management > Store Settings > UI > Product**. 2. Select ‌the pencil icon to the right to configure the product cell configuration. 3. Select **Set** and select **Save** on the top right. 4. Close and reopen the app. ### Deprecated Settings and Deep Links This is a list of deprecated mobile configuration settings that won't be used if rendering the Cart Product Cell with the new configuration. - **Modules > POS > Show UPC/GTIN Number** - **UI > UI Options > Show selected size variant of product** - **UI > UI Options > Show selected color variant of product** - **Modules > Cart > Show Brand in Cart** (only if the brand is configured as an additional field) ### Known Issues & Restrictions All configured field values are read as a string from the product JSON in the app. If a value for a particular field isn't a string and is still configured, the app won't show the value of that field. # Configuring Shipping Labels for the Store Fulfillment App To let store associates view and print shipping labels for a packed order, configure the logic for the app. If the logic isn’t configured, the labels don’t show, and store associates see an empty page. The Store Fulfillment app contains placeholder logic to facilitate creating shipping labels. ### Required Editions
View supported editions.
The pack fulfillment order flow calls the logic. The flow has a packOrderScreen Lightning web component with a button that directs you to the printShippingLabels Visualforce page. We recommend that you create a flow to generate shipping labels and then integrate this flow into the Visualforce page. The Visualforce page receives the fulfillment order ID as a recordID parameter. If you’re using third-party APIs, either create an Apex class to call the APIs or call the classes directly in the Visualforce page. To call the classes in the Visualforce page, add a controller or call inside the flow as an Apex action. After the data is received, it’s rendered directly in the Visualforce page. After you’ve configured the shipping label Visualforce page, add it to the appropriate profiles, such as the PrintPickTicket profile. #### See Also - [Store Fulfillment App Setup](https://help.salesforce.com/s/articleView?id=commerce.om_store_fulfillment_application.htm&release=264.0.0&type=5 "The Store Fulfillment app provides guided workflows that walk store associates through the process of picking and packing each order. Store associates can indicate how much of each item they can fulfill and how much they can pack. They can also track the items that they can’t fulfill and the reasons for rejection. Access to the site is controlled using the Identity User license. After the Identity User license is configured, create accounts for your store associates and assign the license to them.") # Configuring Store Group Pricing Define groups of stores in Point of Sale CMS that share product prices. Store Groups allow merchants to define groups of stores that will share prices for products. It requires a dedicated pricing feed to be sent to store groups. Store-level pricing (set through Store Inventory) will supersede these prices and any prices not set at the store or store group level will default to the sale or list price. ## Prerequisites - Modern POS App Build: 9.10.1 or greater - Platform Support: iPhone & iPad - Offline Support: Yes, with [Offline Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_offline_feed_file_extracts.htm&release=264.0.0&type=5 "Offline feed files help the Point of Sale (POS) app function properly, where at least one online session is needed to download the required files.") - **[Store Groups - CMS Configuration and Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_store_groups_cms_configuration_and_setup.htm&release=264.0.0&type=5)** Configure Store Groups and pricing in Point of Sale CMS. - **[Hierarchy of Store Pricing](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_hierarchy_of_store_pricing.htm&release=264.0.0&type=5)** Determine how prices are calculated based on store, store group, sales price, and list price in Point of Sale CMS. - **[View Store Pricing in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_view_store_pricing_in_retail_cloud.htm&release=264.0.0&type=5)** See a store's price and related prices, such as list and sales prices, in the Point of Sale CMS. # Connect a B2B Store to Your Domain Redirect shoppers to your Commerce store when they enter your domain URL. When you connect your store to a domain, your store has access to the Salesforce content delivery network (CDN), with Cloudflare as the CDN partner. If you don’t yet have a domain, you can choose one from the sample registrars or any other trusted registrar. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. From your store, go to **Settings** | **Domains**. 2. If you don’t own a domain, you can set up one now by using one of the suggested registrars or any other trusted registrar. Under Don’t Own a Domain Yet, click **Get Started**. After you register your domain, you can verify it. 3. Under Connect Your Store to a Custom Domain, click **Get Started**. 4. Enter the domain URL, and click **Verify Domain**. The system analyzes the domain status and guides you to link your domain to your store. 5. Link your domain to your store. 1. From the store Settings, copy the host name and record values for your domain and TLS Certificate. 2. Sign in to your domain registrar, and locate your DNS records. 3. Paste the values that you copied from your store into the DNS records. 4. Return to your store’s domain settings, and select **I've updated my DNS records** 5. Click **Next**. 6. (Optional) Under Create a Custom Path for Your Domain, enter a unique path. You can also create a custom path later from the Setup page. To reuse the same domain for multiple stores, you can set up a unique path for the domain, such as “shoes.” 7. Click **Connect**. It can take up to 2-24 hours for your store to be connected to your domain. You’re notified after the connection is complete. After your store and domain are connected, when you enter your custom domain in a browser, you’re redirected to your store. #### See Also - [Configure a Custom Domain and CDN](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_cdn_and_custom_domains.htm&release=264.0.0&type=5 "For B2B stores created with the LWR template, if you prefer a branded URL or a URL without my.site.com, connect your store to a domain. Connecting the store to a domain automatically enables the Salesforce content delivery network (CDN) partner. You can use a single custom domain for multiple Commerce stores. A Salesforce admin typically configures the custom domain.") - [Use a Custom URL for Your Store](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_url.htm&release=264.0.0&type=5 "The default URL for a Commerce store includes a temporary path you specified when creating the store. The default URL is suitable for testing pre-production stores during development. However, before you launch a B2B store created with an LWR template into live production, we recommend that you configure a custom URL for the store. Associate the custom URL with a custom domain served by the Salesforce CDN, with Cloudflare as the CDN partner. For B2B stores created with an Aura template, a custom URL is optional. However, we recommend using a custom domain and corresponding CDN if broad access and high security are required.") - [Connecting a B2B Store to a Third-Party Domain](https://help.salesforce.com/s/articleView?id=commerce.comm_explain_storedomainconnection.htm&release=264.0.0&type=5 "If you’re using a third-party provider to manage your domain, you can connect your Salesforce store to the domain. When shoppers enter the domain URL, they are redirected to your store. By connecting your store, you can still use the third-party provider to manage and renew your domain. When you connect your store and domain, Salesforce sets up a content delivery network with Cloudflare.") # Connect a Parent Product to Its Variations on Your B2B Store’s Search Result Page To make it easier for buyers to find product variations, include a link under the parent product on the Product List page. The link takes buyers directly to the variations associated with the parent product. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, open Search or the Category Details page, and click the **Results** component. Each storefront instance of the Results component is independent from other component instances. So you must set up properties on each storefront instance. 4. In the component property editor, under Results Display, click **Add Field**, and click the new field. 5. In the Edit Field panel, for Field, select **Variation Attributes**. 6. Select **Show link to more options** so buyers can click the link to navigate from a parent product to its child variations. 7. Enter the other Edit Field properties, and save your changes. ![Variation grouping properties in the Results Layout property editor](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/results_layout_variation_grouping.png) 8. Select **Show Call To Action Button**, and enter the button text. Buyers can click the button, but clicking anywhere in the card takes them to a view of the parent product’s variations. 9. In Experience Builder, click **Publish** to add the changes to your store. #### See Also - [Configure How to Display Product Variation Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_setup_search.htm&release=264.0.0&type=5 "Tailor how search results appear on your B2B store Product List page. You can opt to show only the parent product, only the best matching product, or all the variations of the parent product.") # Connect B2C Commerce and Order Management Set up a connection between B2C Commerce and the Salesforce org where Order Management is configured. This connection enables Order Management to receive orders from B2C Commerce and get product and pricing data for creating and updating orders. If you’ve changed your Business Manager certificate, open a Salesforce Support case to update the B2C Commerce URL before connecting Order Management and B2C Commerce. You can use a custom URL for B2C Commerce only in a production instance. 1. Log in to Salesforce as a System Administrator. 2. From Setup, in the Quick Find Box find and select **B2C Commerce Connections**. If the link doesn’t appear, try logging out and back in again. 3. On another tab, 4. Click **New Connection**. 5. In the Connection Request section, enter the connection name and the B2C instance ID. Find the B2C instance ID in Business Manager. Go to **Administration** | **Global Preferences** | **Salesforce Order Management Integration Administration** and copy the tenant ID. 6. Click **Save**. 7. In the Allow Tenant Linkage window, click **Allow**. 8. Move the Available Connection Type that you want to use to Selected Connection Type.
Get orders from B2C CommerceSelect Order Integration
Get product and pricing data for creating and updating ordersSelect Cart and Checkout Data (Requires a Growth license)
Connect your instance to coreselect Order Self-Service
9. Click **Save** and confirm the connection request. 10. Wait to receive an email at your System Administrator email address indicating that the provisioning is complete. 11. In the Tenant Connections section, find your connection. If the connection was provisioned successfully, it appears with Status Provisioned. If the provisioning failed, it appears with Status Failed and more information in the Failed Reason column. If you can’t solve the issue, open a case with Salesforce Support. Include your B2C Commerce instance ID, Salesforce org ID, the information in the Failed Reason column, and whether the connection is new or you clicked its **Retry** link. 12. In a separate tab, log in to B2C Commerce Business Manager. 13. In B2C Commerce Business Manager, go to **Administration** | **Global Preferences** | **Salesforce Order Management Integration Configuration**. 14. Select **Active**. 15. Click **Save**, and in the confirmation window, click **OK**. To connect multiple instances of B2C Commerce to your Salesforce org, repeat these steps for each B2C Commerce instance. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Connect B2C Commerce and Salesforce To get product and pricing data from B2C Commerce, set up a connection between B2C Commerce and your Salesforce org. ### Required Editions
View supported editions.
Previous step: [Add Country and State Picklists](https://help.salesforce.com/s/articleView?id=commerce.om_add_country_state_picklists_oobo.htm&release=264.0.0&type=5 "To let customer service representatives (CSR) select state and country codes for an address from a dropdown menu, enable state and country picklists. If you don’t enable picklists, the CSR must enter the state and country code into the address, which can introduce errors.") See all steps in [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.") or [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns."). If you’ve changed your Business Manager certificate, open a Salesforce Support case to update the B2C Commerce URL before provisioning the connection to B2C Commerce. Custom URLs for B2C Commerce are supported only in production instances. This video shows the steps for Order on Behalf Of. The steps are the same for Exchanges with RMA. 1. Log in to the B2C Commerce Business Manager. 2. Go to **Administration** | **Global Preferences** | **Salesforce Order Management Configuration** and copy the Tenant ID. 3. In a separate window, log in to Salesforce as the System Administrator. 4. From Setup, in the Quick Find Box, search for and select **B2C Commerce Connections**. If the link doesn’t appear, try logging out and back in again. 5. Click **New Connection**. 6. In the Connection Request section, enter the connection name and the B2C instance ID. The instance ID is the tenant ID shown in Business Manager. 7. Click **Save**. 8. In the Allow Tenant Linkage window, click **Allow**. 9. From Available Connection Type, move Cart and Checkout Data to Selected Connection Type. 10. Click **Save**. Wait to receive an email at your System Administrator email address indicating that the provisioning is complete. 11. After you receive the email confirmation, refresh the B2C Commerce Connections page. 12. In the Tenant Connections section, find your connection. If the connection was provisioned successfully, the status is Provisioned. If the provisioning failed, the status is Failed and information is in the Failed Reason column. If you can't solve the issue, open a case with Salesforce Support, and provide this information. – The details listed in the Failed Reason column  – Whether the connection is new or you clicked its Retry link  – Your B2C Commerce instance ID – Your Salesforce org ID 13. Activate the integration. 1. Log in to the B2C Commerce Business Manager. 2. Go to **Administration** | **Global Preferences** | **Salesforce Order Management Configuration**. 3. Select **Activate Connection**. 4. Click **Save** and confirm. Repeat these steps for each B2C Commerce instance. If you’re setting up Order on Behalf Of, the next step is [Add a Web Store Inventory Source for Order on Behalf Of](https://help.salesforce.com/s/articleView?id=commerce.om_webstore_inventory_source_oobo.htm&release=264.0.0&type=5 "To use reservations when placing an order on behalf of a shopper, add a web store inventory source. Reservations help reduce out-of-stock errors by holding a product as soon as it’s placed in a cart."). If you’re setting up Exchanges with RMA, the next step is [Add a Web Store Inventory Source for Exchanges with RMA (B2C Only)](https://help.salesforce.com/s/articleView?id=commerce.om_webstore_inventory_source_exchanges_rma.htm&release=264.0.0&type=5 "To use reservations when adding a new item to an exchange order, add a web store inventory source. Reservations help reduce out-of-stock errors by holding a product as soon as it’s placed in a cart."). #### See Also - [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.") - [Video: Order on Behalf Of Setup](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2) - [Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5 "After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns.") - [Exchanges with RMA Returns Overview](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_overview.htm&release=264.0.0&type=5 "An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer.") # Connect More Effectively to Sandboxes Now when you log in to sandboxes using OAuth, you don’t experience Connection Reset errors. With these errors eliminated, you can more reliably authenticate, improving your user experience. **Where:** This change applies to B2C Commerce. # Connect the Delivery Estimation Service to B2C Commerce Create a B2C Commerce connection with Order Management so that the B2C instance can communicate with the Commerce Delivery Service. ### Required Editions
View supported editions.
Before beginning this task, make sure the [Order Fulfillment Setup section](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5 "The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS).") is enabled. 1. From Setup, in the Quick Find box, enter B2C Commerce Connections, and then select **B2C Commerce Connections**. 2. In the Tenant Connections section, click **New Connection**. 1. Enter a descriptive name for the connection. 2. Enter your B2C Commerce realm instance ID. To get your instance ID, log in to B2C Commerce Business Manager and go to **Administration** | **Global Preferences** | **Salesforce Order Management Configuration.** The Tenant ID is the instance ID. 3. Click **Save**. 3. Move Commerce Delivery Service to the Selected Connection Type list, and click **Save**. Next step: [Configure Delivery Estimation for a B2C Store](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_config_for_b2c_store.htm&release=264.0.0&type=5 "Connect the Commerce Delivery Service to your B2C store and implement the delivery estimation service for checkout. Use this section as a guideline only. Your configuration may differ.") (B2C Commerce only) #### See Also - [Delivery Estimations for Order Management Overview](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_overview.htm&release=264.0.0&type=5 "Provide customers with accurate delivery times by showing delivery dates on your store’s product detail and checkout pages.") # Connect to Finance Systems Integrate Point of Sale with finance systems to streamline financial operations and gain a unified view of your business. Connecting Point of Sale with your finance systems helps you manage payments from various sources, such as HiPay, Adyen, PayPal, and Square. By configuring your finance system for integration, you ensure accurate financial reporting and reconciliation. - **[Configure Your Finance System](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_configure.htm&release=264.0.0&type=5)** Integrate Point of Sale CMS with your finance systems using the new payment gateway integration. You can now configure systems such as Synchrony and Nebraska Furniture Mart. Streamline your financial processes and gain better control over payment transactions. Accept payments seamlessly through your Point of Sale CMS. - **[Set Up HiPay Hosted Page Payments](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_hipay.htm&release=264.0.0&type=5)** HiPay allows Point of Sale to generate a hosted page or payment link where customers can pay securely. Learn how to implement this in CMS implementation and get details of the user flow in the POS app. By enabling HiPay, you provide a secure and trusted payment experience for your customers. - **[Set Up Processing of Synchrony Credit Card Purchases using Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony.htm&release=264.0.0&type=5)** The POS app, in combination with an Adyen terminal, supports the recognition of Synchrony cards and enables financing transactions. During checkout, when a customer chooses to pay with their Synchrony PLCC and the card is presented, the store associate can process the payment. If the order total meets a set threshold, the store associate can offer financing, which requires the customer to sign an electronic disclosure and financing contract. The threshold, electronic disclosure, and financing contract terms are customizable in the CMS. - **[Set Up OAuth Payment Token for PayPal Here Devices and Square](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_paypal.htm&release=264.0.0&type=5)** Discover the process of setting up an OAuth token for a Paypal Here device and Square for use in Point of Sale. For these card readers to work, after merchants have provided initial keys, the user needs to login to CMS and invoke the Paypal and Square buttons to generate a secure token that will be used for checkout. - **[Maintain PCI Compliance with Synchrony](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony_pci_compliance.htm&release=264.0.0&type=5)** Add a form to your Point of Sale app for customers that opt to use Synchrony as a payment method. After a store associate submits the form, the app retrieves a secure, PCI-compliant token that substitutes for a credit card number. The token enables the checkout to remain compliant without collecting the customer's full card information. - **[Create a Finance Form Layout for Synchrony](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony_finance_form.htm&release=264.0.0&type=5)** To maintain Payment Card Industry (PCI) compliance with Synchrony, add a finance tender form to your Point of Sale CMS. - **[Add a Finance Tender Layout to a Point of Sale App](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_tender_layout.htm&release=264.0.0&type=5)** Assign a finance tender layout to an app configuration in Point of Sale CMS. # Connecting a B2B Store to a Third-Party Domain If you’re using a third-party provider to manage your domain, you can connect your Salesforce store to the domain. When shoppers enter the domain URL, they are redirected to your store. By connecting your store, you can still use the third-party provider to manage and renew your domain. When you connect your store and domain, Salesforce sets up a content delivery network with Cloudflare. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) To connect your domain, in your store, go to **Settings** | **Domains** and enter your domain address. You’re then guided through the connection process. You also need to provide the DNS records to your domain registrar. After you update the DNS records, it can take between 2-24 hours for your store to connect with your domain. If you don’t yet own a domain, you can purchase one from the list of example registrars provided on the Domains page. After your domain is connected, you can manage it on the **Setup** | **Domains** page. ![Store domain connection workflow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_storedomainconnect.png) #### See Also - [Configure a Custom Domain and CDN](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_cdn_and_custom_domains.htm&release=264.0.0&type=5 "For B2B stores created with the LWR template, if you prefer a branded URL or a URL without my.site.com, connect your store to a domain. Connecting the store to a domain automatically enables the Salesforce content delivery network (CDN) partner. You can use a single custom domain for multiple Commerce stores. A Salesforce admin typically configures the custom domain.") - [Connect a B2B Store to Your Domain](https://help.salesforce.com/s/articleView?id=commerce.comm_storedomainconnect.htm&release=264.0.0&type=5 "Redirect shoppers to your Commerce store when they enter your domain URL. When you connect your store to a domain, your store has access to the Salesforce content delivery network (CDN), with Cloudflare as the CDN partner. If you don’t yet have a domain, you can choose one from the sample registrars or any other trusted registrar.") # Connecting Omnichannel Inventory to Multiple B2C Commerce Instances You can connect storefronts from multiple B2C Commerce instances or realms to a single Omnichannel Inventory instance so that all inventory is powered from a single source. All orders from the various instances are sent to a single order management for processing. The Omnichannel Inventory integration is enabled for the entire B2C Commerce instance. After Omnichannel Inventory is activated, all sites within that instance switch to Omnichannel Inventory. You can’t enable Omnichannel Inventory for an individual site in the B2C Commerce instance. All quota limits are applied at the Omnichannel Inventory instance level. When you’re connecting multiple B2C Commerce instances to a single Omnichannel Inventory instance, consider whether the Omnichannel Inventory limits will support your needs as they expand across multiple B2C Commerce instances and realms. You can also connect production and stage instances to a single Omnichannel Inventory instance to work in a stage environment with real production data without needing to replicate the data. However, don’t make changes to the data. ![Omnichannel Inventory provisioning and connection to B2C Commerce examples](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/inv_omnichannel_inventory/images/connect_oci_to_multipleb2c_instances.png) To connect one or more B2C Commerce instances to one Omnichannel Inventory instance, use the B2C Commerce Connections page in Salesforce (see [Set Up the Connection Between Omnichannel Inventory and B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_set_up_trust.htm&release=264.0.0&type=5 "This process includes steps in Salesforce and B2C Commerce instance Business Manager.")). ## Considerations - When initially adding the Omnichannel Inventory license to Salesforce, determine if you want to use an existing or new org. - If you’re using an existing org, consider who requires licenses, access, and visibility to Omnichannel Inventory. - If you’re creating an org, this data will be separate from other orgs, so consider how data sharing and segmenting will be impacted. - Determine how many sandbox copies to create as part of your development and implementation setup. - To clone a sandbox, see [Create, Clone, or Refresh a Sandbox](https://help.salesforce.com/s/articleView?id=platform.data_sandbox_create_parent.htm&type=5&language=en_US). - To apply an Omnichannel Inventory license to a sandbox, see [Match production and sandbox licenses without a sandbox refresh](https://help.salesforce.com/s/articleView?id=000335272&type=1&language=en_US). # Considerations for Address Autocomplete for B2B Stores Customers checking out or entering contact information on the My Account page in a B2B store, a D2C store, or a Pay Now site can enter text in address fields and select possible matches from a picklist. When a customer selects a match from the picklist, their address fields are populated automatically. Get familiar with these considerations for using address autocomplete. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - To populate address details, B2B stores use the same [Google Maps Geocoding API](https://developers.google.com/maps/documentation/geocoding/overview) that the Salesforce Maps and Location Service uses. If the Geocoding API can’t map or parse an address component, autocomplete can’t populate the address field. - Google Maps Geocoding API doesn’t filter results based on the selected country or your store’s supported ship-to countries. See [Configure Language, Ship-To Countries, and Currencies for a D2C Store](https://help.salesforce.com/s/articleView?id=commerce.comm_lang_curr_international_b2c_store.htm&release=264.0.0&type=5 "Specify the language, ship-to countries, and currency settings for a D2C store."). - Autocomplete populates the Address, City, State or Province, ZIP or Postal Code, and Country or Region fields. - Autocomplete doesn’t populate apartment numbers, suites, or additional address information. - When testing in a sandbox org, address field population works slower. #### See Also - [Let Users Select State, Countries, and Territories from Picklists](https://help.salesforce.com/s/articleView?id=xcloud.admin_state_country_picklists_overview.htm&type=5&language=en_US) # Considerations for Agentforce Guided Shopping for B2B Commerce Before setting up a guided shopping agent, consider supported functionality, usage, limitations and allowances, limits, and other issues. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Language and Locale Support Agentforce Guided Shopping Agent - B2B supports these languages and locales. | Locale | Code | | --- | --- | | English (United States) | en\_US | | English (United Kingdom) | en\_GB | | English (Canada) | en | | French | fr | | French (Canada) | fr\_CA | | Spanish (Mexico) | es | | Portugese (Brazil) | pt\_BR | | German | de | | Italian | it | | Japanese | ja | | Korean | ko | | Dutch | nl | | Dutch (Netherlands) | nl\_NL | | Norwegian | no | | Polish | pl | | Portugese | pt\_PT | | Swedish | sv | | Danish | da | | Finnish | fi | | Chinese (Simplified) | zh\_CN | | Chinese (Traditional) | zh\_TW | ## Large Language Model Support Agentforce Guided Shopping Agent supports these models. | Model | | --- | | OpenAI GPT-4o | ## Einstein Trust Layer Service Support Agentforce Guided Shopping Agent supports these Trust Layer services. | Service | Description | | --- | --- | | Zero Data Retention Policy | Einstein Trust Layer uses a zero-data retention policy, so no data is stored or used for model training by third-party LLMs, such as Open AI and Azure Open AI. Customers’ use of other features including agents sometimes results in data storage. For more information, contact your Salesforce account executive. | | Dynamic Grounding with Secure Data Retrieval | Relevant information from a Salesforce record is merged with the prompt to provide context. | | Prompt Defense (System policies and prompt injection detection) | System policies help limit hallucinations and decrease the likelihood of unintended or harmful output by the LLM. | | Toxicity Detection | Potentially harmful LLM responses are detected and flagged. | | Audit and Feedback | Prompts, responses, and trust signals are logged and stored in Data 360. Feedback can be used for improving prompt templates. | Data masking through the Einstein Trust Layer is disabled to improve the performance and accuracy of agents. Ask your system administrator about which Einstein Trust Layer services are enabled in your org and available for guided shopping agents. ## Guided Shopping Agents and Einstein Requests Usage Einstein Requests is a usage metric for generative AI. The use of generative AI capabilities, in either a production or a sandbox environment, consumes Einstein Requests and possibly Data 360 credits. See [Generative AI Billable Usage Types](https://help.salesforce.com/s/articleView?id=ai.generative_ai_usage.htm&language=en_US). Agentforce Guided Shopping Agent is a consumption-based product that uses Einstein and stores and processes data using Data 360. ASA consumes credits used for billing based on your usage of the feature. ## Usage Types Billed by Agentforce Guided Shopping Agent ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_tip.png) Tip This feature has access to Digital Wallet, a free account management tool that offers near real-time consumption data for enabled products across your active contracts. Access Digital Wallet and start tracking your org's usage. To learn more, see [About Digital Wallet](https://help.salesforce.com/s/articleView?id=xcloud.wallet_about.htm&language=en_US).
Card Type Description Notes
Conversations Agentforce: ASA Messaging

For this subtype of the Agentforce usage type, usage is calculated based on conversation windows. A conversation window starts when one of the following happens:

  • when the user sends a message for the first time after the previous conversation window ends
  • when ASA sends a pre-configured welcome message first

The end of the conversation window differs for each Digital Engagement channel on which ASA is enabled.

For the Messaging for In-App and Web channels:

  • Messaging for Web: For unauthenticated users, the conversation window ends when the user explicitly clicks End Conversation. For authenticated users, the conversation window ends 24 hours after the start of the conversation.
  • Messaging for In-App: The conversation window ends 24 hours after the start of the conversation.

For these channels, the conversation window ends 24 hours after the start of the conversation:

  • Enhanced WhatsApp
  • Enhanced Facebook Messenger
  • Enhanced Apple Messages for Business
  • Enhanced SMS
  • Bring Your Own Channel
  • Enhanced LINE

Agentforce Guided Shopping Agent (ASA) supports only inbound conversations, which are conversations that a user initiates. See Generative AI Billable Usage Types.

Einstein Requests Einstein Requests

Einstein Requests is a usage metric for generative AI. The use of generative AI capabilities, in either a production or a sandbox environment, consumes Einstein Requests and possibly Data 360 credits. To learn more, see Data 360 Billable Usage Types.

API calls to the LLM gateway use Einstein Requests. For each API call to the LLM gateway, the number of Einstein requests used depends on the API call size factor and the LLM usage type multiplier. To learn more, see the Rate Card for Einstein Requests.

Einstein Requests are available in:

  • Enterprise, Performance, and Unlimited editions with an Einstein for Sales, Einstein for Platform, or Einstein for Service add-on. To purchase the Einstein for Sales, Einstein for Platform, or Einstein for Service add-on, contact your Salesforce account executive.
  • All Einstein 1 Editions
  • Marketing Cloud - Growth - Enterprise Edition and Marketing Cloud - Growth - Unlimited Edition
See Generative AI Billable Usage Types.
Data Services Credits Batch Data Pipeline Usage is calculated based on the amount of batch data processed by Data 360 data streams across all connectors.  
Data Services Credits Data Queries

Usage is calculated based on the number of records processed.

The count of records processed depends on the structure of a query as well as other related factors, such as the total number of records in the objects being queried.

 
Data Services Credits Unstructured Data Processed

Usage is calculated based on the amount of unstructured data that is processed. For example, if the search index processes 100 PDF documents that are 1 MB each, usage is calculated as 100 MB. If the search index processes five audio/video files that are on average 100MB each, usage is calculated as 500MB.

In Data 360, unstructured data is sometimes chunked and vectorized using an embedding model. Usage is computed only once across both these activities. For example, if one 100 MB PDF document is chunked and vectorized, usage is computed as 100 MB, not as 200MB.

 
Data Storage Storage Beyond Allocation Usage is calculated based on the amount of storage used above the amount allocated. Storage refers to the amount of data stored in Data 360. Storage used outside of Data 360, such as data stored on the Salesforce Lightning Platform, isn't counted toward this limit. Data you ingest into Data 360 for Agentforce Guided Shopping Agents conversations is counted toward your storage allocation. If you use more data than allocated, usage is charged.
Flex Credits Standard Action

Usage is determined by the number of standard agent actions. Each standard agent action includes the processing of up to 10,000 tokens. Tokens are units of data processed by AI models. Actions exceeding this limit are counted as a separate standard action each time the 10,000 token limit is exceeded. For example, processing 20,001 tokens is 3 standard actions. Actions involving lengthy prompts sent to the LLM can be counted as multiple actions where the 10,000 tokens per action limit is exceeded.

Standard agent actions are actions that are available out-of-the-box. To check the list of Standard actions, see Standard Action Reference.

Note
Note Use of some standard agent actions require that a subscription has been purchased for each user that accesses these actions, such as a subscription to Agentforce for Sales Add-on or Agentforce for Service Add-on. To determine which subscription is required for such standard actions, see Standard Action Reference at Standard Action Reference. While this requirement is not technically enforced yet, users who don’t have the required add-on license will lose access to such actions for which they don’t have a license when the requirement is enforced.
 
Flex Credits Custom Action

Usage is determined by the number of custom actions. Each custom action includes the processing of up to 10,000 tokens. Tokens are units of data processed by AI models. Actions exceeding this limit are counted as a new custom action each time the 10,000 token limit is exceeded. For example, processing 20,001 tokens is 3 custom actions. Actions involving lengthy prompts sent to the LLM can be counted as multiple actions where the 10,000 token action per limit is exceeded.

Custom actions are actions that are created by you or which result from your modification of a standard action. To learn more about what customer created actions are, see Create a Custom Agent Action. To learn more about how standard actions become custom actions, see Editing Standard Agent Action Reference Actions.

 
## Guided Shopping Agent Limits - Your Salesforce org can have no more than 100 active agents at a time. See [Activate or Deactivate your Agent](https://help.salesforce.com/s/articleView?id=ai.copilot_setup_activate_deactivate.htm&language=en_US). - Agentforce Guided Shopping Agent supports multiple stores. - When an incoming customer message exceeds the character limits of the messaging channel, the message isn’t delivered, and no response is generated. Different messaging channels have different character limits. - Facebook allows up to 2,000 characters. - LINE allows up to 5,000 characters. - SMS allows up to 912 characters, but if the message includes special characters, this limit decreases to 396 characters. - WhatsApp allows up to 4,096 characters. - Apple Messages for Business allows up to 50,000 characters. ## Other Considerations - You can create multiple versions of an agent. See [Manage Agent Versions](https://help.salesforce.com/s/articleView?id=ai.agent_versions.htm&language=en_US). - Currently, Agentforce Guided Shopping doesn't support these standard topics: - General CRM - Single Record Summary - Curently, Agentforce Guided Shopping doesn't support these standard actions; - Identify Object by Name - Identify Record by Name - Query Records - Query Records With Aggregate - Summarize Record - Draft or Revise Email - Update Record Fields - Extract Fields And Values From User Input - The APIs required to connect Data 360 to Guided Shopping agents are compatible only with the default dataspace. - Agentforce is included as a Covered Service in the Einstein Platform and Agentforce SOC 2 and SOC 3 reports. Agentforce is HIPAA eligible and covered under the Salesforce [Business Associate Addendum Restrictions](https://www.salesforce.com/company/legal/business-associate-addendum-restrictions/) and has also achieved ISO 27001, 27017, and 27018 certifications. #### See Also - [Einstein Audit and Feedback Data](https://help.salesforce.com/s/articleView?id=ai.generative_ai_feedback.htm&type=5&language=en_US) - [Einstein Generative AI Supported Languages and Locales](https://help.salesforce.com/s/articleView?id=ai.generative_ai_platform_languages.htm&type=5&language=en_US) - [Large Language Model Support](https://help.salesforce.com/s/articleView?id=ai.generative_ai_large_language_model_support.htm&type=5&language=en_US) - [Einstein Trust Layer](https://help.salesforce.com/s/articleView?id=ai.generative_ai_trust_layer.htm&type=5&language=en_US) # Considerations for Agentforce Merchandising for B2B Stores Keep these considerations in mind when using Agentforce Merchandising for B2B Stores. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Language and Locale Support This feature supports English in these locales. | Locale | Code | | --- | --- | | Locale1 | en\_LO | | Locale2 | en\_LO | ## Large Language Model Support This feature supports these models. For more information about LLM support for the AI agents platform and reasoning engine, see [Consideration for Agents](https://help.salesforce.com/s/articleView?id=ai.copilot_considerations.htm&language=en_US). | Model | | --- | | OpenAI GPT-4 Turbo | ## Einstein Trust Layer Service Support This feature supports these Trust Layer services.
Service Description
Dynamic Grounding with Secure Data Retrieval Not required

Prompt Defense (System policies and prompt injection detection)

Supported by the Platform (Employee Agent)
Data Masking Not supported
Toxicity Detection Supported (default from the platform)
Audit and Feedback Supported (default from the platform)
## Region Support Merchandising Agent doesn’t require geo-aware LLM request routing as described in [Geo-Aware LLM Request Routing on the Einstein Generative AI Platform](https://help.salesforce.com/s/articleView?id=ai.generative_ai_platform_geo_aware_routing.htm&language=en_US). ## Feature and Einstein Requests Usage Einstein Requests is a usage metric for generative AI. The use of generative AI capabilities in either a production or sandbox environment consumes Einstein Requests and possibly Data 360 credits. To learn more, see [Einstein Usage](https://help.salesforce.com/s/articleView?id=ai.generative_ai_usage.htm&language=en_US). ## Feature Limits Rate Limits for LLM and LLM Credits are available for execution for an extra charge. #### See Also - [Einstein Trust Layer](https://help.salesforce.com/s/articleView?id=ai.generative_ai_trust_layer.htm&type=5&language=en_US) - [Einstein Audit and Feedback Data](https://help.salesforce.com/s/articleView?id=ai.generative_ai_feedback.htm&type=5&language=en_US) - [Einstein Generative AI Supported Languages and Locales](https://help.salesforce.com/s/articleView?id=ai.generative_ai_platform_languages.htm&type=5&language=en_US) - [Large Language Model Support](https://help.salesforce.com/s/articleView?id=ai.generative_ai_large_language_model_support.htm&type=5&language=en_US) # Considerations for B2B Commerce Product Bundles and Sets A Commerce product bundle or set is a simple product that can contain simple products and variation products as child products. When you have bundles or sets and run Product Readiness for your catalog, Commerce checks for different product scenarios related to the parent and child products. Certain scenarios limit readiness. Before you create and configure a product bundle or product set for your store, keep these considerations in mind to increase readiness and support for other features, like search. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) | Consideration | More Information | | --- | --- | | For bundles containing simple products, mark both the parent product and child products as active. | [Products](https://help.salesforce.com/s/articleView?id=commerce.comm_products_intro.htm&type=5&language=en_US) | | For bundles containing variation products, mark both the variation product and its parent product as active. | [Product Variations and Attributes](https://help.salesforce.com/s/articleView?id=commerce.comm_var_att_intro.htm&type=5&language=en_US) | | Bundles can be simple products only. | A bundle can be a simple product only. Bundles can’t be a variation products or variation parents. To make different bundles, create a separate bundle. | | Assign a parent product and its child products to the store catalog. Assign parent products and child products to categories associated with the store catalog. However, parent and child products need not be in the same category. | To use a product set in multiple stores, assign the product set and its child products to categories from the catalogs for each store. See [Catalogs for a Store](https://help.salesforce.com/s/articleView?id=commerce.comm_catalogs_intro.htm&type=5&language=en_US) and [Product Categories](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_intro.htm&type=5&language=en_US). | | A bundle’s parent product must be entitled for a shopper or buyer to view all the products in the bundle. To sell the child products separately, add an entitlement policy and price book to each child component. | [Entitlement Policies](https://help.salesforce.com/s/articleView?id=commerce.comm_entitlement_policies_intro.htm&type=5&language=en_US) | | Assign product sets and their child products to the same entitlement policy as your store. | To use a product set in multiple stores, assign one entitlement policy per store. See [Entitlement Policies](https://help.salesforce.com/s/articleView?id=commerce.comm_entitlement_policies_intro.htm&type=5&language=en_US). | | Set the Quantity Scaling Method for child products to proportional. | When you edit individual child product settings, make sure that the quantity for child products ties proportionally to the quantity of the bundle. For example, if you set a child product’s quantity to 2 and increase the bundle quantity from 1 to 2, the child product’s quantity increases to 4. See [Create and Configure a Product Bundle for a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_and_configure_a_product_bundle.htm&type=5&language=en_US). | | Set pricing for child products to inclusive. | Inclusive pricing makes sure that the price of the child product isn't listed with the bundle. See [Create and Configure a Product Bundle for a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_and_configure_a_product_bundle.htm&type=5&language=en_US). | | A product bundle can include up to 200 child products. A product set can include up to 100 child products. A live storefront can display a max of 20 child products at a time. | To increase this limit, contact Salesforce Customer Support. | | If a new product bundle or set isn’t immediately visible in your store, update your store’s search index. | [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&type=5&language=en_US) | | Search results only match queries for the bundle’s parent product. | For example, you create a product bundle named Shirts. Within the product bundle, you include red shirts, yellow shirts, and blue shirts. If you search for yellow, the search doesn't return a match. Einstein semantic search includes bundles. See [AI-Powered Search for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_ai_search.htm&type=5&language=en_US). | | To make it easy for customers to add product bundles to their carts directly from the search results page, configure the Add to Cart button on the Results or Results Grid component in your store. | [Enable Customers to Add Products to Their Cart from Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_add_to_cart_button.htm&type=5&language=en_US) | | A bundle is promoted at the parent level. You can’t promote child products within a bundle, and child products within a bundle can't contribute to a qualifying criteria for a promotion. | [Considerations for Commerce Promotions](https://help.salesforce.com/s/articleView?language=en_US&id=sf.comm_promotions_get_to_know.htm) | | Product bundles and sets are fully supported for inventory. | [Set Up Inventory for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_inventory.htm&release=264.0.0&type=5 "To integrate inventory with your store, use Omnichannel Inventory or a custom provider. Use the Commerce Setup Assistant to quickly configure default settings in Omnichannel Inventory. You can also manually configure your store to add custom integrations.") | | You can’t nest bundles. | For example, you can’t add an existing product bundle as a child product to a new bundle. | | Enable the Cart Calculate API (CCA) | As of the Spring '24 release, CCA is enabled by default for LWR stores. See [Cart Calculate API](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html?q=CCA). | | You can use bundles with the Salesforce Order Management service flows and Salesforce Routing. | If you’ve made copies of these flows before Spring ’25, download the [Order Routing Package](https://help.salesforce.com/s/articleView?id=commerce.om_package_links.htm&language=en_US) again and [configure your flows for bundles](https://help.salesforce.com/s/articleView?id=commerce.om_flow_enable_product_bundles.htm&language=en_US). | #### See Also - [Create and Configure a Product Bundle](https://help.salesforce.com/s/articleView?id=commerce.comm_create_and_configure_a_product_bundle.htm&type=5&language=en_US) - [Create and Configure a Product Set](https://help.salesforce.com/s/articleView?id=commerce.comm_create_and_configure_a_product_set.htm&type=5&language=en_US) # Considerations for Buyer Group Extension As you turn on buyer group extension, keep these considerations in mind. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - The number of buyer groups that can be assigned to a user is determined by the limit set in your Salesforce org. See [Shopper Buyer Groups and Accounts Data Limits Groups](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-b2c-comm-data-model-shopper-buyer-groups-accounts-limits.html). - Support for B2B stores and D2C stores with custom checkout enabled. D2C stores using managed checkout don’t support buyer group extensibility. See [Configure Custom Checkout for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_checkout.htm&language=en_US). - If enabled, caching can delay the process of buyer group assignments. To make sure buyer group extensibility functions properly and to prevent caching-related issues, disable both Salesforce Content Delivery Network (CDN) and Salesforce Edge Network. Test these changes in your sandbox org before applying them in production. In Setup, go to My Domain and disable both these options. See [Considerations for the Salesforce CDN](https://help.salesforce.com/s/articleView?id=platform.community_builder_cdn_considerations.htm&language=en_US) and [Considerations for Salesforce Edge Network](https://help.salesforce.com/s/articleView?id=xcloud.domain_name_edge_network_considerations.htm&language=en_US). # Considerations for Commerce Promotions in B2B Stores Optimize your B2B store promotions by considering key factors such as discount configuration, application timing, eligible recipients, and coupon requirements. Effective promotions can drive purchases and enhance customer loyalty. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) As you set up your promotion, here are some key things to consider. - Is the promotion automatic or manual? Automatic promotions apply to all eligible carts. Manual promotions require a coupon code that the customer enters. - Who is it for? Use segments to associate your promotion with one or more stores and, if necessary, specific buyer groups. - What will the customer receive? Specify which products to target and how much to deduct from the price. When you target a product bundle, you can only promote bundles at the parent level. - What must a customer purchase to receive the promotion? Use promotion tiers and qualifier rules to set quantity or price minimums. Child products within a bundle can’t contribute to qualifying criteria for a promotion. - How do you want your promotion to appear to customers? Customize your cart page and other details in Experience Builder. ## Usage Notes - The Promotion object is shared between Commerce, Loyalty, and Retail Execution platforms in Salesforce. - Customers are eligible for 24 product-level promotions and one order-level promotion per cart. This limit includes a maximum of two coupons. - Each line item in a cart is eligible for only one class-exclusive product-level promotion. This behavior can be customized via the Promotion Exclusivity field. However, note that if you create multiple promotions with the same qualifying criteria, it’s possible for a single line item to qualify an order for multiple product promotions regardless of class exclusivity. For example, if you create a “buy one, get one” promotion and a “buy one, get 15% off shipping” promotion with the same qualifying item, “Tote Bag,” then the “Tote Bag” qualifies an order for both promotions regardless of whether one or both have class exclusivity. See [Prioritizing Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_prioritization.htm&release=264.0.0&type=5 "When a cart is eligible for multiple promotions, your exclusivity and priority rules determine which promotions apply. Priority is first determined by exclusivity, which specifies whether a promotion can be combined with other promotions. Next, the promotion’s priority is based on its priority number, discount type, discount amount, and promotion ID.") - If a cart includes an item with a negative price value, the cart isn’t eligible for a promotion. - Promotions aren’t evaluated or applied for carts that contain more than 10,000 items. See [Increase Cart Size Limits for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_large_carts.htm&release=264.0.0&type=5 "Most stores limit cart size to 500 line items per order. However, if your B2B store requires a higher limit, you can enable support to process up to 2,000 line items per order. To increase your line item limit, contact Customer Support."). - Configuring many category-based promotions can slow performance, especially for carts with 250 or more items or hierarchies with 15,000 or more categories. Performance depends on promotion setup, category hierarchy, and cart size. - (Beta) Product-level promotions apply to subscription products across purchase, amendment, and renewal cycles. Cart-level promotions aren’t supported for subscription products. For considerations, see [Considerations for Using Commerce Subscriptions](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_considerations.htm&release=264.0.0&type=5 "In B2B stores, you can sell digital subscription products. Commerce Subscriptions is supported by Revenue Cloud, but it’s a separate product from Revenue Cloud’s Subscription Management. Before you create and configure subscription products for your B2B store, or before you switch from Subscription Management to Commerce Subscriptions, keep these considerations in mind."). - If a customer reorders an order that qualified for a bonus product promotion, the bonus product is added to the cart again for each reorder that meets the promotion criteria. The bonus product is also added to the customer’s cart as a regular cart item. The regular cart item is priced based on the product’s configuration. A customer can remove the regular cart item from their cart but not the additional bonus product. - Add one bonus product per promotion. You can’t configure a promotion to offer multiple units of a bonus product. - Product quantity rules don’t apply to bonus products. If a product has a minimum quantity rule, choose a different product for your bonus promotion. #### See Also - [Commerce Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_create_manage.htm&release=264.0.0&type=5 "Enhance your B2B store by adding customized promotions. Create segments, discounts, qualifiers, and coupons for the right customers to receive the right deals. Highlight promotions for eligible customers on store pages and during checkout to boost engagement and sales.") # Considerations for Contract-Based Pricing Review these considerations before you offer contract-based pricing to B2B buyers. - Contract-based pricing for a buyer account overrides other pricing rules. - A contract applies to a single currency. Only the currency associated with the contract is used for contract item price records. - If two contracts include the same product, the contract item price with the latest start date takes effect. If both start dates are the same, the lower price is applied. - Category-based contract pricing isn't supported. - Contract-based pricing isn't applied to products in quotes. - After a contract is activated, you can't change its status. To update pricing, create another contract item price record. - To define contract-level discounts, use contract adjustment records. Discount fields on the contract record aren't supported. - For subscription products, contract-based pricing and volume-based adjustments apply across the purchase, amendment, and renewal flows. - For subscriptions, contract pricing applies during amend and renew flows only if a contract was stamped on the original purchase. A contract added or becoming valid later isn't applied to the subscription. To use a new contract, update the asset-to-contract relationship through a flow or another automated process. - For future-dated amendments, contracts are resolved based on the effective date. Contract pricing isn't applied if the contract isn't valid on that date. - If the original contract has expired, amend and renew flows use the list price unless the asset-to-contract relationship is updated to a newer contract. - Negative amendments and cancellations use the last transaction price rather than resolving a new contract, so the buyer is credited based on what they originally paid. #### See Also - [Offer Contract-Based Pricing to a B2B Buyer](https://help.salesforce.com/s/articleView?id=commerce.comm_offer_contract_pricing_to_buyer.htm&release=264.0.0&type=5 "Create a contract to define negotiated prices for a specific buyer account. Contracts override standard price book prices, ensuring buyers see their negotiated prices across store pages.") - [Configure Volume-Based Adjustments for Contract Pricing](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_volume_adjustments_contract_pricing.htm&release=264.0.0&type=5 "Offer more savings by applying volume-based discounts on top of contract prices when B2B buyers purchase in larger quantities. Volume-based adjustments apply to both subscription and non-subscription products.") - [Contract-Based Pricing](https://help.salesforce.com/s/articleView?id=ind.pricing_contract_based_pricing.htm&language=en_US) # Considerations for Deleting Order Management Records Data protection and privacy policies can require deletion of records used in Order Management. Because many records share complex relationships, the order in which you delete them is important. If you delete a record before deleting another record that references it, the reference can cause errors. ### Required Editions
View supported editions.
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid affecting customer implementations. When designing your deletion procedures, consider these requirements. - If two objects have a master-detail relationship, then deleting a record of the master object deletes the corresponding detail object record. - Deleting a record doesn’t necessarily delete records that reference it. For example, if you delete an order, delete its order products first. Before deleting a referenced record, check for references to it and for objects containing references to it. Make sure you delete these references before deleting the record, or errors can occur. The table lists some references to consider when deleting Order Management records, however, it isn’t a comprehensive list of all possible dependencies.
Before Deleting This Record References to Delete
Account or Person Account
  • Card Payment Method
  • Credit Memo
  • Digital Wallet
  • Fulfillment Order
  • Invoice
  • Order
  • Order Summary
  • Payment
Contact
  • Credit Memo
  • Fulfillment Order
  • Invoice
  • Order
  • Order Summary
Fulfillment Order
  • Fulfillment Order Product (automatically deleted via Master-Detail relationship)
Fulfillment Order Item Adjustment
  • Fulfillment Order Item Tax
Fulfillment Order Item Tax None
Fulfillment Order Product
  • Fulfillment Order Item Adjustment (automatically deleted via Master-Detail relationship)
Invoice
  • Fulfillment Order
Location
  • Fulfillment Order
  • Order Product Summary
Order
  • Fulfillment Order
  • Invoice
  • Order
  • Order Adjustment Group (automatically deleted via Master-Detail relationship)
  • Order Delivery Group (automatically deleted via Master-Detail relationship)
  • Order Product
  • Order Summary (automatically deleted via Master-Detail relationship with the original order)
Order Adjustment Group Summary
  • Order Product Adjustment Line Item Summary
Order Delivery Group Summary
  • Order Product Summary
Order Delivery Method
  • Fulfillment Order
  • Order Delivery Group
  • Order Delivery Group Summary
Order Payment Summary
  • Payment
Order Product
  • Fulfillment Order Product
  • Order Product Summary (automatically deleted via Master-Detail relationship with Order Summary)
  • Order Product Summary Change
  • Order Product Tax Line Item (automatically deleted via Master-Detail relationship)
Order Product Adjustment Line Item Summary
  • Fulfillment Order Item Adjustment
  • Order Product Tax Line Item Summary
Order Product Summary
  • Fulfillment Order Product
  • Order Product Adjustment Line Item Summary (automatically deleted via Master-Detail relationship)
  • Order Product Summary Change (automatically deleted via Master-Detail relationship)
  • Order Product Tax Line Item Summary (automatically deleted via Master-Detail relationship)
Order Product Summary Change None
Order Product Tax Line Item Summary
  • Fulfillment Order Item Tax
Order Summary
  • Credit Memo
  • Fulfillment Order
  • Invoice
  • Order Adjustment Group Summary (automatically deleted via Master-Detail relationship)
  • Order Delivery Group Summary (automatically deleted via Master-Detail relationship)
  • Order Payment Summary (automatically deleted via Master-Detail relationship)
  • Order Product Adjustment Line Item Summary (automatically deleted via Master-Detail relationship with Order Product Summary)
  • Order Product Summary (automatically deleted via Master-Detail relationship)
  • Order Product Summary Change (automatically deleted via Master-Detail relationship with Order Product Summary)
  • Order Product Tax Line Item Summary (automatically deleted via Master-Detail relationship with Order Product Summary)
Payment Gateway
  • Card Payment Method
  • Digital Wallet
  • Payment
Payment Gateway Log
  • Order Payment Summary
Payment Method
  • Order Payment Summary
  • Payment
Return Order
  • Return Order Product (automatically deleted via Master-Detail relationship)
Return Order Item Adjustment
  • Return Order Item Tax
Return Order Item Tax None
Return Order Product
  • Return Order Item Adjustment (automatically deleted via Master-Detail relationship)
Sales Channel
  • Order
  • Order Summary
#### See Also - [Data Protection and Privacy](https://help.salesforce.com/articleView?id=data_protection_and_privacy.htm&language=en_US) - [Deleting Information from Restricted Data Fields](https://help.salesforce.com/s/articleView?id=commerce.om_deleting_information_restricted_data_fields.htm&release=264.0.0&type=5 "Because some restricted fields can contain customer personal information, they’re subject to data privacy and protection policies. Compliance can require a user with appropriate permissions to mask or delete their values. Only a Salesforce admin or a user with the Edit Activated Orders permission can modify the restricted fields.") # Considerations for Einstein Product Descriptions and Fields To enhance product fields and descriptions with Einstein Generative AI, consider supported functionality, usage, limitations and allowances, limits, and other issues. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Product Descriptions and Fields Language and Locale Support Product Descriptions and Fields supports these languages. | LOCALE | CODE | | --- | --- | | English (United Kingdom) | en\_UK | | English (United States) | en\_US | ## Product Descriptions and Fields Large Language Model Support Product Descriptions and Fields supports the models supported on the Salesforce generative AI platform, as described in [Large Language Model Support](https://help.salesforce.com/s/articleView?id=ai.generative_ai_large_language_model_support.htm&language=en_US). ## Einstein Trust Layer Service Support Product Descriptions and Fields supports the Trust Layer services provided on the Salesforce generative AI platform, as described in [Einstein Trust Layer](https://help.salesforce.com/s/articleView?id=ai.generative_ai_trust_layer.htm&language=en_US). Ask your Salesforce admin about which Einstein Trust Layer services are enabled in your org and available for Product Descriptions and Fields. ## Product Descriptions and Fields Region Support Product Descriptions and Fields supports the geo-aware models supported on the Salesforce generative AI platform, as described in [Geo-Aware LLM Request Routing on the Einstein Generative AI Platform](https://help.salesforce.com/s/articleView?id=ai.generative_ai_platform_geo_aware_routing.htm&language=en_US). ## Product Descriptions and Fields and Einstein Requests Usage Einstein Requests is a usage metric for generative AI. The use of generative AI capabilities, in either a production or sandbox environment, consumes Einstein Requests and possibly Data 360 credits. To learn more, see [Einstein Usage](https://help.salesforce.com/s/articleView?id=ai.generative_ai_usage.htm&language=en_US). ## Other Considerations - You can use only the text data type for Product Descriptions and Fields. - The language for the prompt input is English. If your org has other languages enabled, the user can select which languages they want the response to be returned. #### See Also - [Einstein Trust Layer](https://help.salesforce.com/s/articleView?id=ai.generative_ai_trust_layer.htm&type=5&language=en_US) - [Large Langauge Model Support](https://help.salesforce.com/s/articleView?id=ai.generative_ai_large_language_model_support.htm&type=5&language=en_US) - [Einstein Generative AI Supported Languages and Locales](https://help.salesforce.com/s/articleView?id=ai.generative_ai_platform_languages.htm&type=5&language=en_US) - [Einstein Audit and Feedback Data](https://help.salesforce.com/s/articleView?id=ai.generative_ai_feedback.htm&type=5&language=en_US) # Considerations for Einstein Promotions To create Einstein Promotions with Einstein Generative AI, consider supported functionality, usage, limitations and allowances, limits, and other issues. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Einstein Promotions Language and Locale Support Einstein Promotions supports these languages. | LOCALE | CODE | | --- | --- | | English (United Kingdom) | en\_UK | | English (United States) | en\_US | ## Einstein Promotions Large Language Model Support Einstein Promotions supports these models. | MODEL | | --- | | Azure OpenAI GPT 3.5 Turbo 16k | ## Einstein Trust Layer Service Support Einstein Promotions supports these Trust Layer services. | SERVICE | DESCRIPTION | | --- | --- | | Dynamic Grounding with Secure Data Retrieval | Full support. Prompts are selected from a list of available prompts. | | Prompt Defense (System policies and prompt injection detection) | Doesn’t use a prompt engine. Doesn’t have any support for prompt injection detection.. | | Data Masking | Doesn’t support data masking. No PII data is involved. | | Toxicity Detection | Full support. | | Audit and Feedback | Full support. Includes a component to get feedback from users and sends it to the feedback service. | Ask your Salesforce admin about which Einstein Trust Layer services are enabled in your org and available for Einstein Promotions. ## Einstein Promotions Region Support Einstein Promotions supports the geo-aware models supported on the Salesforce generative AI platform, as described in [Geo-Aware LLM Request Routing on the Einstein Generative AI Platform](https://help.salesforce.com/s/articleView?id=ai.generative_ai_platform_geo_aware_routing.htm&language=en_US). ## Einstein Promotions and Einstein Requests Usage Einstein Requests is a usage metric for generative AI. The use of generative AI capabilities, in either a production or sandbox environment, consumes Einstein Requests and possibly Data 360 credits. To learn more, see [Einstein Usage](https://help.salesforce.com/s/articleView?id=ai.generative_ai_usage.htm&language=en_US). ## Einstein Promotions Limits - Maximum words allowed in prompt: 100 - Maximum characters allowed in prompt: 1,000 #### See Also - [Einstein Trust Layer](https://help.salesforce.com/s/articleView?id=ai.generative_ai_trust_layer.htm&type=5&language=en_US) - [Large Langauge Model Support](https://help.salesforce.com/s/articleView?id=ai.generative_ai_large_language_model_support.htm&type=5&language=en_US) - [Einstein Generative AI Supported Languages and Locales](https://help.salesforce.com/s/articleView?id=ai.generative_ai_platform_languages.htm&type=5&language=en_US) - [Einstein Audit and Feedback Data](https://help.salesforce.com/s/articleView?id=ai.generative_ai_feedback.htm&type=5&language=en_US) # Considerations for Goals & Actions As you begin using goals and actions, keep these considerations in mind. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - Some goals and recommended actions appear only if your data meets the criteria for showing them. - Some recommended actions use Einstein Generative AI, which must be enabled in your org. See [Enable Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_enable.htm&type=5&language=en_US). - Your org must have sales data for some recommended actions to appear. #### See Also - [Get Recommended Actions to Improve Store Performance](https://help.salesforce.com/s/articleView?id=commerce.comm_gnr_recs.htm&release=264.0.0&type=5 "Use the available goals and their corresponding recommended actions to achieve specific targets for your B2B Commerce store. You can choose which recommended actions to take. Some are based on insights into your store and unique to your store’s data, and others are general recommended actions. Monitor goal progress over time with data-driven insights into conversion rate, average order value, site traffic and more.") # Considerations for Importing Availability Data Create or import initial product availability data for the locations and location groups. If possible, use the headless Commerce API as described in [Inventory Impex](https://developer.salesforce.com/docs/commerce/commerce-api/references?meta=impex:Summary) in B2C Commerce API Reference. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note Importing data with Connect API can cause performance and API quota issues. To create an inventory data file, format the data as a series of JSON entries representing locations and individual inventory records. Considerations for inventory import data include: - Separate the top-level entries with line feeds, not commas. Each entry must be on a single line. - The mode is assumed to be UPDATE. - Each inventory record entry requires a unique recordId. Best practice is to use a UUID. The record Id protects against importing duplicate data. - Each inventory record entry requires an effectiveDate. - Each futures entry requires a nonzero quantity and a future expectedDate. - The system only creates or updates entries that are included in the data. It doesn’t delete entries that aren’t included. However, if an included entry has an empty value, that value is deleted. - If you make any changes to your location graph, don’t import inventory data while the changes are in progress. If you have scheduled imports, pause them until the changes are complete. - To avoid overselling during the initial implementation period, we recommend defining safety stock levels. - Inventory data file restrictions differ according to the API used for upload: - Headless Commerce API - File Size Limit: 100 MB - Allowed File Formats: JSON, GZIP - Core Connect API (Apex or REST) - File Size Limit: 10 MB - Allowed File Format: JSON ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note For large data sets, you can split the data into multiple files. The following example illustrates the data format. For readability, the example shows the first few entries on multiple lines. In the import file, each inventory record entry must be on a single line. `{ // unique identifier for the inventory record "recordId":"0a87539d-f3dd-47bc-91c7-9c752e39dbe0", "onHand":10, "sku":"12389156", "effectiveDate":"2020-12-08T14:05:22.790896-07:00", "futures":[ // list of future restocks { "quantity":1, "expectedDate":"2021-04-18T14:05:22.781-07:00" }, { "quantity":5, "expectedDate":"2021-05-18T14:05:22.781-07:00" } ], "safetyStockCount":0, "locationId":"Warehouse-A" } { "recordId":"0a87539d-f3dd-47bc-91c7-9c752e312345", "onHand":10, "sku":"9485728", "effectiveDate":"2020-12-08T14:05:22.790896-07:00", "futures":[ { "quantity":10, "expectedDate":"2021-04-18T14:05:22.781-07:00" } ], "safetyStockCount":0, "locationId":"Warehouse-A" } {"recordId":"0a87539d-f3dd-47bc-91c7-9c752e39dbe0",​"onHand":10,"sku":"sku1",​"effectiveDate":"2020-04-08T14:05:22.790896-07:00",​"futures":[{"quantity":1,"expectedDate":"2020-04-18T14:05:22.781-07:00"}],​"safetyStockCount":0,"locationId":"Warehouse-B"} {"recordId":"3127e2ad-748b-459a-917c-78bef741602c",​"onHand":10,"sku":"sku1",​"effectiveDate":"2020-04-08T14:05:22.790896-07:00",​"futures":[{"quantity":1,"expectedDate":"2020-04-18T14:05:22.781-07:00"}],​"safetyStockCount":0,"locationId":"Warehouse-B"} {"recordId":"b709e7a8-7d4f-4458-be0c-a88f1e594f1d",​"onHand":10,"sku":"sku2",​"effectiveDate":"2020-04-08T14:05:22.790896-07:00",​"futures":[{"quantity":1,"expectedDate":"2020-04-18T14:05:22.781-07:00"}],​"safetyStockCount":0,"locationId":"Warehouse-B"}` To upload the file to Omnichannel Inventory, first request an upload URI by making a POST call to this endpoint. Specify the fileName in the request payload. ``` /organizations/TenantGroupId/​availability-records/imports/ ``` For information about other request parameters, such as link time to live and file encoding format, see the B2C Commerce API Reference. The response includes these values: - importId—A UUID representing the data import. - importStatusLink—A unique endpoint you can use to retrieve the status of the data upload. - uploadLink—The unique endpoint you use to upload the data file. - uploadMethod—Always POST. - uploadLinkExpirationUTC—The time when the upload link expires. If you don’t upload the data by that time, you must request a new import. To start the upload, make a POST call to the uploadLink URI and include the import file as the payload. To retrieve the status of the upload, make a GET call to the importStatusLink URI. After creating or importing the initial inventory data, set up ongoing inventory data imports with your external inventory management system using the Omnichannel Inventory APIs. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note For best performance, use delta data imports as much as possible. Try to limit full data imports. # Considerations for Importing Product Availability into Omnichannel Inventory Keep these considerations in mind when initially importing product availability data for locations and location groups. Adding or removing locations or location groups after loading inventory availability data can trigger large availability data and cache updates. If you need to make changes, schedule the update during low-order traffic times or change one item at a time. - Schedule location graph changes for times with low-order traffic. - If you have scheduled imports, pause them until the changes are complete. - Add or remove only one location or location group at a time. - After making a change, wait for the update to finish before importing new inventory availability data. When using Omnichannel Inventory console app, be sure to select **Sync with OCI** when creating locations and location groups. # Considerations for Market and Buyer Group Setup for B2B Commerce Stores As you set up your market and buyer groups, keep these considerations in mind. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - Only the promotion segments that are assigned to the market apply to the products in the market. A store’s defaults for language, ship-to country, price book, and currency settings aren’t used after a segment is assigned to the market. These defaults don’t apply if you’re setting up a promotion segment in a buyer group. - A product uses the lowest price found in all of the store’s price books and markets. This behavior doesn’t apply if you’re setting up a new price book in a buyer group. - Only the entitlement policies assigned to a market are used. Entitlement policies assigned to buyer groups aren’t used. - If you haven’t assigned a ship-to country to a market or buyer group, the store’s ship-to country is used. - If you haven’t assigned a locale to a market, entities assigned to the market are ignored, and the store defaults are used. This behavior doesn’t apply when you assign locales to a buyer group. - Markets assigned to a store override the default search indexing behavior. If a store has markets assigned, only the locales associated with those markets are indexed. The supported languages defined in the store’s settings aren’t indexed. To make sure a locale is indexed, assign it to a market linked to the store. # Considerations for Omnichannel Inventory Keep these considerations in mind when designing your system. - How to handle data imports from an external system of record, such as a WMS. - Which physical and virtual inventory locations to include in the Omnichannel Inventory location graph. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note The location graph is a complex topic, and changing it after uploading inventory data can cause performance issues. For more information, see [Locations and Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_locations_and_location_groups.htm&language=en_US) in Salesforce Help. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note When using D2C Commerce, your location graph is limited to one location and one location group. - How to transfer any existing inventory data import processes from your current storefront to Omnichannel Inventory. - How to manage the cutover from your existing implementation to the integrated system. For example, you can plan an order moratorium while switching to the new system for managing availability data. - Whether any existing customizations or business processes can benefit from being reimplemented in Omnichannel Inventory. # Considerations for Pricing Procedure Plans Review these considerations when working with pricing procedure plans in your B2B store. - Use pricing procedure plans only for standard products. Pricing procedure plans don't support the request quote feature. - Unassign a procedure plan from the store before deactivating it. - To avoid disruptions, make and test procedure plan changes in a lower environment before moving them to production. - Make sure that your Apex code includes timeout and exception handling, as any failure during execution results in a pricing failure. - Optimize your Apex code for performance, as execution introduces performance overhead. # Considerations for Product Searchability As you configure search for your B2B Commerce storefront, keep these considerations in mind. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Before You Begin](https://help.salesforce.com/s/articleView?id=commerce.comm_search_prereq.htm&release=264.0.0&type=5)** Other features in your B2B Commerce store and in your Salesforce org can affect whether a product is discoverable. - **[Commerce Administrator Considerations for Product Searchability](https://help.salesforce.com/s/articleView?id=commerce.comm_search_comm_admin_cons.htm&release=264.0.0&type=5)** Commerce administrators must ensure that certain conditions are met to search for products in storefronts. - **[B2B Commerce Search and Auto-Correction Management](https://help.salesforce.com/s/articleView?id=commerce.comm_search_typo_tolerance.htm&release=264.0.0&type=5)** Auto-correction, or typo tolerance, helps customers find the products that they’re looking for when they inadvertently enter incorrect search terms. Typo tolerance corrects suggestions by matching and returning terms similar to the terms entered in a query. For example, if a customer mistypes shert in the search bar of a site that sells apparel, typo tolerance can suggest terms like shirt. # Considerations for Return Insights To create Return Insights with Einstein Generative AI, consider supported functionality, usage, limitations and allowances, limits, and other issues. ### Required Editions
View supported editions.
## Return Insights Language and Locale Support Return Insights supports these languages. | LOCALE | CODE | | --- | --- | | English (United Kingdom) | en\_UK | | English (United States) | en\_US | ## Return Insights Large Language Model Support Return Insights supports these models. | MODEL | | --- | | OpenAI GPT-4 | ## Einstein Trust Layer Service Support Return Insights supports these Trust Layer services. | SERVICE | DESCRIPTION | | --- | --- | | Dynamic Grounding with Secure Data Retrieval | Full support. Return Insights uses an internal, standard prompt that passes through a list of preselected returned products. | | Prompt Defense (System policies and prompt injection detection) | Full support. | | Data Masking | Full support. | | Toxicity Detection | Full support. | | Audit and Feedback | There’s no explicit user feedback component for users, but feedback is sent to a feedback service via an API. | Ask your Salesforce admin about which Einstein Trust Layer services are enabled in your org and available for Return Insights. ## Return Insights Region Support Return Insights supports these models for geo-aware request routing. | MODEL | | --- | | sfdc\_ai\_\_DefaultGPT4 | ## Return Insights and Einstein Requests Usage Einstein Requests is a usage metric for generative AI. The use of generative AI capabilities, in either a production or sandbox environment, consumes Einstein Requests and possibly Data 360 credits. To learn more, see [Einstein Usage](https://help.salesforce.com/s/articleView?id=ai.generative_ai_usage.htm&type=5&language=en_US). ## Other Considerations Return Insights integrates with all Order Management supported integrations if you have the required licenses and permissions. #### See Also - [Einstein Trust Layer](https://help.salesforce.com/s/articleView?id=ai.generative_ai_trust_layer.htm&type=5&language=en_US) - [Large Langauge Model Support](https://help.salesforce.com/s/articleView?id=ai.generative_ai_large_language_model_support.htm&type=5&language=en_US) - [Einstein Generative AI Supported Languages and Locales](https://help.salesforce.com/s/articleView?id=ai.generative_ai_platform_languages.htm&type=5&language=en_US) - [Einstein Audit and Feedback Data](https://help.salesforce.com/s/articleView?id=ai.generative_ai_feedback.htm&type=5&language=en_US) # Considerations for Using Commerce Subscriptions In B2B stores, you can sell digital subscription products. Commerce Subscriptions is supported by Revenue Cloud, but it’s a separate product from Revenue Cloud’s Subscription Management. Before you create and configure subscription products for your B2B store, or before you switch from Subscription Management to Commerce Subscriptions, keep these considerations in mind. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## General Considerations - Commerce Subscriptions and advanced pricing features are included in orgs with either a Commerce Growth license or a Commerce Advanced license, along with a Revenue Cloud Advanced license. For advanced pricing features, update your pricing engine to use Advanced Pricing for Commerce Powered by Revenue Cloud. See [Advanced Pricing for Commerce Powered by Revenue Cloud](https://help.salesforce.com/s/articleView?id=commerce.comm_advanced_pricing_for_commerce_stores.htm&language=en_US). - You can create subscriptions only for digital products, and not for physical products. - If you're selling physical products, you can't use Product Selling Models as these items use the default pricing. - Set up your B2B store by using Custom Checkout. - To switch from Subscription Management to Commerce Subscriptions, turn off the CommerceSubscriptionsPlus permission in your org and switch your pricing engine to use Advanced Pricing for Commerce Powered by Revenue Cloud and turn on High Scale Orders. See [Enable Selling Subscriptions for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_enable.htm&language=en_US) and [Enable High Scale Orders in Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_high_scale_order_enable.htm&language=en_US). - You can’t use Commerce Subscriptions in a store built on an Aura template. You can migrate your store from an Aura template to an LWR template. See [LWR and Aura Store Templates](https://help.salesforce.com/s/articleView?id=commerce.comm_lwr_aura_comps.htm&language=en_US). ## Pricing - If you’re using a pricing extension instead of Salesforce Pricing, make sure that the extension produces the same results as Salesforce Pricing. See [Revenue Cloud Subscription Pricing and Proration](https://help.salesforce.com/s/articleView?id=ind.pricing_subscription_pricing_proration.htm&language=en_US). - When Commerce Subscriptions and Advanced Pricing for Commerce Powered by Revenue Cloud are enabled, all products (both subscription and nonsubscription products) are priced by using Advanced Pricing. - If you’re using the ListPrice field on the OrderItem object to populate the strikethrough price, use the ReferencePrice field instead. - Volume-tiered pricing adjustments apply to subscription products. You can use these adjustments with standard pricing and contract pricing. For contract pricing, configure the adjustments on the contract item price record. - When you create a price adjustment tier for a subscription product, select the applicable product selling model. If you don’t select a product selling model, the adjustment applies only to non-subscription purchases. - Term-based adjustment schedules support only the range type. Slabs aren’t supported. - A product can have multiple price book entries, with one price book entry for each product selling model. Each price book entry can have one adjustment schedule. You can’t attach both a volume-based and a term-based adjustment schedule to the same price book entry. To use different adjustment types, add them to separate price book entries associated with different product selling models. - By default, positive amendments and renewals use the list price as the starting price, so applicable pricing adjustments are recalculated based on the product and pricing details at the time of the transaction. - By default, negative amendments and cancellations use the last transaction price, so pricing adjustments aren’t recalculated. Volume tiers aren’t recalculated for negative amendments. Any changes to the volume tier take effect at the next renewal. ## Cart and Checkout - If your store allows duplicate cart items, make sure that bulk additions to cart requests contain only subscription products or only nonsubscription products. If a customer tries to check out with a cart containing mixed duplicate cart items, their nonsubscription products don’t merge correctly. - You can use only the card payment method for subscriptions. Other payment methods aren't supported. - Registered users can check out with subscriptions in their cart, but guest users can’t. - Mixed orders with subscriptions are limited to 200 order items. - To capture the shopper email address for an order, link the AccountId field to the correct person or business account and make sure that the account has a valid email address. - To capture the company name in shipping details, enable the Company Name field in the Shipping component and ensure the CartDeliveryGroup object's CompanyName field is populated with data. - If your store uses the Cart to Order action in a B2B checkout flow, the first payment field isn’t populated when an Order Summary for the subscription is created. We recommend enabling high-scale order processing and using the Checkout Connect API to populate the first payment field on a subscription order. See [Preparing for High Scale Order Processing in Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_preparing_for_high_scale_order_processing.htm&language=en_US) and [Salesforce Commerce Checkout API](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-d2c-comm-checkout-apis.html). - If you extended the Commerce\_Domain\_Checkout\_CreateOrderpoint, shoppers can change the quantity on a subscription order, but they can’t add duplicate subscription order items. - You can’t split a shipment that contains a subscription product. To turn off split shipping, See [Enable Shipping to Multiple Addresses for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_split_shipping_for_commerce_stores.htm&language=en_US). - If your store experiences issues when shoppers add products with one-time product selling models to their carts, turn off the displayable fields beta feature and perform a full index refresh. See [Set Up Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_displayable_fields.htm&language=en_US). ## Billing - If you’re not using the default Commerce Billing process, make sure that all nonsubscription order items are excluded from billing. Commerce Billing excludes nonsubscription products from first billing. Don’t change this configuration. - Use the Revenue Cloud Invoice Creation API to generate a first invoice for a subscription order. To generate a first invoice, use the date on which tax is calculated. If this date isn’t available, you can use the effective order date. See [Invoice Creation (POST)](https://developer.salesforce.com/docs/atlas.en-us.254.0.chatterapi.meta/chatterapi/connect_resources_commerce_create_invoices_from_billing_schedules.htm). - You can start a recovery for a failed invoice after 48 hours. Use the Revenue Cloud Billing Schedule API to start a recovery for a failed invoice. See [Billing Recovery Schedule API](https://developer.salesforce.com/docs/atlas.en-us.revenue_lifecycle_management_dev_guide.meta/revenue_lifecycle_management_dev_guide/connect_resources_recover_billing_schedules.htm). ## Invoice - If Stripe is configured as the tax provider, invoice generation isn’t supported for dates more than 31 days in the past or future. Verify limitations with your tax provider. - If you pause or suspend billing for subscriptions, ensure invoices are within the 31-day range to avoid tax calculation failures. - Ensure generated invoices are in Posted state. The next billing date isn’t updated when invoices are in Draft state. - Run billing schedulers during low-traffic periods. This approach minimizes incorrect Next Billing Date issues when the schedulers process concurrent positive and negative amendments on the same Billing Schedule Group. - Invoice positive and negative billing schedules together. Avoid generating invoices using individual billing schedules, order-level invoice generation, or custom grouping keys. - You can’t void invoices because doing so creates negative invoice lines that can’t be taxed. ## Promotions (Beta) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Promotion for subscription products is a beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this beta service is at the customer’s sole discretion. - Product-level promotions are supported for subscription products. Cart-level promotions aren't supported as qualifiers or discount targets. If a cart contains both subscription and non-subscription products, cart-level promotions apply only to the non-subscription products. - Subscription products can qualify for product-level promotions by quantity only. Price-based or amount-based qualification isn't supported. - Coupon codes and bonus product promotions apply to new purchases only. During amendments and renewals, only automatic promotions are evaluated. - The promotion continues to apply for subsequent billing cycles of a subscription until the subscription is amended or renewed. - Promotions are re-evaluated when a subscription is amended or renewed. Promotions are applied only if they're active and eligible at the time of amendment or renewal. - If `AsIsRenewal` is configured, the subscription renews at the original purchase price, and promotions aren't re-evaluated. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important With discount tiers, a buyer can qualify for a higher discount by purchasing a larger quantity and then cancel part of the subscription while retaining the discounted price on the remaining quantity. Implement appropriate business policies and controls to mitigate this risk. ## Post-Order Management for Subscriptions - Subscription orders create an order action only for products with Evergreen or Term Defined selling model type. - After a subscription order has been placed, the subscription has a Processing status on the Order Summary page until an asset is created, which can delay the status changing to Processed. - After a shopper cancels their subscription in their account, the subscription status doesn’t change on the Order Summary page. - If an order containing a subscription is reordered, the subscription is added to the cart with the current date as the new start date and the original term selected. - You can change the label of the Process Exception picklist category, but don’t change the API name. Changing the Process Exception API name can affect the status of subscription products on the Order Detail page. ## Subscription Shopping - If a shopper has no active subscriptions, there’s no messaging on a store’s subscription page to provide guidance. - Shoppers aren’t informed of a failed recurring payment. - If a shopper deletes a payment method for an active subscription, the shopper must manually add a new payment method. #### See Also - [Subscription Management](https://help.salesforce.com/s/articleView?id=sales.subscription_management.htm&language=en_US) # Considerations for Working with Multiple Pricing Recipes If your org uses both Revenue Cloud and B2B Commerce, you likely have a Revenue Cloud default pricing recipe and a B2B Commerce default recipe. Note these considerations when managing multiple pricing recipes: - Only one pricing recipe can be set as the org’s default at a time. The pricing procedure uses values and mappings from the default recipe. - Add custom decision tables to the default recipe. B2B pricing procedures use these values without code changes. - B2B pricing procedures use mappings only from the default recipe. To use mappings from non-default recipes, update the pricing procedure code. - Sync decision tables from the Pricing Recipes page to refresh data for a specific recipe. From Setup, in the Quick Find box, enter `Pricing Recipes`, and select **Pricing Recipes**. Locate the recipe, click the arrow icon, and select **Sync**. You can sync active and inactive recipes. # Contact Fields The Contact object is used with the Account object to represent an individual shopper. When not using person accounts, a contact and standard account together represent an individual shopper. When using person accounts, contacts aren’t used for individual shoppers. A business account buyer or shopper always has a contact and a standard account. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Contact object. | Field Label | Description | | --- | --- | | Account Name | The name of the account the contact is assigned to. | | Assistant | The name of the contact’s assistant. | | Asst. Phone | The phone number of the contact’s assistant. | | Birthdate | The birth date of the contact. | | Contact Owner | The owner of the account the contact is assigned to. | | Description | The description of the contact. | | Do Not Call | Indicates that the contact doesn’t want to receive calls. | | Email | The email address for the contact. | | Email Opt Out | Indicates whether the contact has opted out of email (true) or not (false). | | Fax | The fax number for the contact. | | Fax Opt Out | Indicates whether the contact has opted out of receiving faxes (true) or not (false). | | Home Phone | The home phone number for the contact. | | Individual | The ID of the data privacy record associated with the contact. | | Lead Source | The lead source for the contact. | | Mailing Address | The mailing address for the contact. | | Mobile | The mobile phone number for the contact. | | Name | The name of the contact. | | Other Address | The alternate address for the contact. | | Other Phone | The alternate phone number for the contact. | | Phone | The phone number for the contact. | | Reports To | The name of the contact’s supervisor or manager. | | Title | The title of the contact, such as CEO or Vice President. | #### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Content Indexing Not Failing Any More If Content Asset Exceeds Maximum Size The content indexing is no longer failing if a content asset has a searchable text or HTML attribute that exceeds the maximum size for an indexable term, and has autocorrect set to true. Previously, the content asset wasn't indexed properly, and failed. # Contract-Based Pricing for B2B Stores Create custom pricing contracts to offer negotiated prices to buyers. Override standard prices with contract pricing for selected products, so buyers automatically see their agreed rates across the store pages. Use this feature to manage complex pricing scenarios where different customers receive different prices. - **[Considerations for Contract-Based Pricing](https://help.salesforce.com/s/articleView?id=commerce.comm_contract_pricing_considerations.htm&release=264.0.0&type=5)** Review these considerations before you offer contract-based pricing to B2B buyers. - **[Offer Contract-Based Pricing to a B2B Buyer](https://help.salesforce.com/s/articleView?id=commerce.comm_offer_contract_pricing_to_buyer.htm&release=264.0.0&type=5)** Create a contract to define negotiated prices for a specific buyer account. Contracts override standard price book prices, ensuring buyers see their negotiated prices across store pages. - **[Configure Volume-Based Adjustments for Contract Pricing](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_volume_adjustments_contract_pricing.htm&release=264.0.0&type=5)** Offer more savings by applying volume-based discounts on top of contract prices when B2B buyers purchase in larger quantities. Volume-based adjustments apply to both subscription and non-subscription products. - **[Customize Contract Resolution with Apex Hooks](https://help.salesforce.com/s/articleView?id=commerce.comm_resolve_contracts_with_apex_hooks.htm&release=264.0.0&type=5)** When multiple contracts apply to the same product and account, Salesforce selects a contract by matching the account, product, and product selling model, along with the contract currency and effective date. To resolve contracts using your own logic, add custom Apex logic to override the default resolution and select the contract for each product. #### See Also - [Contract-Based Pricing](https://help.salesforce.com/s/articleView?id=ind.pricing_contract_based_pricing.htm&language=en_US) # Control Product Qualification with New System Attribute Control which products can qualify for your promotions. With this option you can prevent a product that already qualified for a higher-ranking promotion from qualifying for your current promotion. This attribute affects class-exclusive promotions only. How: You can set this option in Business Manager or through promotion import. Add tag in respective promotion.xml file. # Control Product Window Visibility Based on Product Attributes In the POS app, the product window offers two options, adding the product to the cart and viewing the Product Display Page (PDP). Using the CMS, you can configure whether or not the product window appears when you scan a product. This is based on conditions you set by using the product’s attributes. To use this feature, your device must meet these requirements. - **Modern POS App Build**: 10.10.1 or later - **Platform Support**: iPhone and iPad - **Offline Support**: Not available 1. In CMS, go to **Apps**. 2. Select the app configuration for which you want to customize the product window.![The app configuration for which to customze the product window in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_prod_visibiity_app_config.png) 3. Select **Edit**. 4. Go to **Modules > Barcode**. 5. Edit the **Display Scanning Modal Based on Product Attributes** setting. 6. Select a **product attribute**, such as **ListPrice**. 7. Select an **operator**, such as **\>=**. 8. Enter a value, such as 100. If the product attribute is set to ListPrice, with operator being >= and a value of 100, the product window is displayed if the scanned product’s list price equals or exceeds 100.![The Display Scanning Modal Based on Product Attributes setting, with ListPrice in the Product Attribute propdown.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_scanning_modal_prod_attributes.png) 9. Select **Set** and then **Save** your changes. 10. Open the POS app and scan a product. If the product’s attributes match the condition, the product window appears, with options to add the product to the cart or view details. If you select **Details**, you're directed to the product's PDP. If the product’s attributes don't match the configuration, you don’t see the product window at all and are directed to the product’s PDP. ![THe Product Scanned window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_prod_window_scanned.jpeg) See also: - [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters.") - [Product Display Page (PDP) Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_pdp.htm&release=264.0.0&type=5 "Create a Product Display Page (PDP) in the layout editor. Unlike the template-based PDP V1, this version lets you customize the page layout.") - [Barcode Scanning with Device Camera](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_barcode_scanning_camera.htm&release=264.0.0&type=5 "Use barcode scanning in the Point of Sale (POS) app to quickly process sales and create a smooth, contactless experience.") # Control Proration Logic for BOGO Promotions and Bonus Products We have added two new preferences in Business Manager to give you more control over the proration logic for BOGO Promotions and Bonus Products. These preferences ensure consistent discount handling and proration across your promotions. **who:** This feature is available to Business Manager users with permissions to update site preferences. **Why:** These new preferences address the need for more flexible and consistent proration logic. They make sure that discounts and proration are handled the same across different APIs and integrations. This helps in maintaining accurate and predictable pricing for your promotions. **How:** To access the new preferences, In Business Manager select **The app icon** | **Merchant Tools** | **Site** | **Site Preferences** | **Order Preferences** | **Order Management Settings**. To control how discounts and proration are handled in your promotions, activate or deactivate the "Prorate BOGO Promotions" and "Include Bonus Products in Proration" preferences. When the proration is activated, discounts are spread across all qualifying and discounted products. If deactivated, discounts apply only to the discounted item. The setting does not affect order-level price proration. The legacy state refers to the behavior before the 25.5 release, where different proration methods were used across various APIs and integrations. Additionally, there's an option to include bonus products in a proration. By default, bonus products with prices higher than zero are included, but merchandisers can exclude them by setting the value to "No". # Control Store Inventory Indexing for Shop the Store Pilot customers using the Shop the Store capability can now control indexing of store inventory data at the site level. Use the indexing on a site feature to select which store inventories are included in search and browse routines. This makes search results more useful for shoppers and improves their experience. **Who:** This feature is available to pilot customers using the Shop the Store capability. **How:** To enable store inventory indexing in Business Manager, select **Merchant Tools** | **Site** | **Search** | **Search Preferences** | **Search Settings** | **Shop the Store for Storefront Search** and select Store Inventory Indexing. # Control When a Commerce Component Is Visible Create dynamic visibility rules to control when a component is visible on the storefront. Use Expression-Based Visibility (EBV) to show and hide storefront components based on ecommerce data-driven conditional expressions. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) For more information see [Expressions-Based Visibility in Enhanced LWR Sites](https://help.salesforce.com/s/articleView?id=experience.exp_cloud_expression_based_visibility.htm&type=5&language=en_US). # Controlling Search, Facet, and Display Behavior for Fields in a B2B Commerce Store Standard fields and custom field types have characteristics that affect whether you can control the behavior of search, facet, and display. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[How Behaviors Are Controlled](https://help.salesforce.com/s/articleView?id=commerce.comm_search_behavior_how.htm&release=264.0.0&type=5)** Each product in your B2B Commerce store is a record of the Product2 object. Use the Product2 object fields to control the behavior of sort, search, facet, and display. All Product2 standard fields are available to all products in your store. If you add custom fields to the Product2 object, those fields are also available to all store products. - **[Controlling Standard Product Fields for Search in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_behavior_standard.htm&release=264.0.0&type=5)** Product and product category standard fields have characteristics that affect whether you can control a field’s searchable, facetable, displayable, and sortable behavior. You can use these characteristics to make it easier for customers to discover products when they search your store. - **[Product Custom Fields in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_behavior_custom.htm&release=264.0.0&type=5)** Custom fields have characteristics that affect whether you can control the field’s searchable, facetable, displayable, and sortable behavior. - **[Modify or Remove Searchable Custom Fields](https://help.salesforce.com/s/articleView?id=commerce.comm_search_custom_field_mod.htm&release=264.0.0&type=5)** Before renaming or deleting a custom field that is configured as searchable in your B2B store, mark it as not searchable, and remove it from Results Filters, Sort Rules, and Displayable Fields. # Controlling Standard Product Fields for Search in a B2B Commerce Store Product and product category standard fields have characteristics that affect whether you can control a field’s searchable, facetable, displayable, and sortable behavior. You can use these characteristics to make it easier for customers to discover products when they search your store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Product standard fields have these characteristics.
Product Standard Field Name Field Label Searchable Behavior Facetable Behavior Displayable Behavior Sortable Behavior
CreatedDate Created Date      
check mark
CurrencyIsoCode Product Currency        
Description Product Description
check mark
 
check mark
 
DisplayUrl Display URL
check mark
     
Family Product Family
check mark
check mark
check mark
check mark
Name Product Name
check mark
 
check mark
check mark
ProductCode Product Code
check mark
 
check mark
check mark
QuantityUnitOfMeasure Quantity Unit of Measure
check mark
check mark
 
check mark
StockKeepingUnit Product SKU
check mark
 
check mark
check mark
Product category standard fields have these characteristics.
Product Category Standard Field Name Field Label Searchable Behavior Facetable Behavior Displayable Behavior Sortable Behavior
Description Category Description    
check mark
 
Id Category ID  
check mark
   
Name Category Name
check mark
 
check mark
 
#### See Also - [How Behaviors Are Controlled](https://help.salesforce.com/s/articleView?id=commerce.comm_search_behavior_how.htm&release=264.0.0&type=5 "Each product in your B2B Commerce store is a record of the Product2 object. Use the Product2 object fields to control the behavior of sort, search, facet, and display. All Product2 standard fields are available to all products in your store. If you add custom fields to the Product2 object, those fields are also available to all store products.") - [Product Custom Fields in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_behavior_custom.htm&release=264.0.0&type=5 "Custom fields have characteristics that affect whether you can control the field’s searchable, facetable, displayable, and sortable behavior.") - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") # Cookie Names with Invalid Characters in Custom Code Cause Errors Our servlet container is now upgraded to implement Java Servlet specification 4.0, which has stricter rules for cookie names. Any use of invalid characters in a cookie name, as described in RFC6265, which references RFC2068, now causes an exception. How: To avoid the exception, in custom code, an invalid cookie name passed to the constructor `dw.web.Cookie` is now replaced by the underscore character. An error message is logged that shows the original cookie name and the sanitized name with the underscore characters. Rework any custom code that results in invalid cookie names, since the server also drops incoming request cookies that include invalid characters. The invalid cookie never reaches the server as an incoming request. #### See Also - [Java Servlet 4.0 Specification](https://download.oracle.com/otndocs/jcp/servlet-4-final-spec/index.html) # Copy an App Config Copy a Point of Sale app config to create a new version while maintaining the same layout references, ensuring that any layout changes affect both configs. This method streamlines app configuration management and reduces redundancy. Understanding Layout References App configs can and frequently do point to the same layout. Let's say you copy a production app config. The copied config still points to the production home layout. So changes to this layout are visible in both configs. Be careful. ## Copy and Create Create a copy of an existing app config 1. In CMS, go to **Apps** | **All**. 2. Hover over a config and click the Copy icon ## Overwrite Import all of the settings from one app config into another app config. This feature allows you to import all of the settings from another app (i.e., mobile config) into the current app. After saving, all of the settings in your current app will be overwritten. 1. In CMS, go to **Apps** | **All** | **your app config**. 2. Hover over the config and click **EDIT.** 3. Click **IMPORT**. 4. Select an app config from the dropdown. 5. Click **IMPORT**. 6. Click **SAVE**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This method does not create a copy of layouts rather, it copies layout references. # Copy App Configs Copy and compare Point of Sale artifacts and app configurations. - **[Copy Tools](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy_tools.htm&release=264.0.0&type=5)** Migrate App Configs, Layouts, and Field Mappings across environments and locales with the Point of Sale Copy Tools. Export from your current merchant/locale and import seamlessly to any other, but avoid using between single-language and multilanguage accounts to prevent bugs and unintended side effects. - **[Copy an App Config](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy_config.htm&release=264.0.0&type=5)** Copy a Point of Sale app config to create a new version while maintaining the same layout references, ensuring that any layout changes affect both configs. This method streamlines app configuration management and reduces redundancy. # Copy Categories to Multiple Catalogs Now Supported You can now copy a category to any catalog. Previously, you could only copy a category into the catalog where it originated. # Copy Components in Page Designer Create components once and reuse them across multiple pages by copying up to 10 components. You can paste a copied component into any region or component that accepts it. Copying components helps ensure consistent site-wide experiences when building Page Designer pages. **Where:** This feature applies to B2C Commerce. **How:** From the Page Designer Visual Editor, select the component you want to copy. In the right pane, click the dropdown menu next to the component name and select **Copy Component.** To paste the component, select a page and open the Page Structure window. In the Page Structure window, click the plus sign for a region or component to open the Components window. If the component can be pasted at the selected location, it's listed in the **COPIED COMPONENTS** section. ![Components Window Showing COPIED COMPONENTS Section](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_10/b2c_rn_25_10_page_designer_copied_components.png) #### See Also - [Copy Components in Page Designer](https://help.salesforce.com/s/articleView?id=cc.b2c_page_designer_copy_components.htm&language=en_US) # Copy Multilanguage artifacts Multilanguage support allows users to import app configs, email templates, layouts, and reason codes in different languages, enhancing global brand consistency. Other artifacts default to the primary language, ensuring seamless integration. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important It isn't recommended to use this feature between a merchant account configured for one language and one configured for multilanguage. Such use may cause bugs and unintended side effects. ## Import a bundle in a different language 1. In CMS, go to **Advanced** | **Copy Tools** | **Import**. 2. Search for the exported bundle using the filters. 3. Click **Search**. 4. Select the bundle(s) you want to import. 5. Select the language you want to import the artifacts in using the language picker.![A screenshot shows the language picker for a selected bundle.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_copy_multilanguage.png) 6. Click **Import**. ## View artifact(s) in a specified language 1. In CMS, go to **Advanced** | **Copy Tools** | **Export**. 2. Under Artifacts, click + Add and select a resource. 3. Toggle the languages with the language picker. Selecting a language displays artifacts that are set in that language. For example, selecting French (FR) displays artifacts in the French language. # Copy Point of Sale Artifacts Efficiently copy Point of Sale artifacts between environments using the CMS Copy Tools. Export and import artifacts with ease, ensuring seamless content management and deployment. 1. In the CMS, go to **Advanced** | **Copy Tools**. 2. To create an export bundle, click **Export**. 3. Fill out the fields and click **CREATE**.![A screenshot shows the export specification dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_copy_artifacts_bundle_details.png) 4. Go to the appropriate staging environment you want to import into. 5. In the CMS, go to **Advanced** | **Copy Tools**. 6. Click **Import**, fill out the search filter to find your export bundle, and click **SEARCH**. 7. Once you've found your export bundle, click the check-mark box. 8. (Optional) To import artifacts individually, expand the bundle, click the ellipsis (three vertical dots), and click **Import this artifact**.![A screenshot of the bundle list search shows the option to import individual artifact.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_copy_artifacts_individual_export.png) 9. Click **IMPORT**. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Use the down arrow next to your export to show the contents. Doing this helps verify that it's the correct export bundle to import. # Copy Special Forms on POS App Add a copy button to your custom order layout in the POS app to quickly duplicate forms. Tapping the button creates a new form with all original input values, which can be edited and is automatically added to the cart. This feature streamlines order management for store associates, especially for similar items. - Modern POS App Build: 10.0.1 or greater - Platform Support: iPhone & iPad - Offline Support: No ## Configure Custom Order Layout Add a copy button to your custom order layout. 1. Create a custom order layout. For detailed instructions on how to do this, refer to [Create Custom Orders on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_orders_configure.htm&release=264.0.0&type=5 "Point of Sale allows you to create orders for custom-made items by capturing product attributes through a layout. A new product is created at runtime in Point of Sale. You can create a custom order from a basic part or product to add specific fabrics, textures, and styles. Creating custom orders helps to deliver a personalized and unique product for each customer."). 2. On the layout, add a button using the right toolbar. Go to **Cell Content** | **Form Element** | **Button**. 3. Under Button Text, input the text that will appear on the button in the POS app (for example, "Copy Form"). 4. Under Button Action, select **Copy Not on File Product Form**. 5. Adjust any additional fields as needed to suit your requirements. 6. Save your changes. ## Test the copy button 1. On the cart screen, tap the Custom Order deep link to launch the custom order layout. Complete the required fields and save your entries. The completed form will automatically be added to your cart. ![Modern POS app screen showing a special order form](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_form_copy_order.png) 2. To copy the form, tap View & Edit under the item. This will open the form, pre-filled with the previously entered values, which you can edit as needed. ![Modern POS app cart highlighting the view and edit option under an order line.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_form_copy_order_in_cart.png) 3. Next, tap the copy button. A message confirming a successful copy will appear at the top of the screen. ![Modern POS order line showing the copy button.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_form_copy_order_to_copy.png) 4. Save your changes to add the copied form to the cart. ![Modern POS showing a copied order line added to the cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_form_copy_copied_order_in_cart.png) # Copy Tool Features The Point of Sale Copy Tools offer robust import and export capabilities, enabling users to efficiently manage and duplicate a wide range of artifacts. Users can easily create accurate copies, streamlining their workflow and ensuring consistency across projects. ## Export Export Name The name of your export bundle. For example Receipt Layout Feature. Export Description The description of your export bundle. For example All the layouts and settings to enable receipt layouts.  Artifacts The artifacts to be added to your export bundle. ## Import Environment The environment of the export bundle. Export Name The name of the export bundle. This is case-sensitive.  Locale/Region \* The locale/region of the export bundle.  ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The asterisk denotes a required field.  ## Artifacts That Can Be Copied Find details of the artifacts that can be copied and information on how they are copied. ### App Configs The Copy Tools create an app config. However, the token is removed and active platforms reset. This is to avoid confusion if you've an app config with the same token or an app config that's designated as the active one. To make the new config active, manually configure it. ![A screenshot highlights the token field and active platforms for a app configuration.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_copy_features_artifacts_app_config.png) ### Email Templates The Copy Tools overwrites email templates with the same ID. Otherwise, it creates new ones. ### Export Field Mappings / Field Mappings The Copy Tools overwrites however, you won't see the changes until the next feed is run. To see the changes immediately, manually upload the feed. Otherwise, you see the changes on the next scheduled upload. ### Layouts The Copy Tools either creates or replaces a layout, depending on the layout ID. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip The Layout ID can be found in the URL. For example, in https://labs.predictspring.com/cms/layout/edit/1fbce906-7278-447b-bb05-73b0ca0b25e2 the ID is 1fbce906-7278-447b-bb05-73b0ca0b25e2.![A screenshot highlights the location of the layout ID in its URL.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_copy_features_artifacts_layout_id.png) If you import a layout and the ID doesn't exist on your destination, a layout is created with that same ID. If you import a layout and the ID exists on your destination, then it overwrites it. However, for Content Layouts, it replaces it and creates a new draft and publishes it so that the imported layout is live immediately. ![A screenshot show a new layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_copy_features_artifacts_content_layout.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Quizzes are layout-based, so can be copied. ### Offline Configurations The Copy Tools replaces the settings. ### Order Number Range Configurations The Copy Tools replaces the settings. ### Product Class The Copy Tools replaces the settings. ### Promotions The Copy Tools creates promotions with new IDs. ### Reason Codes The Copy Tools overwrites reason codes with the same ID. Otherwise, it create new ones. ### Return Policies The Copy Tools overwrites return policies with the same ID. Otherwise, it creates new ones. ### Scheduled Uploads Using the Copy Tools overwrites the scheduled uploads with the same ID. Otherwise, it creates a new one. ### Search Configs The Copy Tools creates a search config, however, it is set to inactive. Manually configure it to make it active. ![A screenshot shows a copied search configuration.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_configs_copy_features_artifacts_search.png) ### Store Settings The Copy Tools overwrites the store settings on import. # Copy Tools Migrate App Configs, Layouts, and Field Mappings across environments and locales with the Point of Sale Copy Tools. Export from your current merchant/locale and import seamlessly to any other, but avoid using between single-language and multilanguage accounts to prevent bugs and unintended side effects. The Copy Tools feature allows artifacts, i.e., App Configs, Layouts, and Field Mappings to migrate across different environments and different regions/locale combinations of merchant accounts. This feature also works as an export and import feature. What this means is that you can export from your source destinations with the source being the current merchant/locale you're logged in as. Then, you can simply import the source to any environment, region, and locale. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important It isn't recommended to use this feature between a merchant account configured for one language and one configured for multilanguage. Such use may cause bugs and unintended side effects. - **[Copy Point of Sale Artifacts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy_artifacts.htm&release=264.0.0&type=5)** Efficiently copy Point of Sale artifacts between environments using the CMS Copy Tools. Export and import artifacts with ease, ensuring seamless content management and deployment. - **[Copy Tool Features](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy_features.htm&release=264.0.0&type=5)** The Point of Sale Copy Tools offer robust import and export capabilities, enabling users to efficiently manage and duplicate a wide range of artifacts. Users can easily create accurate copies, streamlining their workflow and ensuring consistency across projects. - **[Compare Point of Sale Artifacts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy_compare.htm&release=264.0.0&type=5)** Diff Tools help you quickly identify configuration discrepancies between environments, ensuring accurate artifact imports and streamlined debugging processes. By pinpointing differences, you can verify the integrity of your deployments and resolve issues more efficiently. - **[Copy Multilanguage artifacts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy_multilanguage.htm&release=264.0.0&type=5)** Multilanguage support allows users to import app configs, email templates, layouts, and reason codes in different languages, enhancing global brand consistency. Other artifacts default to the primary language, ensuring seamless integration. - **[Copy Tools Use Case Scenarios](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy_use_cases.htm&release=264.0.0&type=5)** Use the Point of Sale Copy Tools to reset app configurations and restore settings in your test environment. Import bundles with multi-language support to update app configs and layouts, while field mappings are imported in the default language. - **[Copy Tools Known Issues & Restrictions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy_issues.htm&release=264.0.0&type=5)** Point of Sale Copy Tools operate on a user-specific basis, e.g., any Product Bundles you create are only visible to you. Other users are unable to view or access these Product Bundles generated when using Copy Tools. # Copy Tools Known Issues & Restrictions Point of Sale Copy Tools operate on a user-specific basis, e.g., any Product Bundles you create are only visible to you. Other users are unable to view or access these Product Bundles generated when using Copy Tools. # Copy Tools Use Case Scenarios Use the Point of Sale Copy Tools to reset app configurations and restore settings in your test environment. Import bundles with multi-language support to update app configs and layouts, while field mappings are imported in the default language. ## Resetting Settings The Copy Tools is a handy feature that primarily works to migrate artifacts across different environments, regions, and locales. However, another important use case of this feature is restoring your settings back to normal. Let's say you've broken an app config by accidentally making changes to your test environment. By using the Copy Tools, you can import to restore everything back to normal. ## Importing Bundles with Multi-Language If you've created an exported bundle that includes app configs, layouts, and field mappings. When you import the bundle in a different language using the language picker, the app configs and the layouts will be imported in the specified language. However, since field mappings do not have multi-language capability, field mappings will be imported in the default language. # Coupon Stacking on Order Promotions We've introduced a new promotion preference that controls whether multiple coupon codes can stack in a single order promotion. This setting impacts monetary discounts only. The preference defaults to prevent coupon stacking. # Create a Black Book Create preferred customer list in the POS app. 1. Tap the **Black Book deep link** in the app. 2. Tap the **plus sign (+)** in the upper right corner. 3. In the dialog box that appears, provide a name for the black book. 4. Tap **Create**. ![The Create Black Book window in the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_create_black_book.png) # Create a Buyer for a B2B Store from a Person Account One way to add a buyer is to enable a person account as a buyer account and a customer user. The individual identified in the person account has access to stores related to the account’s buyer group. When you enable a person account as a buyer, you can't convert the person account to a business account. You also can't merge the account with other accounts. To merge or convert the account, you must disable it as a buyer, merge or convert the account, and then reenable it as a buyer. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) You can also create a buyer account in your Customer workspace. See [Use the Customer Workspace to Add a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_from_cust_wkspc.htm&release=264.0.0&type=5 "The simplest way to add a buyer is to create the buyer account from the Customer workspace."). . 1. In the App Launcher, find and select **Accounts**. Make sure that person accounts are enabled for your org. See [Enable Person Accounts for Commerce](https://help.salesforce.com/s/articleView?id=commerce.commerce_enable_person_accounts.htm&release=264.0.0&type=5 "Person accounts are required for D2C stores, which use them to represent shoppers who visit the store and purchase products. Person accounts are optional for B2B stores, which typically use business accounts that include multiple buyers. You can either set up person accounts through the automated process from the Commerce Setup Assistant setup page or manually. This topic describes the steps to use to enable person accounts manually, without using Commerce Setup Assistant."). 2. Click **New**. 3. If you’re given an option of what kind of account to create, select **Person Account**, and click **Next**. 4. Enter the account information, and click **Save**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important In the Account Currency dropdown, select the preferred currency. If you don’t choose an account currency, or if you choose a currency that a store doesn’t support, the buyers see prices in the store’s default currency. If you change the account currency, buyers’ in-progress carts are cleared. 5. From the Actions dropdown, select **Enable as Buyer**. If you ever disable the account as a buyer, any associations the account has with buyer groups are deleted. 6. From the Actions dropdown, select **Enable Customer User**. 7. Enter the buyer’s username, email, and nickname. 8. Select the license, profile, and permission set. The permission set determines the level of access that the buyer has to the store. See [Permission Sets for Buyers, Buyer Managers, and Account Switchers for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.commerce_buyer_and_buyer_mgr_perm_sets.htm&release=264.0.0&type=5 "Manage access to your commerce store's features and data by using the preconfigured permission sets for buyers, buyer managers, and account switchers."). 9. Click **Save**. #### See Also - [Configure a Business Account as a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_accounts.htm&release=264.0.0&type=5 "Create a business account and then enable it as a buyer account. Add contacts to the buyer account and enable the contacts as customer users.") - [Add Accounts to a Buyer Group for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_add_buyer_accounts_to_buyer_group.htm&release=264.0.0&type=5 "To give multiple accounts access to the same store, price books, and entitlements, create a buyer group and add the accounts.") - [Associate a Buyer Group with a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups.htm&release=264.0.0&type=5 "Product prices and the products that buyers can access depend on the price books and the entitlement policies assigned to the buyer group. When you create a store, a default buyer group is assigned to the store.") - [Use the Customer Workspace to Add a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_from_cust_wkspc.htm&release=264.0.0&type=5 "The simplest way to add a buyer is to create the buyer account from the Customer workspace.") # Create a Buyer Group Based on a Data Segment Personalize your customers’ shopping experience by combining the power of Data 360 segments and Commerce buyer groups. Build a targeted customer group using Data 360 segments and associate it with a Commerce buyer group. You can then deliver personalized promotions and content that directly caters to customer needs and interests. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Deploy Commerce B2B data bundles in your org. See [Commerce Data Bundle Mappings](https://help.salesforce.com/s/articleView?id=data.c360_a_crm_data_mappings_commerce_cloud.htm&language=en_US). Before you begin, [set up Data 360 for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_datacloud_commerce_setup_b2b_d2c.htm&language=en_US). 1. In the App Launcher, find and select Data 360, and then create and publish a data segment by applying filters to capture the data you need. You need Data 360 Admin access to complete this step. For example, you can use the Sales Order data model object filters to create a data segment of customers who made at least one high-value purchase in the past year. See [Create a Segment in Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_create_a_segment.htm&language=en_US). 2. If your org is using a version before Summer ’24, add the Data 360 Segment component to the Buyer Group page. 1. At the top of the page, click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Edit Page**. 2. Drag the Data Cloud Segment component to the Related Lists section. 3. Save your changes and activate the page. 3. Create a buyer group. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Customers** | **Buyer Groups**. 3. Click **New**. 4. Enter the information, and for the role, select Data 360 Segments. ![Create a New Buyer Group](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_create_buyer_group_data_cloud_segment.png) 5. Click **Save**. 6. In the Related section, under Data 360 Segments, click **Assign**. 7. In the Assign Data 360 segments window, select one or more data segments, and click **Assign**. ![Assign Segments](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_assign_data_cloud_segments.png) You can now create targeted promotion campaigns and associate them to the segmented buyer group. See [Add a Promotion Segment](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_assign.htm&language=en_US). You can also create targeted content on your storefront and make it visible only to the specific buyer group. To configure dynamic visibility rules for storefront components, see [Control When a Component Is Visible](https://help.salesforce.com/s/articleView?id=commerce.comm_expressions_visibility.htm&language=en_US). #### See Also - [Add Accounts to a Buyer Group for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_add_buyer_accounts_to_buyer_group.htm&release=264.0.0&type=5 "To give multiple accounts access to the same store, price books, and entitlements, create a buyer group and add the accounts.") # Create a Buyer Group or Store Price Book for B2B Commerce Stores To display prices to your customers, create a buyer group or store price book. You can assign a price book to buyer groups, stores, or both, but you must have at least one. When you assign a price book to a store, any customer who can access the store is eligible for prices within that price book. When you assign a price book to a buyer group, the accounts associated with that buyer group are eligible for prices within that price book. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) A store price book is useful for a broad range of users because it sets pricing for the entire store. In contrast, a buyer group price book applies to only the buyer group that it’s assigned to. If a buyer user belongs to multiple buyer groups, it’s possible for that user to have multiple price books assigned to them. However, a buyer group must be assigned to the store where the price book appears for the buyers to see pricing in that price book. For guidance on different ways to set up store or buyer group price books for your B2B store, see [Strategies for Buyer Groups, Entitlements, and Price Books for B2B stores](https://help.salesforce.com/s/articleView?id=commerce.comm_buyergroup_entitlements_pricebooks.htm&release=264.0.0&type=5 "Set up buyer groups, entitlements, and price books to customize product visibility and pricing for each buyer in your store. Here are three examples of strategies you can consider for your store."). 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Pricing**. 3. Click **New**. 4. Give your price book a name. 5. Optionally, add a description and set a valid time period. 6. Select **Active**, and then click **Save**. 7. From your new price book, select the **Related** tab. 8. In the Buyer Groups and Stores sections, click **Assign** and select the buyer groups or stores that you want to assign the price book to. 9. Save your changes. #### See Also - [Pricing for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricebooks.htm&release=264.0.0&type=5 "You can set up pricing for your B2B store by configuring a standard strategy and pricing procedure, or enable advanced pricing for more complex pricing use cases.") # Create a Buyer Manager Profile Menu for B2B Stores You might not want buyers to have access to the same user profile menu items as your buyer managers. In Experience Builder, you can create a separate user profile menu for buyer managers and edit the default profile to apply just to buyers. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, under Settings, click **Navigation**. 4. Click **Add Navigation Menu**. 5. Add a name and the menu items, and then click **Save Menu**. 6. In the store header, click **Profile Menu**. In B2B stores created with the Aura template, the component is called Customizable User Profile Menu component. 7. From the Authenticated User Menu dropdown, select **Edit Default User Profile Menu**. 8. Remove the menu items that you don’t want buyers to see, and click **Save Menu**. 9. Click **Personalize**, and assign the buyer manager profile menu to the buyer manager audience. #### See Also - [Customize the Profile Menu in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_user_profile_menu.htm&release=264.0.0&type=5 "In Experience Builder, you can define how you want your user profile menu to appear, including using company names and logos.") # Create a Catalog and Assign It to a Store Before you can make products available to buyers and shoppers, your B2B Commerce store must have a catalog. A catalog is the entire collection of products that you offer through your store. When you create a store, a default catalog is assigned to the store. You can use the default catalog or assign a different catalog to the store. You can assign a catalog to more than one store, but a store can have only one catalog at a time. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the App Launcher, find and select **Catalogs**. 2. Click **New**. 3. Enter a name for your catalog, and click **Save**. 4. To assign the catalog to a store, on the catalog’s Stores tab, click **Assign Store**. 5. Search for and select a store. 6. Click **Save**. #### See Also - [Categorize Products for Discoverability in Your B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_structure.htm&release=264.0.0&type=5 "Categories make products easier to discover in searches and through navigation. Build a category structure that shows product relationships and makes products easier to find. When you create a store, a default catalog with one Products category is assigned to the store.") # Create a Category Browse Deep Link Automate your category navigation with Point of Sale's category browse feature. Set your preferred UI in the CMS, and let the system dynamically generate and update category pages based on your feed structure, saving you time and effort. - For this feature to work, your categories need to be set to 'product\_type'. - Your field must show the full category tree. For example, Beauty > Make Up > Blush or Beauty > Make Up > Blush|New Arrivals > Beauty. 1. Go to **CRM** > **Layouts** > **Category Layouts**. 2. Create a new category layout. 3. Decide if you want: 1. Images for category names (for example, View All, Earrings...) 2. Arrows for category names 3. Hero images above category names 4. Hero image only on the first category level (for example, Jewelry, Clothing, Accessories) 5. Customize the font 6. Separator width and color 7. Cell padding, margin and background color 4. Once you've saved, go to **UI & Features** > **Features** and enable **Category Browse**. 5. Go to **UI & Features** > **Layout** and select the layout you created in the Category Layout section. 6. In Layouts and Menus, as desired, add a deep link to Category Browse. When you select Category Browse, if you selected to have a hero image in the category browse, you will get the option to pick the image you want to be displayed. 7. Save your changes. 8. Stop your app, restart, and test. # Create a Category Layout Learn how to design a visually engaging category page in Point of Sale that contains six images and product search deep links. Before going through this article, it is recommended that you read the related articles. - For information on defining the content and behavior of cells, refer to [Cell Configuration in Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_cell_config.htm&release=264.0.0&type=5 "Learn about the different ways that cells can be configured in Point of Sale layouts with content and interactive behavior."). - For information on how to create and edit rows and cells within a layout, refer to [Layout Editor](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_editor.htm&release=264.0.0&type=5 "Easily manage and customize your layout in Point of Sale with powerful editing tools. Add, insert, resize, and delete rows and cells, and adjust cell padding for precise control. Enhance user experience with features like Paginate for full-screen views, override app config settings for tailored UI options, and Snap to Grid for accurate overlay alignment."). - For information on creating and publishing layouts, refer to [Create and Publish Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_process.htm&release=264.0.0&type=5 "Learn how to create and publish layouts using the Point of Sale Layout Editor, including starting from a blank layout or a template, and managing live versions, drafts, and scheduling. Discover how to edit, save, publish, and restore layouts, ensuring your content is always up-to-date and tailored to your needs."). Once you've successfully created the following layouts, head over to Layouts - Home Layout Walkthrough, in which we will talk about creating a home page layout that has a GIF, a text overlay, an image with padding, and a carousel. ![The Point of Sale app category screen showing six category tiles and the toolbar.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_category_outcome.png) ## Step 1: Create a Blank Layout 1. Click **LAYOUT PAGES** from the CMS homepage or go to **Layout Pages** | **All Layouts**. 2. Click **Add Blank Template**. 3. Enter a mame for the layout in the toolbar. ## Step 2: Upload the Images 1. Download and unzip the images attached to the end of the article. Alternatively, you can use your own images. 2. Double-click the blank cell to launch the Media Library. 3. Click the Create New Folder icon in the top left of the Media Library. 4. Enter a name and press the Save icon. 5. Drag the images from your desktop folder onto the Media Library window. ## Step 3: Add the First Category Image 1. Select one of the images. 2. Click **SELECT ASSET**. 3. Hover over the cell and click the Vertical Split icon in the top right of the cell. 4. Select the image. 5. Expand Cell Operations. 6. Click **Resize to fit media**.Here is what your layout should look like so far:![The layout editor showing one category tile.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_category_step3.png) ## Step 4: Add the Second Category Image 1. Double-click the blank cell. 2. Select another image and click **SELECT ASSET**. This time we won't need to resize the image. ## Step 5: Set the Product Search Deeplinks 1. Select the first image. 2. Click **Deep link** in the toolbar. 3. Select **Product Search**. 4. (Optional) Enter a Search Query. 5. Click **SET**. 6. Repeat steps 1 - 5 with the second image. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Notice the three dots next to Media and Deep link. This indicates that the selected cell has been configured with images and a deep link.![The layout, editor showing two category tiles with the toolbox and three dots displayed against media and deep link options](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_category_step5.png) ## Step 6: Copy the First Row 1. Hover over the row and click the Copy icon. 2. Click **ADD BOTTOM ROW**. 3. Select the bottom row and press cmd + v. Now we have two identical rows that contain the same images and deep links. ## Step 7: Change the Images and Deeplinks 1. Double-click an image in the second row. 2. Select a different category image. 3. Click **SELECT DEEP LINK**. 4. (Optional) Change the Search Query. 5. Click **SET DEEP LINK**. 6. Repeat steps 1 - 5 with the other image. ## Step 8: Create the Third Row Repeat steps 7 and 8 to create a third row. ## Step 9: Publish the Layout Click **SAVE** Sample images: [Bottom-left](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/bottom-left.png), [Bottom-right](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/bottom-right.png), [Middle-left](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/middle-left.png), [Middle-right](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/middle-right.png), [Top-left](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/top-left.png), [Top-right](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/top-right.png), # Create a Checkout Quiz To collect additional information related to an order in the POS app during checkout, create quizzes that appear either just before tendering payment or just after an order is placed. - Modern POS App build: 8.7.1 or above - Platform Support: iPhone & iPad - Offline Support: No - Technical Prerequisites: - For the Checkout Quiz to appear, a quiz must be created and set as the CheckoutQuizLayout in the CMS for the build in question. - For the Order Success Quiz to appear, a quiz must be created and set as the OrderSuccessQuizLayout in the CMS for the build in question. The two quiz layout types that can be used for this are: - Quiz Prior to Checkout Layout - shown just before tendering. - Quiz After Order Layout - shown just after a successful order. After [creating a quiz](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_create.htm&release=264.0.0&type=5 "Use quizzes in Point of Sale to understand your customers' preferences and gather valuable data. Create engaging quizzes, forms, or polls to capture user feedback and information. Add surveys after successful checkouts and include mandatory questions to ensure you get the data you need. You can create quizzes that will allow users to answer a question and see the results of the poll in real-time after submitting their answer.") on the CMS, it may be assigned to either the Quiz Prior to Checkout Layout or the Quiz Prior to Checkout Layout for a given app configuration from the UI > Quiz Layouts section.![A quiz assigned to a checkout option in CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_quizzes_checkout_cms.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Configure either before or after but not both the before and after layouts. #### See Also - [_Salesforce Help:_ Create a Quiz](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_create.htm&release=264.0.0&type=5 "Use quizzes in Point of Sale to understand your customers' preferences and gather valuable data. Create engaging quizzes, forms, or polls to capture user feedback and information. Add surveys after successful checkouts and include mandatory questions to ensure you get the data you need. You can create quizzes that will allow users to answer a question and see the results of the poll in real-time after submitting their answer.") ## POS Behavior Learn about how checkout quizzes work in the POS app. ### Quiz Prior to Checkout Layout When a Quiz Prior to Checkout Layout is set from the CMS, it will be shown in an interstitial anytime the user attempts to tender payment on a new cart. Once the quiz has been completed for a given cart, it will not be shown again until a new cart is created. The user may dismiss this interstitial when it is shown, but once tendering is initiated again, the quiz will be shown again. ![A checkout screen in the POS displaying a pre-checkout quiz](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_quizzes_checkout_before.png) ### Quiz After Order Layout If an app config has a Quiz After Order Layout set from the CMS, it will be shown in an interstitial on the right when the order success screen is shown for each successful order. The user may dismiss this interstitial without completing the quiz. ![A checkout screen in the POS displaying a post-checkout quiz](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_quizzes_checkout_after.png) ## Known Issues & Restrictions These are the known issues and restrictions with checkout quizzes. - Once a question for one of these quizzes is updated from the CMS, all the quiz layouts with the quiz question linked must then be re-saved in the CMS for the question changes to appear in the app. # Create a CMS Workspace to Import Images to a Commerce Store When you use a CSV file to import images, you must specify a CMS workspace where the imported images are linked. If you don’t have a CMS workspace, create one before you begin the import process. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note The default language for the CMS workspace is set to the default language of the org. If Translation Workbench is enabled and there are supported languages configured for Translation Workbench, the default language of the CMS is set to the first supported language. You can add other languages to the CMS workspace, but you can’t change the default language after the workspace is created. 1. From the App Launcher, select **CMS Workspaces**. 2. Click **Add Workspace**. 3. Enter a name and description for your workspace, and click **Next**. 4. (Optional) Add a channel to a store by selecting it from the list, and click **Next**. To use images from the CMS in a store, there must be a channel from the CMS workspace to the store. You can go back later and add channels to stores. 5. Select contributors from the list, and click **Next**. We recommend adding the Commerce Admin and Merchandiser users as contributors. 6. Select a role for each user type, and click **Next**. 7. Select a language for your translated content and move it from the Available list to the Selected list. 8. Select a default language, and click **Next**. 9. Click **Done**. #### See Also - [Add Your External Image Host as a Trusted Site](https://help.salesforce.com/s/articleView?id=commerce.comm_add_host_for_images_as_trusted_site.htm&release=264.0.0&type=5 "So that your B2B stores can access your product images, add the external host where those images are stored as a Trusted URL.") - [Image Import for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_import_images.htm&release=264.0.0&type=5 "Product images and attachments that customers see when visiting your store are typically linked to a Salesforce CMS workspace. Usually the images are stored on a host external to Salesforce. You can configure the external host as a trusted site for your org. If you don’t have a CMS workspace, create one before beginning the import.") # Create a Coupon for a B2B Store from Within the Guided Workflow Create coupons that customers can redeem. The coupon has the same discount and qualifier rules as the promotion that it’s associated with. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before beginning these steps, complete the steps in [Create a Promotion Using the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_template.htm&release=264.0.0&type=5 "Draft a promotion with products and categories from your B2B store.")or [Create a Promotion Using the Guided Workflow with Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_smart.htm&release=264.0.0&type=5 "Draft a promotion for your B2B store with just a few clicks by using Einstein and Commerce data. Quickly create basic and advanced promotions using natural language instructions and generative AI.") 1. In the promotion’s guided workflow, next to the coupon section, click **Add**. 2. Enter a coupon code. This code is what customers use to redeem the promotion. A customer can add up to five coupons per cart. 3. (Optional) Enter a description that customers don’t see. 4. Use the Status dropdown to set the coupon as active or inactive. 5. (Optional) Enter a redemption limit per buyer or the maximum number of uses across all buyers up to 1000 for both fields. You can apply both conditions. When the coupon meets your specified limit, it’s no longer valid. After you create the coupon, you can’t decrease the redemption limit. If you create the coupon without a limit, any change to the redemption limit is considered a decrease. To change the limit, delete and recreate the coupon. 6. (Optional) Enter the start and end dates. 7. Save your changes. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example With your Black Friday promotion, you want to create a coupon code called 20OFF that a limited number of customers can redeem manually days prior and through the biggest shopping day of the year. - Enter 20OFF for the Coupon Code and Black Friday as the associated promotion. - Set the status to **Active**. - Enter 100 as the redemption limit for all buyers and 3 as the redemption limit per buyer. - Enter 11/15/2023 at 12:00 AM as the start date and time and 11/25/23 at 12:00 AM as the end date and time. # Create a Custom Routing Rule Custom rules modify routing by selecting locations based on any standard or custom attribute available on Order Management objects. Custom rules can filter out locations or select an ideal location by calculating condition-based scores. ### Required Editions
View supported editions.
Before beginning this task, make sure the [Order Fulfillment Setup section](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5 "The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS).") is enabled. Then, make sure you’ve [created at least one rule group](https://help.salesforce.com/s/articleView?id=commerce.om_new_rule_group.htm&release=264.0.0&type=5 "Control Order Management routing by creating and publishing groups of templated or custom rules."). 1. In the Rule Management tab of Order Fulfillment Setup, find and expand your rule group as needed. You can’t add a rule to a published rule group. 2. In the group’s action menu, click **New Rule**. 3. Name your rule. 4. Select a rule type. A filter type directly excludes locations. A weighted type considers all rule weights and selects the best location. 5. For a weighted rule, set the weight. The weight is a number from 0 through 10,000 and is considered alongside each location’s score. The algorithm determines the best location based on a rule’s importance and how well a location fits the rule’s conditions. 6. Optionally, enter a start and end date and time. 7. Configure your rule’s conditions. Conditions for filter rules exclude locations. Conditions for weighted rules determine how each location is scored. 1. Set the condition logic. A rule can require all conditions, any condition, or a custom logic to be met. 2. Select an object and a field on that object. 3. Set an operator and enter a value for the field. 8. For a weighted rule, select how locations are scored. The score is a number from 0 through 100.
Static

Add a score to your rule.

If the rule's conditions apply to a location, that location gets this static score. Higher scores are favored more during routing.

Linear

Select an object and a field on that object. Then set a maximum and minimum score.

If the rule's conditions apply to a location, that location gets a dynamic score that increases based on how well it matches the rule. Higher scores are prioritized during routing.

Linear scoring is useful when a high number is favored, such as for product inventory.

Linear Inverse

Select an object and a field on that object. Then set a maximum and minimum score.

If the rule's conditions apply to a location, that location gets a dynamic score that decreases based on how well it matches the rule. Higher scores are prioritized during routing.

Linear inverse scoring is useful when a low number is favored, such as for shipping distance or cost.

9. Click **Save**. - **[Custom Weighted Routing Rules](https://help.salesforce.com/s/articleView?id=commerce.om_custom_weighted_rule.htm&release=264.0.0&type=5)** A custom weighted routing rule provides a greatly expanded level of freedom when it comes to creating a rule. You can create a rule based on any standard or custom attribute available on Order Management objects. An attribute’s value or existance creates the condition for your rule, and the score and weight of each attribute and rule determine which locations get selected. #### See Also - [Routing via Rules](https://help.salesforce.com/s/articleView?id=commerce.om_routing_rules_overview.htm&release=264.0.0&type=5 "Use rule groups to modify routing logic directly in the Order Management UI instead of using code or Salesforce Flow.") - [Customize Routing Logic with Rule Groups](https://help.salesforce.com/s/articleView?id=commerce.om_new_rule_group.htm&release=264.0.0&type=5 "Control Order Management routing by creating and publishing groups of templated or custom rules.") - [Custom Weighted Routing Rules](https://help.salesforce.com/s/articleView?id=commerce.om_custom_weighted_rule.htm&release=264.0.0&type=5 "A custom weighted routing rule provides a greatly expanded level of freedom when it comes to creating a rule. You can create a rule based on any standard or custom attribute available on Order Management objects. An attribute’s value or existance creates the condition for your rule, and the score and weight of each attribute and rule determine which locations get selected.") # Create a Default Pricing Procedure in Your B2B Store Use pricing procedures to implement dynamic pricing rules, and efficiently calculate the net price of a product in your B2B store. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Unlimited and Developer editions
Available in: B2B Commerce
Watch the video to help you create a default pricing procedure in your B2B store. If you can’t watch the video in full screen, open the video on a new tab: [Create a Default Pricing Procedure](https://play.vidyard.com/oZrztFBN7UJEhgph8sihC9). 1. In the App Launcher, find and select **Expression Set Templates**. 2. Select **Commerce Default Pricing Procedure**. 3. If your org supports multiple currencies, under Pricing Setting, map the Currency field with the CurrencyIsoCode context tag. 4. Save the updated pricing procedure as active. Salesforce recommends that you don't change the default pricing procedure name, CommerceDefaultRecipe. To confirm that the pricing procedure is saved, in the App Launcher, find and select Pricing Procedures. The newly created pricing procedure is listed. 5. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 6. In the Quick Find box, enter and select **Salesforce Pricing Setup**. If your org supports multiple currencies, under **Pricing Setting**, map the **Currency** field with the `CurrencyIsoCode` context tag. 7. If there’s a default pricing recipe, replace it with CommerceDefaultRecipe. 8. Under Select a Pricing Procedure, select the procedure you'd just created. 9. Under Sync Pricing Data, click **Sync**. This action refreshes all the decision tables in your org. Verify that the decision tables are refreshed. See [Refresh Your B2B Store Pricing Decision Table](https://help.salesforce.com/s/articleView?id=commerce.comm_refresh_your_b2b_or_d2c_store_pricing_decision_table.htm&language=en_US). #### See Also - [Build Your Pricing Procedure Using Salesforce Pricing](https://help.salesforce.com/s/articleView?id=ind.pricing_pricing_procedures.htm&language=en_US) # Create a Digital Subscription Product in a Commerce Store You can create a one-time, evergreen (non-expiring) subscription, or a term-defined (expiring) subscription for digital products. To create a subscriptions product for a B2B store, you first must create a proration policy and a subscription Product Selling Model (PSM). Then you can add the policy and PSM to an existing or a new product that you want to sell as a subscription. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Unlimited and Developer editions
Available in: B2B Commerce
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Ensure you configure a base price for your product. If a product only has a PSM with no base price, the price doesn't show on Search or Category pages. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) This task assumes that you’ve enabled Salesforce Pricing for B2B Stores and Subscriptions for your org, and configured your price book and product pages to support subscriptions. See [Enable Salesforce Pricing and Subscriptions in Your B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_subscription_enableSalesforcePricing.htm&language=en_US) and [Configure Commerce Pages to Support Subscriptions](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_configure_pages.htm&language=en_US). Watch the video to help you create a digital subscription product for your store. If you can’t watch the video in full screen, open the video on a new tab: [Create a Digital Subscription Product](https://play.vidyard.com/dYuLpgLuGRhnxuVum2beMe). 1. Create a proration policy. A proration policy defines how to handle a subscription price that can’t be equally divided across a pay period. You can add the remaining balance to the beginning or end of the subscription payment. For example, for a 4-month subscription term that costs $107.55, a shopper can pay $26.85 for 3 months and $27.00 for the first or last month. 1. From App Launcher, find and select **Proration Policies**. 2. Click **New**, and enter a name for the proration policy. 3. For Remainder Strategy, select whether you want to add the remaining amount to the first or last subscription payment. 4. For Proration Policy type, select **Standard Time Periods**. A customer can’t start the subscription in the middle of a term, so don’t select Allow partial proration periods. 5. Save your changes. 2. Create a subscription product selling model for your digital products. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note You can't create subscriptions for physical products. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Merchandising** | **Pricing**. 3. On the Product Selling Models tab, click **New** and name the model. To make the model easy to identify, include the subscription type and pricing term in the name. For example, Evergreen Monthly or Term-Defined Yearly. 4. For Selling Model Type, select **One Time**, **Term-Defined**, or **Evergreen**. 5. For Pricing Term Unit, specify how often the customer should be billed for their susbcriptions and enter **1** for the pricing term. 6. Set the status to **Active**. 7. Save your changes. 3. Create a new subscription product. If you have an existing products you want to mark as a subscription product, skip to step f. 1. Select **Merchandising** | **Products**. 2. Click **New**. 3. Fill out the product details. 4. To exclude the subscription from shipping charges, select **Shipping Charges Not Applicable**. 5. Select IsAssetizable for subscription products, and make sure **IsAssetizable** isn't selected for any product with "shipping" in the name. If you don't see these checkboxes, make sure these fields are added to the Product Page Layout in Object Manager. See [Configure Commerce Pages to Support Subscriptions](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_configure_pages.htm&language=en_US). 6. Save your changes. 7. From **Merchandising** | **Products**, open the new or existing subscription product. 8. On the Edit Product page, click **Go to global product record**. 9. On the Related tab, in the Product Selling Model option section, click **New**. 10. Search for and select the product selling model and proration policy. 11. Save your changes. 4. Add the subscription product to your store’s price book. 1. Select **Merchandising** | **Products**. 2. Select the subscription product that you want to add to your price book. 3. On the Edit Product page, select **Go to global product record**. 4. On the Related tab, in the Price Books section, click **Add Standard Price**. 5. Search for and select the product selling model for the subscription product. 6. For Price Book, select your store's price book and enter a list price. 7. (Optional) Select a currency. 8. Save your changes. After you create your subscription products, refresh the pricing decision tables. For more information, see [Refresh Your B2B Store Pricing Decision Table](https://help.salesforce.com/s/articleView?id=commerce.comm_refresh_your_b2b_or_d2c_store_pricing_decision_table.htm&language=en_US). #### See Also - [Products and Pricing](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_store_data.htm&language=en_US) - [Products](https://help.salesforce.com/s/articleView?id=commerce.comm_products_intro.htm&language=en_US) - [Add a Product to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_products_create.htm&language=en_US) - [Refresh Your B2B or D2C Store Pricing Decision Table](https://help.salesforce.com/s/articleView?id=commerce.comm_refresh_your_b2b_or_d2c_store_pricing_decision_table.htm&language=en_US) # Create a Feed Pipeline Create feed pipelines in Point of Sale to schedule feed types to run in a specified order. Running feed pipelines on a set schedule keeps your data current and accurate. Configure the pipeline, add the feed types, and set the schedule. You can also edit a pipeline as business needs change. ## Create a Feed Pipeline 1. In CMS, go to **Feeds** | **Scheduled Upload**. 2. Click the + icon. 3. Select Pipeline. 4. Set the Schedule by specifying the time, repeat interval, and days.![A screenshot shows the scheduling details for a data feed.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_pipeline_create.png) 5. (Optional) Import a scheduled feed immediately using the Import Now feature.Refer to [Import a Data Feed on Demand](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_import.htm&release=264.0.0&type=5 "Import a scheduled Point of Sale data feed immediately with the Import Now feature. The Import Now functionality allows you to force a scheduled feed to run when you need the most up-to-date information. Ensure that your data is current and drive timely decision-making."). 6. Click **SAVE** ## Add Feeds to a Pipeline 1. Go to the PIPELINE tab. 2. Click the + icon. 3. Select the feed type(s). Note that adding a feed will automatically generate a new tab. 4. Fill out the fields in each feed you add including Feed Source Type, Filename(s), and Auxiliary Settings. For the basics of creating scheduled jobs in the CMS refer to [Schedule Feed Runs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule."). ![A screenshot shows the specification of a data feed to add to a pipeline.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_pipeline_add.png) 5. Click **Verify** to verify the feed source. 6. Click **SAVE**. ## Change the Sequence and Deleting Feeds 1. To change the sequence, go to the PIPELINE tab. 2. Drag one feed type and drop it on top of another.![A screenshot of a list of feeds in a pipeline shows the reorder handle and delete icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_pipeline_order.png) 3. To delete a feed, click the red trash icon to the right of the feed. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important The product feed must be the first feed type in the pipeline. ## Special Use Cases These instructions outline how to create and edit a pipeline based on use case. ### Full Pipeline For running a full pipeline, you'll need the Product, Inventory Full, Inventory Deta, Pricing, and Sizing feeds with [Map Data Feed Fields](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5 "Set Field Mappings in Point of Sale to transform data from external sources into the format that Point of Sale uses. Field mappings use transformations and regular expressions. When you import data feeds, the field mappings ensure that your data is accurate and consistent. This consistency helps to streamline your retail operations.") configured for each feed. ![A screenshot shows a full pipeline of data feeds.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_pipeline_uc_full.png) ### Inventory Pipeline (Full) For full inventory loading, you'll need to configure a Inventory Full and Inventory Delta feed. You'll need to pass these two files to Point of Sale via SFTP. - The first file should include "store\_id", "product\_id", and "quantity". - The second file should include "store\_id", "product\_id", and "store\_online\_quantity". ![A screenshot shows the list of feeds for a full inventory pipeline.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_pipeline_uc_inv_feeds.png) Additionally, you'll need to set the Store Inventory Field Mappings including "store\_id", "product\_id", "quantity", and "store\_online\_quantity". ![A screenshot shows the field mapping needed for a full inventory pipeline.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_pipeline_uc_inv_maps.png) Point of Sale will process each file separately and add the respective values to the store's in-store and online stock. ### Inventory Pipeline (Delta) For running a delta inventory pipeline, you'll need to configure an Inventory Delta feed with two files. - The first file should include "store\_id", "product\_id", and "quantity". - The second file should include "store\_id", "product\_id", and "store\_online\_quantity". ![A screenshot shows the list of feeds for a delta inventory pipeline.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_pipeline_uc_inv_delta_feeds.png) Additionally, you'll need to set the Store Inventory Field Mappings including "store\_id", "product\_id", "quantity", and "store\_online\_quantity". ![A screenshot shows the field mapping needed for a delta inventory pipeline.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_pipeline_uc_inv_delta_maps.png) Point of Sale will process each file separately as well as add or remove the store's in-store and online stock accordingly. # Create a Finance Form Layout for Synchrony To maintain Payment Card Industry (PCI) compliance with Synchrony, add a finance tender form to your Point of Sale CMS. 1. In Point of Sale, go to **Layouts** | **Layout Pages** and select **Add Blank Layout.** 2. On the layout, add the PS Tag `:ps_remaining_balance.` 3. Add rows to the layout, and create these fields for the financing details, customer information, and customer identity verification. Each field requires a new row. 1. In the layout editor sidebar, select **Cell Content** | **Form Element** | **Text Input**. 2. For each form field, enter the type of field, its JSON object, input type, and a placeholder text. Click  **Set**  before moving to the next field. Optionally, you can add a rule to validate the user’s input. For example, the expression `^\d+(.\d{2})$` checks whether the finance amount has two decimal places. If you enter 100.123 instead of 100.12, you can’t submit the form on the POS app.
Form Field Field Type Field Placeholder Text Input Type (Optional) Input Validation Rule
Amount Text Input amount Finance Amount Decimal

^\d+(\.\d{2})$

Requires two decimal places, for example 100.12

Payment Type Code Text Input paymentTypeCode Payment Type Code Default –
First Name Text Input firstName First Name Default –
Last Name Text Input lastName Last Name Default –
Postal ZIP Code Text Input postalCode Postal Code Default

^\d{5}$

Requires exactly five digits

SSN Text Input ssn SSN Last 4 Digits Default

^\d{4}$

Requires exactly four digits

ID Validation Checkbox Checkbox customerIDVerified Cardholder’s Identity Verified – –
4. Add a button to submit the form. 1. Add a new row 2. In the layout editor sidebar, select **Cell Content > Form Element > Button**. 3. For Button Action, select **Apply Finance Tender**. ![A screenshot shows the button action settings for a finance form.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_synchrony_finance_form_element.png) 5. Save your changes and publish the layout.![A screenshot shows the layout for a finance form with the option to apply.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_synchrony_finance_form_layout.png) #### See Also - [_Salesforce Help:_ Maintain PCI Compliance with Synchrony](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony_pci_compliance.htm&release=264.0.0&type=5 "Add a form to your Point of Sale app for customers that opt to use Synchrony as a payment method. After a store associate submits the form, the app retrieves a secure, PCI-compliant token that substitutes for a credit card number. The token enables the checkout to remain compliant without collecting the customer's full card information.") - [_Salesforce Help:_ Set Up Processing of Synchrony Credit Card Purchases using Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony.htm&release=264.0.0&type=5 "The POS app, in combination with an Adyen terminal, supports the recognition of Synchrony cards and enables financing transactions. During checkout, when a customer chooses to pay with their Synchrony PLCC and the card is presented, the store associate can process the payment. If the order total meets a set threshold, the store associate can offer financing, which requires the customer to sign an electronic disclosure and financing contract. The threshold, electronic disclosure, and financing contract terms are customizable in the CMS.") - [_Salesforce Help:_ Add a Finance Tender Layout to a Point of Sale App](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_tender_layout.htm&release=264.0.0&type=5 "Assign a finance tender layout to an app configuration in Point of Sale CMS.") # Create a Footer Link List Menu in a B2B Commerce Store By default, the Link List component is located in the footer of each page in your store. In Experience Builder, you can edit this component to link to pages that describe your company, your privacy policy, your return procedure, or other important information. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, click the gear icon and go to **Settings** | **Navigation**. 4. Click **Add Navigation Menu**. 5. Enter a name for the menu, for example, Footer Links. 6. For each page that you want to add to the menu: 1. Click **Add Menu Item**. 2. From the Type dropdown, select **Site Page**. 3. Enter a name for the menu item, for example, About Us. Shoppers see this label for the link. 4. From the Pages dropdown, select the page that you want to link to. 5. Select **Publicly available**. ![Menu editor showing links for footer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_create_footer_link_menu.png) 7. Click **Save Menu**. When you configure the Link List component, select the menu to display the links in the storefront footer. ![Links to pages in footer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_footer_links.png) #### See Also - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") # Create a Guided Shopping Agent for a B2B Store Create a Guided Shopping Agent to unlock agent capabilities in your store. Guided Shopping Agent includes standard subagents, which are preconfigured categories of actions that help the agent recognize how to behave and respond for different jobs. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note The Commerce Product Details subagent doesn't support custom branding. The Commerce Cart Management subagent supports only simple products. Qualification rules and localization on Lightning web components aren't supported by the agent. 1. In the App Launcher, search for and select **Agentforce Studio**. 2. To create an agent, click **New Agent**. 3. Select the Agentforce for **Agentforce for Guided Shopping - B2B** template, and then click **Next**. ![Screenshot showing the Agentforce for Guided Shopping - B2B template](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_newshopperagenttemplate.png) 4. Specify a name and developer name for your B2B guided shopping agent. 5. Select a user and click **Let's Go**. Your agent is created with subagents already included. Salesforce recommends keeping all the default subagents. Use the standard subagents as a starting point for common use cases. After creating your agent, you can customize or create custom subagents in Agentforce Studio. 6. (Optional). Add a subagent to a pre-existing agent. 1. In the App Launcher, search for and select **Agentforce Studio**. The agent opens in Agentforce Builder. 2. If the agent is active, create a new version. 3. Click ![Screenshot showing the New Agent button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_agent_agentbuilder_add.png) and select **Add to Agent**. 7. Configure Messaging Settings. 1. In the Quick Find box, enter and select **Messaging Settings**. 2. Enable**Messaging**. 3. Click **New Channel** 4. Specify the type of channel to create. For example, select Enhanced Chat. 5. Specify the Channel Name and Domain, and click **Next**. 6. Specify the Agentforce Service Agent and the queue, and save your changes. 7. To enable the agent to interact with buyers in their selected locale, enable **Identify preferred language of users**. 8. (Optional) To enable enhanced agent interactions, switch your embedded service deployment to V2. 1. In the messaging channel you created, under Embedded Service Deployments, click the embedded service deployment associated with the messaging channel. 2. On the Embedded Service Deployment Settings page, click **Switch to V2**. 3. Click **Switch and Publish**. 4. Publish your embedded service. 9. In Agentforce Builder, select the **Commerce Customer Verification** subagent. 10. Under Reasoning Instructions, locate the instruction, `Always use the hardcoded value 'webStoreIdValue' for the input webStoreId parameter in any action requiring this identifier.`. Change `webStoreIdValue` to your store's webstore ID. The webstore ID is a 15-character record ID beginning with OZE. You can find the webstore ID in your store URL. 11. Save your work. 12. In Agentforce Builder, select the **Commerce Order** subagent. 13. Under Reasoning Instructions, locate the instruction `For the Cart URL, use the cart ID from the response of Add Order to Cart as the cartId to create a URL. Present the URL as text and not a link. The URL should be like this :loginPageUrl}?startURL={cartPageUrl}/cart`. Change the webStoreIdValue value to your store's webstore ID. Replace `{loginPageUrl}?startURL={cartPageUrl}/cart` with webStoreUrl/cart, where `webStoreUrl` is your store’s URL. For example, https://mydomain.com/store/cart. 14. Locate the instruction `For the Order Url, use the orderSummary.id retrieved from Look Up Order Summary as orderId to create a URL. The URL should be presented as text and not a link. The URL should be like this {loginPageUrl}?startURL={orderSummaryPageUrl}/orderId.`. Replace `{loginPageUrl}?startURL={orderSummaryPageUrl}/orderId` with webStoreUrl/orderSummary/{orderId}, where webStoreUrl is your store's URL. For example, https://mydomain.com/store/orderSummary/{orderId}. 15. Save your work. 16. Add your domain URL as a trusted site. See [Add a Content Security Policy (CSP) Trust Site for the Commerce Einstein Domain](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_csp_trusted_site_add.htm&language=en_US). #### See Also - [Customize Your Agents with Topics and Actions](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_actions.htm&type=5&language=en_US) - [Explore Standard Agent Topics and Actions](https://help.salesforce.com/s/articleView?id=ai.copilot_ref.htm&type=5&language=en_US) - [Add a Topic from the Asset Library](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_add_standard.htm&type=5&language=en_US) - [Agentforce Commerce Agent Topics](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_ref_agentforce_commerce_agents.htm&language=en_US) - [Agentforce Commerce Agent Actions](https://help.salesforce.com/s/articleView?id=ai.copilot_actions_ref_commerce_parent.htm&language=en_US) # Create a Home Layout Learn how to design a visually engaging Point of Sale app home page with a GIF, text overlay, padded image, and carousel. Enhance user experience by integrating dynamic elements and clean layout techniques. Before going through this article, it is recommended that you read the related articles. - For information on creating a category layout with six images and product search deep links, refer to [Create a Category Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_category.htm&release=264.0.0&type=5 "Learn how to design a visually engaging category page in Point of Sale that contains six images and product search deep links.") . - For information on defining the content and behavior of cells, refer to [Cell Configuration in Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_cell_config.htm&release=264.0.0&type=5 "Learn about the different ways that cells can be configured in Point of Sale layouts with content and interactive behavior."). - For information on how to create and edit rows and cells within a layout, refer to [Layout Editor](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_editor.htm&release=264.0.0&type=5 "Easily manage and customize your layout in Point of Sale with powerful editing tools. Add, insert, resize, and delete rows and cells, and adjust cell padding for precise control. Enhance user experience with features like Paginate for full-screen views, override app config settings for tailored UI options, and Snap to Grid for accurate overlay alignment."). - For information on creating and publishing layouts, refer to [Create and Publish Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_process.htm&release=264.0.0&type=5 "Learn how to create and publish layouts using the Point of Sale Layout Editor, including starting from a blank layout or a template, and managing live versions, drafts, and scheduling. Discover how to edit, save, publish, and restore layouts, ensuring your content is always up-to-date and tailored to your needs."). This article walks you through creating a home as shown in this image.![A Point of Sale home screen with an image with overlay text and a toolbar.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_outcome.png) ## Step 1: Create a Blank Layout 1. Click **LAYOUT PAGES** from the CMS homepage or go to **Layout Pages** | **All Layouts**. 2. Click **Add Blank Template.** 3. Enter a name for the layout in the toolbar.![A screenshot shows the toolbar option for adding a layout name.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_edit_name.png) ## Step 2: Override the App Config Settings 1. Select the ADVANCED tab in the toolbar. 2. Expand UX. 3. Enable **Override App Config Settings**. This ensures that there is no margin around the cells regardless of what the app config settings are.![A screenshot shows the advanced toolbar option to override app config settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step2.png) ## Step 3: Upload the Images 1. Download these images: [Carousel-1](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/carousel-1.jpg), [Carousel-2](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/carousel-2.jpg), [Carousel-3](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/carousel-3.jpg), [Home-1](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/home-1.gif), [Home-2](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/home-2.png), [Home-3](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/home-3.png), and [Home-4](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/home-4.png). Alternatively, you can use your images. 2. Select the blank cell. 3. Expand More Media in the toolbar. 4. Click the Create New Folder icon in the top left of the Media Library. 5. Enter a name and press the Save icon. 6. Drag the images into the Media Library window.![A screenshot shows files dragged into the media library.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step3a.png)![A screenshot shows images added to the media library.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step3b.png) ## Step 4: Insert and Resize Multiple Images 1. Select home-1.gif, home-2.png, home-3.png, and home-4.png (in that order). 2. Click **SELECT ASSET**.![A screenshot shows an image added to the layout editor.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step4.png) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip The images are inserted into the layout in the same order in which they were selected. ## Step 5: Add Text Overlay 1. Select the first cell that contains the GIF. 2. Expand Cell Overlays in the toolbar. 3. Click **Text**. ## Step 6: Edit Text Overlay HTML 1. Double-click the blue text overlay to edit it. 2. Click the <> (Source code) icon.![A screenshot highlights the source code menu option.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step6a.png) 3. Paste the HTML snippet below: ```

Tailored

Essentials

``` 4. Click **OK** to set the source code. 5. Click **OK** to apply the changes. Your layout should now look like this:![A layout shows the text tailored cropped.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step6.png) ## Step 7: Move and Resize the Text Overlay 1. Go to the ADVANCED tab of the toolbar. 2. Click **Guides** and enable Grid. 3. Drag and drop the text overlay to move it. 4. Drag the blue square at the bottom right corner to resize it. ![A Point of Sale home screen layout shows the blue square used to resize a text overlay.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step7.png) ## Step 8: Insert Spacer and Set Row Height 1. Select the cell with the GIF. 2. Click **Insert Below** from the toolbar. 3. Select the blank row that was inserted. 4. Expand Cell Operations. 5. In the **Set Row Height** input enter 20.![A screenshot shows the field for entering a row's height.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step8.png) ## Step 9: Insert and Resize Spacers 1. Select the cell that has the "EXPLORE THIS COLLECTION" image. 2. Click **Insert Below** from the toolbar. 3. Drag the bottom of the spacer row up until it is 80 pixels. ![A screenshot shows the layout editor handle used to resize a spacer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step9.png) 4. Hover over the spacer row and click the Copy icon in the bottom left. 5. Select the cell with the shop trousers image and click **Insert Below** from the toolbar. 6. Select the row that was created and press cmd + v. ## Step 10: Add Padding to Image 1. Select the cell with the shop trousers image. 2. Expand Cell Operations in the toolbar. 3. Click **Split in Thirds**. 4. Under Padding on Sides click **Split**. 5. Click **Split** to apply the default of 10% padding.![A screenshot shows an image with padding.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_home_step10.png) ## Step 11: Add a Carousel 1. Select the cell with the "ORANGE IS TRULE THE NEW BLACK" image. 2. Click **Insert Above** from the toolbar. 3. Expand Carousel in the toolbar and enable Add Carousel. 4. Double-click the blank slide. 5. Select the first carousel image and click **SELECT ASSET**. 6. Select the first slide and click **Cell Operations** | **Resize to Fit Media**. 7. Click the second dot to show the second slide. 8. Double-click the second slide. 9. Select the second carousel image and click **SELECT ASSET**. 10. Hover over the carousel and click the + icon in the bottom right to add a third slide. 11. Double-click the third slide 12. Select the third carousel image and click **SELECT ASSET**. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip To change the indicator from dots to lines, use the app config setting, go to **Apps** | **All** | **your app config** | **EDIT** | **UI** | **Layouts.** Then enable Carousel Indicator and click **SAVE**. ## Step 12: Deep Link and Publish the Layout 1. Creating deep links for some or all of the cells. Refer back to [Cell Configuration in Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_cell_config.htm&release=264.0.0&type=5 "Learn about the different ways that cells can be configured in Point of Sale layouts with content and interactive behavior.") for instructions on how to do so. 2. Click **PUBLISH NOW**. # Create a Link to a Content Asset Some component attributes allow you to configure a link, for example to a product, category, page, or external resource. We have expanded your options for that link to include content assets. How: The merchandiser opens the link builder UI control in the Page Designer visual editor and clicks Content Asset. The merchandiser can then search for and select a content asset to use for the link. ![Link builder UI to start a content asset search](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_9/b2c_page_des_content_picker.png) #### See Also - [Create and Manage Page Designer Pages](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_create_and_manage_pd_pages.html) # Create a Location Graph for Omnichannel Inventory A location graph consists of locations and location groups. You can create the graph using the Omnichannel Inventory console app, Connect in Apex, or Connect REST API. 1. Create at least one location type. 2. For each location that fulfills orders, create a Location record. If you’re using D2C Commerce, the location graph can have only one location. 1. Set Should Sync With OCI to **True**. 2. Set Is Inventory Location to **True**. 3. Specify the location type. 4. Set the visitor address to the physical address of the location. 5. Set the external reference to a unique value. If you’re using Salesforce B2C Commerce, use the external reference to associate the location with a dedicated B2C Commerce inventory list. 3. For each storefront, sales channel, or logical group of locations, create a Location Group record. If you’re using D2C Commerce, the location graph can have only one location group. 1. Set Should Sync With OCI to **True**. 2. Set Is Enabled to **True**. 3. Set the external reference to a unique value. If you’re using Salesforce B2C Commerce, use the external reference to associate the location with a dedicated B2C Commerce inventory list. 4. For each location, create a Location Group Assignment record for each location group that it belongs to. A location doesn’t have to belong to a location group. 1. Create a location group assignment for each location. A location can belong to multiple location groups. 2. Assign at least one location to each location group. 5. Commit the changes to Omnichannel Inventory. Adding or removing locations or location groups after loading inventory availability data can trigger large availability data and cache updates. If you need to make changes, schedule the update during low-order traffic times or change one item at a time. - Schedule location graph changes for times with low-order traffic. - If you have scheduled imports, pause them until the changes are complete. - Add or remove only one location or location group at a time. - After making a change, wait for the update to finish before importing new inventory availability data. When using Omnichannel Inventory console app, be sure to select **Sync with OCI** when creating locations and location groups. # Create a Managed RMA Return Order Use the return management authorization (RMA) workflow to create a managed return for one or more order items that have been fulfilled and are associated with a managed order summary. ### Required Editions
View supported editions.
If you want to immediately issue a refund or are using D2C Commerce, instead create a simple return. D2C Commerce doesn’t include RMA functionality. 1. From the Navigation bar, open the Order Summaries list view page. 2. Select the order number that contains the items to return, and open the corresponding order summary record.
 You can also open the order summary directly from the customer’s account in the Service Console. 3. On the Related tab, in the Return Orders section, confirm that there’s no existing return order for the items. 4. From the Actions & Recommendations list, select **RMA Return Items**. 5. On the Return Items page, select the items to return, and click **Next**. Only eligible items are listed. 6. For each item selected, enter the required information. Or, to return items in bulk, use the Apply to All Items row. If a selected item already has a quantity being returned on another order, you must select a different reason. 7. Click **Next**. 8. Review the return information, and submit the return. 9. Click **Finish**. #### See Also - [Managed and Unmanaged RMA Return Orders](https://help.salesforce.com/s/articleView?id=commerce.om_managed_unmanaged_return_orders.htm&release=264.0.0&type=5 "Return merchandise authorization (RMA) return orders support both managed and unmanaged orders, so whatever degree of service you provide for orders, you can still keep a tight level of control over returns and refunds.") - [Close a Managed RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_close_a_managed_rma_return_order.htm&release=264.0.0&type=5 "When you receive returned order items, you can close the return order and process a refund to the shopper or buyer.") - [Cancel a Managed or Unmanaged RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_cancel_managed_unmanaged_rma_return_order.htm&release=264.0.0&type=5 "If the shopper or buyer doesn’t return the expected items, you can cancel an RMA return order.") - [View Return Orders](https://help.salesforce.com/s/articleView?id=commerce.om_view_return_orders.htm&release=264.0.0&type=5 "A return order record contains details about the returned items and related records, including the associated order summary.") # Create a Markdown Avoidance Rule A markdown avoidance reduces the risk of products selling at a discounted price by shipping products from locations at risk of future discounts. To implement a markdown avoidance, create a markdown avoidance rule in the Markdown Avoidance tab, sync it, and then add it to a rule group. ### Required Editions
View supported editions.
Before beginning this task, make sure the [Order Fulfillment Setup section](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5 "The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS).") is enabled. 1. In the Markdown Avoidance tab of Order Fulfillment Setup, click **New**. 2. Enter a name, external reference, and description. 3. Set a start and end date, which determines how long the rule prioritizes the at-risk locations. 4. Score your rule. The score is assigned to locations that fit the rule’s conditions. Locations with higher scores are prioritized during routing. 5. Click **Next**. 6. Select whether the rule applies to specific products or all products in the specified locations. 7. If you selected **Specific Products or Categories**, select the products or categories. 8. Click **Next**. 9. Add locations that are at risk of a price markdown. 10. Click **Save**. 11. Sync your markdown avoidance. After you’ve created your markdown avoidance, [add it to a rule group](https://help.salesforce.com/s/articleView?id=commerce.om_new_rule_group.htm&release=264.0.0&type=5 "Control Order Management routing by creating and publishing groups of templated or custom rules.") and assign it a weight. The rule group calculates each rule’s weight with the location scores to select the best locations for fulfillment. #### See Also - [Routing via Rules](https://help.salesforce.com/s/articleView?id=commerce.om_routing_rules_overview.htm&release=264.0.0&type=5 "Use rule groups to modify routing logic directly in the Order Management UI instead of using code or Salesforce Flow.") - [Customize Routing Logic with Rule Groups](https://help.salesforce.com/s/articleView?id=commerce.om_new_rule_group.htm&release=264.0.0&type=5 "Control Order Management routing by creating and publishing groups of templated or custom rules.") # Create a New Page by Copying an Existing Page You can now make a copy of a Page Designer page and then edit that page to create one. The copy has all the same settings and content as the original except for the Page ID. Copying a page can improve your efficiency since you don’t have to start from scratch every time you create a page. How: From the visual editor, click the dropdown menu next to the page you want to copy and select **Duplicate**. The copy of the page appears in the list of pages, directly after the original. The name of the copied page is the name of the original page with a 10-character timestamp added to the end. The number of characters in a page name can't exceed 100. The timestamp added to the copied page name sometimes makes the name longer than 100 characters. In that case, the name of the original page is truncated to allow for the 10-character timestamp at the end. # Create a No Search Results Message If you have a B2B store built using an LWR template, you can display a message on the search results page when there are no results. Use the No Results Layout component in Experience Builder to display and modify the message. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. From the Pages dropdown menu, select **Search**. 4. Select the **No Results Layout** component. 5. Click the **HTML Editor** component and then click **Edit Markup**. 6. Modify the page content in HTML format and click **Save**. You can change the text, image, and styling of the message. 7. To display a message while search results are loading, drag an HTML Editor component into the Loading State component. Click **Edit Markup**, modify the page content in HTML format, and save your changes. 8. Publish your site. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example Here’s how the default HTML looks when you publish the page. ```html

We're Sorry

We can't seem to find any products that match your search.

Try a new search using fewer words

``` ![Default no results message.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_search_no_results.png) # Create a Pick Ticket for a Fulfillment Order Create a pick ticket to find and pick items for new fulfillment orders. Select one or more orders to pick items for and create your pick ticket. ### Required Editions
View supported editions.
1. Open the Store Fulfillment app, and select a location, if necessary. 2. Click **Create a Pick Ticket**. 3. Select one or more orders to add to the pick ticket. If you limit your search using a filter, your selection resets if you change or remove the filter. 4. Click **Create Pick Ticket**. The pick ticket is now available in the Complete Pick Tickets list. #### See Also - [Store Fulfillment Application Overview](https://help.salesforce.com/s/articleView?id=commerce.om_store_fulfillment_app.htm&release=264.0.0&type=5 "The Store Fulfillment app gives you quick and easy access to each step of the fulfillment process: selecting a store, finding new orders for the store, creating a ticket for one or more orders, picking or rejecting items, and packing them up or shipping them out.") # Create a Process Exception Create a process exception to manage a processing issue that isn’t automatically identified by your order management processing business logic. ### Required Editions
View supported editions.
1. From the Navigation bar, open the Process Exceptions list view page. 2. Click **New**. 3. Complete the fields on the New Process Exception page. - For Attached To, select the object to associate with the process exception. For example, select a credit memo or invoice. - For Included in Order Summary, enter the order summary to associate with the process exception. Specifying an order summary in this field ensures that the notification banner on the order summary record shows the correct number of process exceptions for the order summary. 4. Save your changes. By default, Order Management assigns the process exception to the user who creates it. You can assign it to another user for resolution by editing the Owner Name field on the Process Exception record. #### See Also - [Check for Active Process Exceptions](https://help.salesforce.com/s/articleView?id=commerce.om_check_for_active_process_exceptions.htm&release=264.0.0&type=5 "When a process exception occurs, Order Management creates a process exception record and generates a notification that appears at the top of the associated Order Summary page. The process exception typically states the problem that requires user review or intervention. Your business logic and workflows determine whether to continue processing an order summary when an exception occurs. When necessary, you can suspend order processing until the issue is reviewed and resolved.") - [View Process Exception Details](https://help.salesforce.com/s/articleView?id=commerce.om_view_a_process_exception.htm&release=264.0.0&type=5 "A process exception record contains details about the cause of the processing failure.") - [Identify the Cause of a Process Exception](https://help.salesforce.com/s/articleView?id=commerce.om_identify_cause_of_a_process_exception.htm&release=264.0.0&type=5 "Process exceptions can occur at any stage in the order lifecycle. Identifying the cause of a process exception is the first step toward resolving the issue.") - [Resolve a Process Exception](https://help.salesforce.com/s/articleView?id=commerce.om_resolve_a_process_exception.htm&release=264.0.0&type=5 "After you identify the cause of a process exception, you can resolve the issue and continue normal processing on the order summary.") # Create a Product Bundle for a Commerce Store A product bundle is a collection of complementary products purchased under one SKU. The bundle’s parent product and child products are shown together on the product page under one price. The bundled products become one product. For example, you create the “Work From Home Desktop Bundle” with a desktop monitor, keyboard, mouse, and monitor stand as the child products. The “Work From Home Desktop Bundle” is the bundle’s parent product. You set the price for the bundle at the parent level and price the “Work From Home Desktop Bundle” at $199.99 even though the individual child products are sold separately: desktop monitor priced at $129.99; keyboard priced at $39.99; mouse priced at $15.99; and monitor stand priced at $29.99. The “Work From Home Desktop Bundle” displays all of the individual child products to shoppers under the price of the bundle’s parent product. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note The following tasks assume your store has the Child Components related list added to the Product page layout and a product relationship type created for product bundles. Most B2B stores already have these prerequisite tasks set up. However, if you run into issues configuring your bundle, see [Prepare Your Commerce Store to Sell Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_prereq_product_bundles_and_sets.htm&release=264.0.0&type=5 "To sell product bundles and sets, you add the Child Components related list to the Product object’s page layout. If you’ve set up your store using the Commerce Setup Assistant or created product sets before, the related list is already added. You then create a product relationship type for both bundles and sets. Most stores already have the product relationship types created. For out-of-the box product bundle support, your store must have the Cart Calculate API enabled."). ## Create a Product Bundle [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Merchandising** | **Products**. 3. From the Product Workspace dropdown menu, select **New Product Bundle or Set**. 4. For Product Type, select **Bundle**. 5. Enter the product details. 1. Name the product bundle. 2. (Optional) Select the product family that the product bundle belongs to. 3. Enter a product SKU. 4. To make the product bundle available in your store, select **Active**. 5. (Optional) Enter a product code. 6. (Optional) Enter a product description. 7. Save your changes. After you save your changes, you’ll be directed to the new product bundle’s record page to configure it. ## Configure a Product Bundle [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the Product Workspace, select the product bundle that you want to configure. Or if you just created your bundle, skip to the next step. 2. Add child products to the bundle. Search results on the child components related list ignores applied filters. To view all search results after a search query, make sure to clear any applied filters before you click **View All**. 1. On the Related tab, in the Child Components section, click **Add**. If you don’t see the Child Components section, add it to the Product page layout. See [Prepare Your Commerce Store to Sell Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_prereq_product_bundles_and_sets.htm&release=264.0.0&type=5 "To sell product bundles and sets, you add the Child Components related list to the Product object’s page layout. If you’ve set up your store using the Commerce Setup Assistant or created product sets before, the related list is already added. You then create a product relationship type for both bundles and sets. Most stores already have the product relationship types created. For out-of-the box product bundle support, your store must have the Cart Calculate API enabled."). 2. Select the child products, and click **Next**. 3. Set the quantity for each child product. 4. For Product Relationship Type, select **Bundle to Bundle Component Relationship**. If you don’t see the bundle product relationship type, See [Prepare Your Commerce Store to Sell Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_prereq_product_bundles_and_sets.htm&release=264.0.0&type=5 "To sell product bundles and sets, you add the Child Components related list to the Product object’s page layout. If you’ve set up your store using the Commerce Setup Assistant or created product sets before, the related list is already added. You then create a product relationship type for both bundles and sets. Most stores already have the product relationship types created. For out-of-the box product bundle support, your store must have the Cart Calculate API enabled."). 5. (Optional) Enter in which order each child product displays. 6. Save your changes. 3. Assign categories. 1. On the Related tab, in the Categories section, click **Assign**. 2. Select the category, and save your changes. 4. Assign one or more entitlement policies. 1. On the Related tab, in the Commerce Entitlement Policies section, click **Assign**. 2. Select the policy, and save your changes. 5. Add pricing. 1. On the Related tab, in the Price Books section, click **New**. 2. For Price Book, select your store’s standard price book. 3. Enter a list price. 4. (Optional) Select a currency. 5. Save your changes. 6. (Optional) Edit the child product settings. 1. On the Related tab, in the Child Components section, select the child product and click **Edit**. 2. For Quantity Scaling Method, select **Proportional**. This setting ensures that the quantity for child products proportionally adjusts when the bundle quantity changes. For example, if you set a child product’s quantity to 2 and increase the bundle quantity from 1 to 2, the child product’s quantity increases to 4. 3. Select **Price includes component**. This setting ensures that the price of the child product isn't listed with the bundle. 4. (Optional) Adjust the quantity of the child product. 5. Save your changes. 7. Add images to the products from the Media tab. #### See Also - [Commerce Merchant Considerations for Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_merchant_considerations_for_product_bundles_and_sets.htm&type=5&language=en_US) # Create a Product Set for a Commerce Store A product set is a collection of related products displayed together on the product page. Each child product is priced separately. A product set doesn’t have its own price. A shopper can add all the products to the cart in a single operation or selectively add individual products. For example, you create the “Work From Home” product set that includes a desktop monitor, laptop stand, wireless mouse, keyboard, standing desk, and office chair. The product set displays all of these products together on your store, but each product is priced separately. Customers can select which products they want to add to the cart or add the whole set, but purchasing all of the products in the set doesn’t afford your customers any savings. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note The following tasks assume your store has the Child Components related list added to the Product page layout and a product relationship type created for product sets. Most B2B stores already have these prerequisite tasks set up. However, if you run into issues configuring your set, see [Prepare Your Commerce Store to Sell Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_prereq_product_bundles_and_sets.htm&release=264.0.0&type=5 "To sell product bundles and sets, you add the Child Components related list to the Product object’s page layout. If you’ve set up your store using the Commerce Setup Assistant or created product sets before, the related list is already added. You then create a product relationship type for both bundles and sets. Most stores already have the product relationship types created. For out-of-the box product bundle support, your store must have the Cart Calculate API enabled."). ## Create a Product Set [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Merchandising** | **Products**. 3. From the Product Workspace dropdown menu, select **New Product Bundle or Set**. 4. For Product Type, select **Set**. 5. Enter the product details. 1. Name the product set. 2. (Optional) Select the product family that the product set belongs to. 3. (Optional) Enter a product SKU. Child products require a SKU, but the product set doesn’t. 4. To make the product set available in your store, select **Active**. 5. (Optional) Enter a product code. 6. (Optional) Enter a product description. 6. Save your changes. ## Configure a Product Set [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the Product Workspace, select the product set that you want to configure. Or if you just created your set, skip to the next step. 2. Assign one or more entitlement policies. 1. On the Related tab, in the Commerce Entitlement Policies section, click **Assign**. 2. Select the policy, and save your changes. 3. Assign categories. 1. On the Related tab, in the Categories section, click **Assign**. 2. Select the category, and save your changes. 4. Add child products to the product set. Search results on the child components related list ignores applied filters. To view all search results after a search query, make sure to clear any applied filters before you click **View All**. 1. On the Related tab, in the Child Components section, click **Add**. If you don’t see the Child Components section, add it to the Product page layout. See [Prepare Your Commerce Store to Sell Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_prereq_product_bundles_and_sets.htm&release=264.0.0&type=5 "To sell product bundles and sets, you add the Child Components related list to the Product object’s page layout. If you’ve set up your store using the Commerce Setup Assistant or created product sets before, the related list is already added. You then create a product relationship type for both bundles and sets. Most stores already have the product relationship types created. For out-of-the box product bundle support, your store must have the Cart Calculate API enabled."). 2. Select the products that you want to add to the product set, and click **Next**. 3. For each child product, specify a sequence and quantity. The sequence determines the order that the child product is displayed in the product set. When the product set is shown on a product page, the quantity is the amount that a customer can order for the child product. 4. For Product Relationship Type, select **Set to Set Component Relationship**. If you don’t see the set product type, create the set to set component relationship type. See [Prepare Your Commerce Store to Sell Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_prereq_product_bundles_and_sets.htm&release=264.0.0&type=5 "To sell product bundles and sets, you add the Child Components related list to the Product object’s page layout. If you’ve set up your store using the Commerce Setup Assistant or created product sets before, the related list is already added. You then create a product relationship type for both bundles and sets. Most stores already have the product relationship types created. For out-of-the box product bundle support, your store must have the Cart Calculate API enabled."). 5. Save your changes. 5. Add images to the product set from the Media tab. #### See Also - [Commerce Merchant Considerations for Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_merchant_considerations_for_product_bundles_and_sets.htm&type=5&language=en_US) # Create a Promotion Using the Guided Workflow Draft a promotion with products and categories from your B2B store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Promotions**, and select how you want to create the promotion. - To create a promotion with pre-selected data, select a promotion template. - To create your own promotion, click **Skip and Create from Scratch**. 3. On the New Promotion page, customize the fields as needed. 1. Select the audience for your promotion. If you select **Specific Buyer Groups**, search for the buyer groups that you want to add. If you don’t select a buyer group, the promotion applies to all the customers in the store. 2. For Name, enter the internal name for your promotion. To localize the display name, see [Translation Workbench](https://help.salesforce.com/s/articleView?id=platform.workbench.htm&type=5&language=en_US). 3. To activate the promotion as soon as you save it, select **Active**. The promotion isn’t available in your store until you activate it. Alternatively, you can save the promotion and activate it later. To improve performance, activate and prioritize only the promotions that you’re using. You can assign up to 50 manual and 50 automatic promotions to a store and its buyer groups. 4. (Optional) Select whether to exclude qualifying items from a discount. For example, if you have a “Buy two shirts, get 50% off pants” promotion, the two shirts that qualify for the promotion aren’t discounted. 5. (Optional) Select whether to make the promotion tiered. If you choose to make promotions tiered, you can only add discounts and qualifiers within the promotion tier record page. See [Add a Promotion Tier for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_add_tier.htm&release=264.0.0&type=5 "Use tiers to create progressive discounts for a promotion. You can add tiers only to a promotion that was created as a tiered promotion. All discounts within a tier must be of the same type. You can create up to 10 tiers per promotion.") . 6. For Display Name, enter the name that customers see in the store on the cart, search, category, and product pages. If you don’t enter a display name, customers don’t know what discount they’re receiving. 7. (Optional) Select whether to apply an approaching discount to the promotion. Select this option to send an alert to customers if their cart is approaching a discount. Set a threshold value on the promotion qualifier for when the message is shown to customers. Apply approaching discount alerts to promotions that target shipping, shipping rates, or transactions. Only the total transaction can act as a qualifier for promotions with approaching discount alerts. 8. (Optional) Enter the terms and conditions. To localize the terms and conditions, see [Translation Workbench](https://help.salesforce.com/s/articleView?id=platform.workbench.htm&type=5&language=en_US). 9. Add discounts. For the target type, select the type of item that you want to apply the discount to. For the target, choose the specific item. Then select the adjustment type. For multicurrency stores, choose the Currency ISO Code. Enter the numeric value corresponding to the adjustment type that you selected. See  [Define a Discount for a B2B Store from Within the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_discount_workflow.htm&release=264.0.0&type=5 "Set a target type and an adjustment type, and specify the amount to discount."). 10. (Optional) Add qualifiers. For the qualifier type, select the type of item you want to set specific requirements to. Then, choose the quantifier type. Set a value for the qualifier. See  [Choose What Qualifies for a Promotion for a B2B Store from Within the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_qualifiers.htm&release=264.0.0&type=5 "Use a qualifier to set specific requirements for a discount to be added to a promotion. For example, you can require customers to spend a minimum amount to qualify for a percentage discount on a particular product. "). 11. (Optional) Add coupons. Enter the coupon code and the associated promotion. Set the status to **Active**. Enter the redemption limit for all buyers and the redemption limit per buyer. Enter the start and end dates. See  [Create a Coupon for a B2B Store from Within the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_coupon_workflow.htm&release=264.0.0&type=5 "Create coupons that customers can redeem. The coupon has the same discount and qualifier rules as the promotion that it’s associated with.") . 12. Enter a priority number. The priority number determines which promotions apply first. The lower the number, the higher the priority. If you don’t enter a priority number, or if two promotions have the same priority, prioritization tiebreaker rules apply. See [Prioritizing Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_prioritization.htm&release=264.0.0&type=5 "When a cart is eligible for multiple promotions, your exclusivity and priority rules determine which promotions apply. Priority is first determined by exclusivity, which specifies whether a promotion can be combined with other promotions. Next, the promotion’s priority is based on its priority number, discount type, discount amount, and promotion ID."). 13. Select an exclusivity to specify whether the promotion can be combined with other promotions. See [Prioritizing Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_prioritization.htm&release=264.0.0&type=5 "When a cart is eligible for multiple promotions, your exclusivity and priority rules determine which promotions apply. Priority is first determined by exclusivity, which specifies whether a promotion can be combined with other promotions. Next, the promotion’s priority is based on its priority number, discount type, discount amount, and promotion ID."). 14. To limit the number of times a customer can use the promotion in one cart, enter a value for Maximum Applications Per Cart. 15. Select a discount order. For example, most expensive or least expensive. 16. To make sure that discounted items are cheaper than qualifying items, select a discount restriction. 17. (Optional) Enter the promotion’s start and end dates. 18. Save your changes. 4. Verify that the promotion details are correct on the Segments, Tiers, Coupons, Discounts, and Qualifiers tabs. 5. If you haven’t already activated the promotion, when you’re ready, on the Details tab, click **Active**. When you activate the promotion, it becomes available in your store. #### See Also - [Create a Promotion Using the Guided Workflow with Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_smart.htm&release=264.0.0&type=5 "Draft a promotion for your B2B store with just a few clicks by using Einstein and Commerce data. Quickly create basic and advanced promotions using natural language instructions and generative AI.") # Create a Promotion Using the Guided Workflow with Einstein Draft a promotion for your B2B store with just a few clicks by using Einstein and Commerce data. Quickly create basic and advanced promotions using natural language instructions and generative AI. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
User Permissions Needed
To create promotions with Einstein: Smart Commerce Promotions and Recommendations
To use generative AI, first turn on Einstein Generative AI. The EinsteinGPTCommerceAddOn license is also required to create Commerce promotions with Einstein. Contact your Salesforce Admin for help. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Promotions**, and then click **Draft with Einstein**. 3. Populate the Einstein instruction box. - To create a promotion with pre-selected data, select a promotion template. - To add products and categories, click **Search for products or categories**. Select the products or categories to include, and click **Insert**. - Enter text to describe the promotion. 4. Click **Draft Promotion**. 5. On the New Promotion page, customize the fields as needed. 1. Select the audience for your promotion. If you select **Specific Buyer Groups**, search for the buyer groups that you want to add. If you don’t select a buyer group, the promotion applies to all the customers in the store. 2. For Name, enter the internal name for your promotion. To localize the display name, see [Translation Workbench](https://help.salesforce.com/s/articleView?id=platform.workbench.htm&type=5&language=en_US). 3. To activate the promotion as soon as you save it, select **Active**. The promotion isn’t available in your store until you activate it. Alternatively, you can save the promotion and activate it later. To improve performance, activate and prioritize only the promotions that you’re using. You can assign up to 50 manual and 50 automatic promotions to a store and its buyer groups. 4. (Optional) Select whether to exclude qualifying items from a discount. For example, if you have a “Buy two shirts, get 50% off pants” promotion, the two shirts that qualify for the promotion aren’t discounted 5. (Optional) Select whether to make the promotion tiered. If you choose to make promotions tiered, you can only add discounts and qualifiers within the promotion tier record page. See [Add a Promotion Tier for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_add_tier.htm&release=264.0.0&type=5 "Use tiers to create progressive discounts for a promotion. You can add tiers only to a promotion that was created as a tiered promotion. All discounts within a tier must be of the same type. You can create up to 10 tiers per promotion.") . 6. For Display Name, enter a name for customers to see in the cart. If you don’t enter a display name, customers don’t know what discount they’re receiving. 7. (Optional) Select whether to apply an approacing discount to the promotion. Select this optin to send an alert to customers if their cart is approaching a discount. Set a threshold value on the promotion qualifier for whne the message is show to customers. Apply approaching discount alerts to promotions that target shipping, shipping rates, or transactions. Only the total transaction can act as a qualifier for promotions with approaching discount alerts. 8. (Optional) Enter the terms and conditions. To localize the terms and conditions, see [Translation Workbench](https://help.salesforce.com/s/articleView?id=platform.workbench.htm&type=5&language=en_US). 9. Add discounts. For the target type, select the type of item that you want to apply the discount to. For the target, choose the specific item. Then select the adjustment type. For multicurrency stores, choose the Currency ISO Code. Enter the numeric value corresponding to the adjustment type that you selected. See  [Define a Discount for a B2B Store from Within the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_discount_workflow.htm&release=264.0.0&type=5 "Set a target type and an adjustment type, and specify the amount to discount.") 10. (Optional) Add qualifiers. For the qualifier type, select the type of item you want to set specific requirements to. Then, choose the quantifier type. Set a value for the qualifier. See  [Choose What Qualifies for a Promotion for a B2B Store from Within the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_qualifiers.htm&release=264.0.0&type=5 "Use a qualifier to set specific requirements for a discount to be added to a promotion. For example, you can require customers to spend a minimum amount to qualify for a percentage discount on a particular product. "). 11. (Optional) Add coupons. Enter the coupon code and the associated promotion. Set the status to **Active**. Enter the redemption limit for all buyers and the redemption limit per buyer. Enter the start and end dates. See  [Create a Coupon for a B2B Store from Within the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_coupon_workflow.htm&release=264.0.0&type=5 "Create coupons that customers can redeem. The coupon has the same discount and qualifier rules as the promotion that it’s associated with.") . 12. Enter a priority number. The priority number determines which promotions apply first. The lower the number, the higher the priority. If you don’t enter a priority number, or if two applied promotions have the same priority, prioritization tiebreaker rules apply. See [Prioritizing Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_prioritization.htm&release=264.0.0&type=5 "When a cart is eligible for multiple promotions, your exclusivity and priority rules determine which promotions apply. Priority is first determined by exclusivity, which specifies whether a promotion can be combined with other promotions. Next, the promotion’s priority is based on its priority number, discount type, discount amount, and promotion ID."). 13. Select an exclusivity to specify whether a promotion can be combined with other promotions. See [Prioritizing Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_prioritization.htm&release=264.0.0&type=5 "When a cart is eligible for multiple promotions, your exclusivity and priority rules determine which promotions apply. Priority is first determined by exclusivity, which specifies whether a promotion can be combined with other promotions. Next, the promotion’s priority is based on its priority number, discount type, discount amount, and promotion ID."). 14. To limit the number of times a customer can use the promotion in one cart, enter a value for Maximum Applications Per Cart. 15. Select a discount order. For example, most expensive or least expensive. 16. To make sure that discounted items are cheaper than qualifying items, select a discount restriction. 17. (Optional) Enter the promotion’s start and end dates. 18. Save your changes. 6. Verify that the promotion details are correct on the Segments, Tiers, Coupons, Discounts, and Qualifiers. 7. If you haven’t already activated the promotion, when you’re ready, on the Details tab, click **Active**. When you activate the promotion, it becomes available in your store. #### See Also - [Einstein Prompts for Creating Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_prompts_for_promotions_smart.htm&release=264.0.0&type=5 "When creating promotions with Einstein, use natural language text to describe the promotion.") - [Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_about.htm&type=5&language=en_US) - [Einstein Generative AI & Trust](https://help.salesforce.com/s/articleView?id=ai.generative_ai_trust_overview.htm&type=5&language=en_US) - [Enable Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_enable.htm&type=5&language=en_US) # Create a Purchase Quantity Rule for a B2B Store You can define the minimum and maximum amounts of a product that a customer can buy and the number of products to add with each increase. You can assign a quantity rule to simple products and product variations. Because parent products aren’t sold, they don’t need quantity rules. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) When creating a purchase quantity rule: 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Products**. 3. Select a simple product or a product variation, and click its **Related** tab. 4. Next to Quantity Rules, click **Assign**. 5. Click in the **Quantity Rule** field, and select **New Quantity Rule**. 6. Enter the amounts. The minimum and maximum quantities must be multiples of the increment. For example, minimum 4, maximum 400, increment 2. - Minimum—The lowest quantity that a customer can buy. - Increment—The fixed number of items that are added to the selection when the customer adds more of the same product. - Maximum—The highest quantity that a customer can buy. You can define the quantity amounts as whole numbers up to one hundred million or, for B2B stores only, as fractions up to four decimal places. For example, for fractional quantities, you can add a minimum of 1.500, a maximum of 1000.5000, or an increment of 1.5000. Fractional quantities are visible when a buyer searches for a product, views the product’s details, and adds the quantity to the cart. Fractional quantities are available only with B2B store. 7. Name the quantity rule, and save your work. The Cart Items, Product Detail Purchase Options, Quantity Selector, and Results Layout components have properties related to quantity rules. Use the properties to enter the display text for the quantity rule. # Create a Quiz Use quizzes in Point of Sale to understand your customers' preferences and gather valuable data. Create engaging quizzes, forms, or polls to capture user feedback and information. Add surveys after successful checkouts and include mandatory questions to ensure you get the data you need. You can create quizzes that will allow users to answer a question and see the results of the poll in real-time after submitting their answer. There are three types of quizzes you can create: - Quiz - Creates a quiz that is engaging and captures data to help you understand your users' preferences. - Form - Creates a form to capture data or feedback from users. For example, a form can be used to capture feedback from users that have just completed a checkout. - Poll - Creates a poll that allows users to answer a question and see the results of the poll in real-time after submitting their answer. #### See Also - [_Salesforce Help:_ Edit Quizzes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_edit.htm&release=264.0.0&type=5 "Point of Sale quizzes consist of layouts, questions, and customer attributes. Understanding these components helps you to effectively create quizzes. Knowing these components also enables you to avoid errors while editing quizzes. Leverage this knowledge to build effective quizzes in Point of Sale.") - [_Salesforce Help:_ Use Quiz Styles](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_styles.htm&release=264.0.0&type=5 "Customize the look and feel of inline Point of Sale quiz deep links.") - [_Salesforce Help:_ Create a Checkout Quiz](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_checkout.htm&release=264.0.0&type=5 "To collect additional information related to an order in the POS app during checkout, create quizzes that appear either just before tendering payment or just after an order is placed.") - [_Salesforce Help:_ Use Polls](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_poll.htm&release=264.0.0&type=5 "The quiz feature in Point of Sale can be used to administer a poll where users submit an answer and instantly see the poll results.") - [_Salesforce Help:_ Set Up Product Feedback Quizzes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_feedback.htm&release=264.0.0&type=5 "Capture customer feedback about a product using the POS app. By configuring CMS, you can gather valuable insights on products from customers within the app. This feedback loop empowers businesses to promptly address concerns, refine offerings, and improve customer satisfaction. Use the customer's voice to optimize product experiences and drive business growth.") ## Create a Quiz ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The maximum number of questions allowed in a quiz is 6. 1. Go to **Layout Pages** | **Personalization** | **Quizzes**. 2. Click the + icon. 3. Select the type of quiz that you would like to create (Quiz, Form, or Poll). 4. Fill out the fields and click **Create** in the top right of the screen. (Optional) You can make a question mandatory or not by checking Is Mandatory. 5. After you've created the quiz, you'll need to set a deep link for accessibility in the POS app. ## Set a Deep Link 1. Go to your app configuration and click **EDIT** | **EDIT LAYOUT**. 2. Select the cell where you'd access the quiz/form/poll. 3. Click **Deep Link** in the right toolbar menu. 4. Go to **Personalization** | **Quiz**. 5. Fill out the fields and click **SET**.![Select a deep link window showing the fields to complete.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_quizzes_create_deep_link.png) ## Add Survey After Successful Checkout 1. In CMS, go to your app configuration and click **EDIT**. 2. Go to the **UI** | **Quiz Layouts**. 3. Under Quiz After Order Layout, select a layout. 4. Click **SAVE**. ## Make Questions Mandatory You can make some or all questions in your quizzes mandatory. When a question is skipped without answering, the user will be prompted with an error message to answer before they can proceed. 1. In CMS, go to **Layouts Pages** | **Personalization** | **Quizzes**. 2. Create a new quiz, form, or poll. 3. For each question that is mandatory, check Is Mandatory. 4. Click **Create Quiz**. 5. (Optional) If you no longer wish to make a question mandatory, go to **Layouts Pages** | **Personalization** | **Quiz Elements** | **Quiz Questions**. 6. Edit a question by clicking on the vertical ellipses (three dots) in the upper right of the question. 7. Uncheck Is Mandatory and click **Save**. # Create a Shareable URL for Your Store Customers can use a shareable URL to access your B2B store. The shareable URL contains a special URL parameter that's associated with a buyer group that has its own price book and discounts. Customers who get to the store using the shareable URL are automatically assigned to the associated buyer group, either in addition to the buyer group the customer is already part of or instead of that buyer group, depending on how your developer set up buyer group extensions. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) A social media influencer can provide a shareable URL to their followers that gets the followers discounts on specific items. Similarly, if multiple distributors are selling products in your store, each distributor can have a shareable URL that assigns their customers to a specific buyer group that receives special discounts. To create a shareable URL, add a URL parameter to the markup in the store's heading. When your developer configures buyer group extensions, the developer can specify what happens when a customer arrives at the store using a shareable URL. The shareable URL customer can be assigned to the buyer group associated with that shareable URL _along with_ the buyer group that was dynamically assigned. Alternatively, the shareable URL customer can be assigned to the buyer group associated with the shareable URL _instead of_ the buyer group that was dynamically assigned. For example, consider a customer John Doe, who browses your store with the location set to US. You've set up special discounts on your store for Black Friday. Customers who have the store location set to US receive a special discount on all items in the store. John's son sends him an influencer's referrer link to the store. Anybody accessing the store through the link gets 10% off the price of certain items in the store. When John accesses your store using the link his son sent him, one of two things happen depending on how you set up the buyer group extension - If the buyer group extension was set up such that the buyer group associated with the referrer URL overrides the dynamically assigned buyer groups (the buyer group based on location, for example), then John receives only the 10% discount on the price of certain items. - If the buyer group extension was set up such that the buyer group associated with the referrer URL exists in addition to the dynamically assigned buyer groups, then John receives the 10%discount on certain items, as well as the Black Friday discounts you've set in place for your US store. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Salesforce recommends that you keep the number of characters in the URL parameter short so that your URL doesn't exceed the common browser limit of 2048 characters. To implement a persistent URL, follow these steps. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Click **Website Design** and then select **Experience Builder**. 3. In Experience Builder, click **Settings** | **Advanced**. 4. Click **Edit Head Markup**. ![Screenshot showing Edit Head Markup under Advanced Settings in Experience Builder](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_shareableurl_expbuilder_advancedsettings.png) 5. Add the URL parameter to the existing markup. Faster Add-to-Cart supports only 20 parameters, with a maximum key length of 25 characters and a maximum value length of 251 characters. For more information about Faster Add-to-Cart, see [Improve Product Page Performance in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_faster_add_to_cart.htm&language=en_US). For example, this sample markup code shows how to add a custom parameter `referrer`, in the URL. ``` ``` The final markup looks like this. ![Screenshot showing head markup after edit.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_sharableurl_markup.png) 6. Set the security level to **Relaxed CSP: Permit Access to Inline Scripts and Allowed Hosts**. ![Screenshot showing Relaxed CSP in the Advanced Security Settings in Experience Builder](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_shareableurl_expbuilder_securitysettings.png) For more information, see [Select a Security Level in Experience Builder Sites](https://help.salesforce.com/s/articleView?id=experience.networks_security_csp_scriptlevel.htm&language=en_US). 7. Add an Apex extension that returns the buyer group for a user based on the URL parameter. When working with Apex, make sure that you follow the security tips for Apex development. For more information, see [Security Tips for Apex and Visualforce Development](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/pages_security_tips_intro.htm). For example, this custom code for the referral parameter`referrer` is linked to a referrer's username. The buyer group associated with the URL parameter is Discounted Buyer Group. ``` if URL has parameter 'referrer': referrerUser = getUserByUsername(referrer) if referrerUser exists: assign shopper to Discounted Buyer Group else: assign shopper to Normal Buyer Group else: assign shopper to Normal Buyer Group ``` If necessary, you can download a sample code, make the necessary changes, and then use the updated code for your store. See [Shareable URL sample](https://github.com/forcedotcom/commerce-extensibility/blob/main/commerce/domain/buyergroup/service/classes/BuyerGroupShareableURLSample.cls). 8. [Publish your store](https://help.salesforce.com/s/articleView?id=commerce.comm_publish_store.htm&language=en_US). # Create a Simple Return with a Refund Use the simple return workflow to process a return for one or more items and issue a refund. For example, a customer can use a return slip included with the order invoice to return items directly to you without contacting a service rep or creating a return request online. If you don’t track returns that are initiated online or through a service rep, you can also use this workflow. You can process a simple return with a refund only for items that are fulfilled and associated with an order summary. ### Required Editions
View supported editions.
To track returns and verify the quantity and condition of returned items before you issue a refund, instead create a return management authorization. 1. From the Navigation bar, open the Order Summaries list view page. 2. Select the order number that contains the items to return, and open the corresponding order summary record. You can also open the order summary directly from the customer’s account in the Service Console. 3. On the Related tab, in the Return Orders section, confirm that there’s no existing return order for the items. 4. From the Actions & Recommendations list, select **Return Items**. 5. On the Return Items page, select the items to return, and click **Next**. Only eligible items are listed. If you select a product bundle, all child products are selected. You can manually select or deselect child products, however a refund is processed only if the bundle item is selected. We recommend reviewing your store's bundle policy. 6. For each item selected, enter the required information. Or, to return items in bulk, use the Apply to All Items row. If you're processing a bundle, you can modify the quantity of child products, however the refund isn’t prorated even if only some of the child products are returned. 7. Click **Next**. 8. Review the return information, and submit the return. 9. Click **Finish**. Order Management creates a change order, generates a credit memo, and refunds the customer’s payment. Order Management also updates the item quantities and financial information on the Order Summary and associated objects. The updated quantities show the items that are still fulfilled. If the quantity for an item is reduced to 0, the status of the item changes to Returned. Otherwise, the status reflects the quantity that wasn’t returned. #### See Also - [Choose a Return Type](https://help.salesforce.com/s/articleView?id=commerce.om_return_order_types.htm&release=264.0.0&type=5 "When processing a return, you can process a simple return and issue a refund or create a return order and return merchandise authorization.") - [Using Return Merchandise Authorization](https://help.salesforce.com/s/articleView?id=commerce.om_process_return_merchandise_authorization.htm&release=264.0.0&type=5 "Sometimes, it’s useful to track the return process before issuing a refund. A return merchandise authorization (RMA) gives you closer oversight on the return process, to make sure that the product is returned in the appropriate condition and quantity. RMAs can be especially user for larger, more expensive items, or for smaller businesses that have limited stock. For example, if the wrong product was shipped, the RMA ensures the product is returned before you refund the cost.") # Create a Size Passport View and add to your list of Custom-Made sizes in the Point of Sale (POS) app. Prerequisites: - Modern POS App build: 6.1.4 21727 or later. - Platform Support: iPhone and iPad - Offline Support: no - Technical Prerequisites: - An endpoint that is used to generate a token using a POST call. - Customer should support Web Pages that handle the authentication tokens. - Customized Products is a web configurator used by some of our customers. ## Turn on App Settings 1. Go to **App Config > Modules > Settings**. 2. Under **Web Token URL**, enter the token service endpoint. 3. Under **Web Token Scope**, enter the scope of the token permission, passed in the request as _"resource"._ 4. Under **Web Token Grant Type**, enter the token type passed in the request as _"grant\_type"._ 5. Under **Web Token Client ID**, enter the client ID to call the token service, passed in the request as _"client\_id"._ 6. Under **Web Token Client Secret**, enter the client ID to call the token service, passed in the request as _"client\_secret"._ ## Configure a Size Passport Deep Link 1. Add a deep link to a layout cell or in a hamburger menu. 2. Select **URL** as the deep link type. 3. Add the URL for the size passport endpoint with these parameters: 1. **token=1**: To generate an Azure token so it's passed to the size passport call 2. **dyo=1**: To indicate that the URL is a DYO endpoint 3. **storeId=:ps\_store\_id**: Use the PS tag to be replaced with the user's store ID 4. **CustomerID=:ps\_alternate\_customer\_id**: Use the PS tag to be replaced with the user's ID ## Workflow Details 1. A token will be generated by the POS app using the values set in CMS. 2. After this call is successful, the POS app launches the Custom-Made + Size Passport web app. 3. The app receives the ‘**configurators:addToBag**’ event if a product is added to the bag. This works out of the box for Custom-Made products. 4. After a customer is selected, the app receives the ‘sp-account’ event. The app holds on to this value and log in the customer after a product has been added to the cart. # Create a Synonym Rule for B2B Store Define one-way or two-way relationships to map buyer search words to your catalog data. Connect alternate phrasing, informal words, or regional terms to your exact product names to make sure that buyers find relevant products even when they use search terms that don’t exactly match your catalog. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Synonym Rules**. 3. Click **New Rule**. 4. Select a rule type: One-Way or Two-Way. - One-Way (A → B): Query A retrieves products matching term B, but query B doesn't retrieve products for term A. Use one-way rules when buyers are likely to use informal or alternative terms to search for formal product names. For example, with a one-way, "phone charger" → "lightning cable," searching for "phone charger" returns products labeled "lightning cable," but searching for "lightning cable" returns only products with that exact term. - Two-Way (A ←→ B): All terms are treated as equals. Query A retrieves products for B, and query B retrieves products for A. Use two-way rules when terms are true synonyms. For example, with a two-way rule "couch" ←→ "sofa," searching for either term returns products labeled with both terms. 5. Select the locales for this rule. You can set the rule for a specific locale such as en-US, or for all locales. 6. Enter the search term that buyers use. For one-way rules, the search term is the query term (A). For two-way rules, the search term is one of the equivalent terms. 7. Enter the matching term or terms from your catalog. For one-way rules, enter the matching term in your catalog as the target term (B). For two-way rules, enter all equivalent terms separated by commas. 8. Click **Save**. If the rule conflicts with an existing rule, a warning appears. Common conflicts include phrase overlaps, redefining a term that exists in a two-way rule, or duplicates. 9. Update the search index so that changes appear in your store. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&type=5&language=en_US). #### See Also - [Synonym Rules for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_search_synonym_rules_for_b2b_stores.htm&release=264.0.0&type=5 "Synonym rules define relationships between different search terms that buyers use to describe the same product. Buyers often search using everyday language rather than your exact catalog terms. By mapping alternate words to your catalog terminology, synonym rules ensure searches return relevant results and make products easier to discover. Configure one-way rules for targeted mappings or two-way rules for fully interchangeable terms. For example, a one-way rule allows a search for “sofa” to return products named “couch”, while a two-way rule ensures searches for either term return results for both.") - [Edit or Delete a Synonym Rule in B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_edit_delete_synonym_rules.htm&release=264.0.0&type=5 "Modify existing synonym rules or remove rules that no longer apply to your current catalog.") - [Activate or Deactivate a Synonym Rule in B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_activate_synonym_rules.htm&release=264.0.0&type=5 "Turn synonym rules on or off temporarily to adjust the search behavior without deleting them.") # Create a Tax Engine A tax engine calculates tax rates for cart items based on specified geographic and regulatory rules. Set up a tax engine if you're using simple gross tax. When you configure the manual Salesforce tax solution in B2B Commerce, set up a tax engine record using your tax provider's name, mailing address, seller code, Apex adapter name, and credentials. 1. In the App Launcher, search for and select **Tax Engines**. 2. Click **New**. 3. Set the Tax Engine Status as **Active**. 4. Enter your tax provider information. 5. For Type, select **Standard Tax Engine**. 6. Save your changes. # Create a Tax Policy A tax policy determines how taxes are calculated and applied to products during checkout. When you configure the manual Salesforce tax solution in your B2B store, create a tax policy for each product type, so that the correct taxes can be applied when buyers check out their cart. A tax policy must be associated with a tax treatment. 1. In the App Launcher, search for and select **Tax Policies**. 2. Click **New**. 3. Enter a name for your tax policy. 4. Specify a Treatment Selection. 5. Select the default tax treatment. 6. Set the status, and save your changes. If you haven't already created the tax treatment, set the status to Draft and then save your changes. After you create the tax treatment, update the tax policy and then mark the tax policy as active. After a tax policy is active, you can edit only the tax policy's description. # Create a Tax Treatment A tax treatment defines how taxes are calculated for a specific item through the product's tax code. When you configure the manual Salesforce tax solution in B2B Commerce, create a tax treatment. 1. In the App Launcher, search for and select **Tax Treatments**. 2. Specify the tax treatment name and enter an optional description. 3. Select the Legal Entity. The Legal Entity name must be the same as your store name. 4. If you have Revenue Cloud Subscription Management and Commerce permissions enabled, select **Yes** for taxable. If you have only Commerce permissions, you don't see this field. 5. Specify the tax engine that you created earlier. 6. Enter the tax code for the tax rates for this treatment. 7. Set the tax policy to the policy that you created earlier. 8. Set the status as Active, and save your changes. # Create a Unique Host Name Alias for On-Demand Sandbox SEO Testing You can now use the On-Demand Sandbox aliases API to create a unique, global host name alias. Previously, to access a sandbox globally, you had to use an already existing DNS CNAME record that points to the sandbox origin. To access a sandbox locally, you can still create a reusable host name using a non-unique alias and generate a registration link to access the sandbox. **How:** To learn how, see [Use a Unique Host Name Alias](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-manage-sb.html). # Create Active Data Sorting Rules The Search Index Query Testing (SIQT) tool now supports sorting rules with active data sorting attributes. Get consistent sorting results in a storefront and when testing an active data sorting rule. Previously, if a sorting rule with active data was used in SIQT, the sorting used text relevance and didn’t consider active data. ![Search Index Query Testing](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/24_6/search_index_query_testing_1.png) ![Search Index Query Testing](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/24_6/search_index_query_testing_2.png) **How:** To access the SIQT tool, in Business Manager select **Merchant Tools** | **Search** | **Search Index Query Testing**. # Create an API Client for Order Management (Optional) To help troubleshoot and gather metrics, create a dedicated API client ID for your Order Management integration with B2C Commerce. The API client helps you identify actions associated with the client ID. You can also use an existing API client and share it with other functions. 1. Log in to Account Manager as an account administrator at [https://account.demandware.com/](https://account.demandware.com). 2. Click **API Client**. 3. Click **Add API Client**. 4. For Display Name, enter a descriptive name. 5. Click **Add**. 6. Click **Add** again. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Create an App Config for the Enhanced Method for App Config Segmentation Create a Point of Sale app configuration in CMS to customize your app's look and feel with logos, fonts, and other settings. iOS users can leverage a variety of native, license-free fonts by typing the name directly. In CMS, go to Apps. 1. Click **+** to create an app configuration. 2. Select the app config type and click **Next** in the upper right corner. 3. On the App Config Details screen, set the logo, fonts, and other related settings to customize the app's look and feel. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip iOS supports [many fonts](http://iosfonts.com/) natively. You can type in a font name even if it doesn't appear in the dropdown list. These are license-free fonts available for use. 4. Click **Next** when done. You'll be directed to the App Config Segment Preferences screen. # Create an App Config using the Traditional Method for App Config Segment Set up your app's visual identity in Point of Sale by configuring the logo, fonts, and other settings in the CMS. iOS supports a wide range of license-free fonts, allowing you to customize the app's appearance to match your brand. 1. In CMS, go to **Apps**. 2. Click **+** and select the type of store app and click **Next**. 3. On the App Config Details screen, set the logo, fonts, and other related settings to customize the app's look and feel. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip iOS supports [many fonts](http://iosfonts.com/) natively. You can type in a font name even if it doesn't appear in the dropdown list. These are license-free fonts available for use. 4. Click **Create**. On the next screen, you see two app configs (manager and associate). These are created for you by default to enable role-specific usage (manager vs. associate). # Create an Entitlement Policy Create an entitlement policy declaratively, through the Commerce app. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) The components used before the introduction of B2B templates don’t respect associated entitlements. Any customer can see the content in those components, regardless of their entitlements. Consider this behavior before adding components in your store. Also, only B2B Commerce can recognize the entitlement policies that you create. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Buyers and shoppers need record-level sharing access to see standard record detail components. 1. In the App Launcher, find and select **Entitlement Policies**. 2. On the Entitlement Policies page, click **New**. 3. Give your policy a name and add a description. 4. Select whether the buyer groups added to this policy can see products, and then select whether those buyer groups can also see product prices. For a B2B store, if you want buyers and guest users to see only categories that have entitled products, contact Salesforce customer support to enable this functionality. This feature is available only for catalogs with fewer than 500,000 products. 5. For a buyer to view a category or its descendent categories, ensure that the buyer or guest user has an entitlement to at least one product within the category. If a buyer has a direct link to a category that isn’t entitled, the category appears but doesn’t show any products. 6. To enable the policy, click **Active**. 7. Click **Save**. 8. Click **Related**. 9. Assign products to the policy. 10. Assign buyer groups to the policy. 11. Rebuild your search index for your changes to take effect. #### See Also - [Buyer Groups, Entitlements, and Pricing Strategies for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_buyergroup_entitlements_pricebooks.htm&release=264.0.0&type=5 "Set up buyer groups, entitlements, and price books to customize product visibility and pricing for each buyer in your store. Here are three examples of strategies you can consider for your store.") # Create an Omni-Channel Routing Flow for the B2B Guided Shopping Agent An Omni-Channel routing flow routes messages from the messaging service to your guided shopping agent for your B2B store. Create a flow to automate routine tasks, and to make agent communication more efficient. ### Required Editions
View supported editions.
Before you begin, create a guided shopping agent for your B2B store. See [Create a Guided Shopping Agent for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_create_agent.htm&language=en_US). 1. In your Salesforce org, click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter and select **Omni-Channel Settings**. 3. Select **Enable Omni-Channel** and **Enable Skills-Based and Direct-to-Agent Routing**, and then save your settings. 4. In the Quick Find box, enter and select **Flows**. 5. Create a flow, and select the Omni-Channel Flow template. 6. Add an element of the type Route Work. 1. Add a label for the element. The API Name field is automatically populated. 2. Create the variables recordId and input\_record under Set Input Values. 7. Select Messaging as the vaue for Service Channel, and route to an agent. 8. Select the agent to which the messages are routed. 9. Select the backup or fallback queue to which the messages are routed. 10. Save your changes and activate the flow. #### See Also - [Localize a B2B Guided Shopping Agent](https://help.salesforce.com/s/articleView?id=sf.comm_agent_guided_shopping_localize.htm&language=en_US) # Create an Operation Scheduler for On-Demand Sandboxes Administrators can now use the Operation Scheduler to start and stop sandboxes in realms that have their `autoScheduled` parameter set to true. Previously, they stopped each sandbox manually. Sandboxes that are running consume more uptime credits than when they’re stopped. **How:** For instructions on how to create an Operation Scheduler, go to [Create an Operation Scheduler for On-Demand Sandboxes](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-manage-sb.html). For information about setting the `autoScheduled` parameter, go to [Create an On-Demand Sandbox](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-get-started-sandboxes.html). # Create an Unmanaged RMA Return Order You can create an unmanaged RMA return order to manually track a return for one or more order items directly from the Order Summary page. You can create an unmanaged RMA return order only for items that are fulfilled and associated with a managed order summary. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Salesforce D2C Commerce doesn’t include RMA functionality. It can process only simple returns. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important Because an unmanaged RMA return order doesn’t update the order item quantities or financial information, users can create adjustments or returns for order items already returned. So before you create an unmanaged RMA return order, make sure to set up manual processes to synchronize your order records. To process a return and immediately issue a refund, create a simple return with refund instead. 1. From the Navigation bar, open the Order Summaries list view page. 2. Select the order number that contains the items to return, and open the corresponding order summary record.
 You can also open the order summary directly from the customer’s account in the Service Console. 3. On the Related tab, check the Return Orders section to verify that there’s no existing return order for the items being returned. 4. In the Return Orders section, select **New**. 5. On the New Return Order page complete the fields.
 If a selected item already has a quantity being returned in another return order, then you must select a different reason. Duplicating the reason breaks the refund calculation. 6. Save your changes. #### See Also - [Managed and Unmanaged RMA Return Orders](https://help.salesforce.com/s/articleView?id=commerce.om_managed_unmanaged_return_orders.htm&release=264.0.0&type=5 "Return merchandise authorization (RMA) return orders support both managed and unmanaged orders, so whatever degree of service you provide for orders, you can still keep a tight level of control over returns and refunds.") - [Submit an Unmanaged RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_submit_a_return_order.htm&release=264.0.0&type=5 "When you receive returned order items, you can submit the unmanaged RMA return order and process a payment refund to the shopper or buyer.") - [Cancel a Managed or Unmanaged RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_cancel_managed_unmanaged_rma_return_order.htm&release=264.0.0&type=5 "If the shopper or buyer doesn’t return the expected items, you can cancel an RMA return order.") - [View Return Orders](https://help.salesforce.com/s/articleView?id=commerce.om_view_return_orders.htm&release=264.0.0&type=5 "A return order record contains details about the returned items and related records, including the associated order summary.") # Create and Customize Orders Custom orders in the POS app empower users to create personalized transactions that include additional charges, clearance items, and add-on products. With custom orders, you can accommodate specific customer requests and manage a wider range of sales scenarios. Tailor each transaction to meet individual customer needs, ensuring a seamless and satisfactory shopping experience. Setting up custom orders enhances flexibility and control over the sales process. - **[Set Up Additional Charges for CRV, Liquor Tax, and Deposits in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_additional_charges_set_up.htm&release=264.0.0&type=5)** Beverage retailers need the ability to charge and disclose additional charges like CRV, liquor tax, and deposits on the items that customers purchase. In the United States, the Container Deposit Legislation/Bottle Bill governs the additional charges. The Container Deposit Legislation/Bottle Bill generally requires a refundable deposit on certain types of recyclable beverage containers to maintain an increased recycling rate. - **[Set Up Clearance Items in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_clearance_items_set_up.htm&release=264.0.0&type=5)** Clearance items are items in a store that are sold at a discounted price. They can be enabled by flagging certain variants of a product in your store's inventory feed. IItems like display models or floor models are examples of clearance items. License plating, or unique identification, of clearance items will be performed based on their serial numbers. - **[Configure Add-On Products in the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_add_on_products_configure.htm&release=264.0.0&type=5)** Configure and implement add-on products on the POS app. Add-ons are specific to a product in the cart. For example, a warranty for jewelry and furniture or an embroidery charge (SKU) linked to an item to be monogrammed are add-ons. Add-ons appear on the product details page (PDP) with an option to add them to the cart. You can also control whether add-ons are eligible for refunds during the return process. - **[Create Custom Orders in the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_orders_configure.htm&release=264.0.0&type=5)** Point of Sale allows you to create orders for custom-made items by capturing product attributes through a layout. A new product is created at runtime in Point of Sale. You can create a custom order from a basic part or product to add specific fabrics, textures, and styles. Creating custom orders helps to deliver a personalized and unique product for each customer. - **[Manage Product Warranties in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_manage_warranty.htm&release=264.0.0&type=5)** Dynamic warranty management uses an SPI so the POS can send cart data to your warranty engine, receive eligible warranty SKUs, and replace prior warranty lines with the SPI result. Learn how the POS system identifies warranty products, the required CMS setup, and the associate flow during checkout. - **[Integrate a Customizable Product WebView](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_webview.htm&release=264.0.0&type=5)** Point of Sale's Design Your Own (DYO) feature lets merchants integrate a Customizable Product WebView. Users can launch a WebView on the POS app to create or alter products. Then, they can add the products to the cart for checkout. - **[Set Up Non-Merchandise SKUs](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_non_merchandise_sku.htm&release=264.0.0&type=5)** POS enables you to configure non-merchandise SKUs, such as postage stamps and gift certificates, to meet your business needs. You can also configure the checkout rules that apply to these items. Control if these items are discountable or taxable, and set other rules. - **[Create Not on File Items](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_not_on_file.htm&release=264.0.0&type=5)** The Point of Sale app offers an option to add Not on File items (products not listed in the Feeds) into the cart. Store associates can continue to add these items to the cart and finalize the checkout process. - **[Add Product Special Instructions](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_product_special_instructions.htm&release=264.0.0&type=5)** Display special instructions on the product details screen when adding items to the cart using POS. Special instructions offer more product details. For example, you can display storage instructions. Ensure that users have all the information needed about a product before completing a purchase. - **[Require Billing Address for Orders](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_require_address.htm&release=264.0.0&type=5)** Configure POS to require a billing address before completing an order. Requiring a billing address ensures you have complete customer information for all transactions. This configuration is managed within the CMS. Streamline your checkout process and maintain accurate records by enforcing this requirement. - **[Set Up Special Fees](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_special_fees.htm&release=264.0.0&type=5)** The POS app can support special fees that are levied only in certain stores based on the location of the store. These fees can include public improvement or franchise fees, - **[Set Up Order Number Prefixes for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_order_number_range.htm&release=264.0.0&type=5)** Configure order number prefixes to identify store and transaction types when processing orders. #### See Also - [_Salesforce Help:_ Set Up Order Number Prefixes for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_order_number_range.htm&release=264.0.0&type=5 "Configure order number prefixes to identify store and transaction types when processing orders.") # Create and Delete On-Demand Sandboxes Manage on-demand sandboxes (ODS) and B2C Commerce instances in a central location with clicks not code. Use B2C Commerce Control Center to create and set the ODS TTL value and resource profile settings, monitor ODS status, and delete your ODS instances. # Create and Manage Customer Quotes Merchants can create and track customer quotes on the POS app. Each quote has a unique number and includes customer information. Store associates can work with customers on merchandise and pricing, either in-store or over the phone, and then email the quote for review or print it on A4 paper. Customers can save the quote, delete it, or complete the checkout process. Prerequisites - Modern POS App Build: 5.10.3 or greater - Platform Support: iPhone and iPad - Offline Support: No ## Enable Quotes for POS App From the CMS, enable the feature to create quotes from saved carts. 1. In CMS, go to Apps and edit an app config. 2. Go to **Modules** | **POS**. 3. Select Enable Quote On Saved Cart. 4. Save your changes. ## Access Quote History In the CMS, configure a deep link so store associates can look up customer quotes on the POS app. 1. Edit a layout, hamburger menu, or tab. 2. Using the deep link picker, go to **Store Associate** | **Quote History**. 3. Under Default Customer, set the type of customer search on the app: - Current Customer—Returns quotes for the customer logged into the app. - All Customers—Returns quotes for any customer. For this option, you can configure the default search queries for store, associate, register, and date range. 4. Save your changes. ## Create a Deep Link for Quotes From Cart You can create quotes from a suspended cart. Alternatively, you can create quotes directly from the cart by configuring a deep link. After a quote is created, it logs a quote created event in the Electronic Journal. Learn about the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud."). 1. In CMS, go to **Layouts** | **Layout Pages**. 2. Create or edit an existing Cart Options layout. 3. Add a new tile for the deep link. 4. Using the deep link picker, go to **More** | **Create Quote From Cart**. 5. Save your changes. ## Specify an External Master of Records Point of Sale manages all quote records by default, but you can configure a third-party ERP system as the Master of Records and retrieve quote data from there. When a merchant system is configured as the master of record, all quotes must originate from that system, and any modifications to quotes are reflected in the merchant system. As of 2023, Point of Sale only supports NetSuite as the Master of Records for quotes. When an external ERP system is configured as the Master of Records, the following behavior applies: - All quotes must come from the merchant system. - Any modifications made to quotes are reflected in the merchant system. - Quotes can be viewed in the POS app but cannot be edited or deleted from Point of Sale. 1. In CMS, go to **Store Management** | **Store Settings** | **Advanced**. 2. Enable **Quote Master of Record is external ERP system**. 3. Save your changes. ## Retain Quote ID on Edit When Point of Sale is the master of quotes, merchants can choose to keep the same quote ID when editing a quote. Otherwise, a new quote ID is generated each time a resumed quote is saved. If a resumed quote is saved, the suspended cart is no longer listed in the saved cart lookup, but all changes are updated in the original quote. This setting only applies when Point of Sale is the master of records. When an external ERP system is the master of records, quote modifications must be made in the merchant system. 1. In CMS, go to **Store Management** | **Store Settings** | **Advanced**. 2. Enable **Keep same Quote ID when quote is resumed as cart and then converted back to quote (retainQuoteIdOnResumedCart)**. 3. Save your changes. ## Create and Manage Quotes in the POS App On the POS app, you can create and manage quotes. ### Required Editions
Available in:
### Creating Quotes from Suspended Carts 1. After saving a cart, tap the [Saved Cart History deep link](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_process_suspend_cart.htm&release=264.0.0&type=5 "The Point of Sale platform supports a feature that allows store associates to save a cart and resume and complete it later. By saving a cart, the totals, discounts, customer information (including shipping/billing addresses), and shipping methods will be put on pause until the associate chooses to resume it.") to access the Suspended Cart list. This list shows all saved carts. 2. Locate the desired cart and tap **Create Quote**. 3. Enter the quote details and tap **Create**. You can view all quote details, such as the products included, customer information, and the associate who created the quote. 4. Tap **More Options** to email or print the quote for the customer, or to delete the quote. Optionally, tap **Resume Cart** to add the products back to the cart and complete the checkout process. ![Create a quote from a suspended cart on the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_quotes_from_suspended_cart.png) ### Creating Quotes from Cart To create a quote directly from the cart, tap the Create Quote From Cart deep link, and enter the details of the quote. ### Viewing Quotes To display all created quotes, tap the Quote History deep link to access the list. This list can be filtered by customer, quote ID, and store or date. ### Filtering Quotes To view only specific quotes, filter the list by searching on specific criteria. By default, the Quotes list shows only quotes created in the POS app. To import and view quotes from connected systems (such as ecommerce, call centers, CRM, and order management), configure the [Quote Service SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/references/quote-spi?meta=Summary). When a merchant system is configured as the master of record, all quotes must originate from the merchant system, and any modifications to quotes are reflected in the merchant system. You can also use the [Quote Events Webhook](https://developer.salesforce.com/docs/commerce/retail-cloud/references/quote-events-webhook?meta=Summary) to receive notifications about quote changes. 1. Filter by any one of these criteria: - By Customer—To filter quotes based on a particular customer, tap **By Customer** and enter the customer details. To yield the best results, limit your search to one field. Searching on multiple fields can be more accurate; however, it can also return no results. - By Quote ID—To filter quotes based on a particular quote, tap **By Quote ID** and enter the ID. - By Store/Date—To filter based on more advanced criteria, tap **By Store/Date** and select any of these criteria: - Associate identifier (defaults to current associate) - Store identifier (defaults to current store) - Date Range (Today, Yesterday, past 3 days, and past 7 days) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip To change a selected date range, select **By Store/Date**. On the Search By Store/Date page, highlight the Date Range value to show the list of options, and then select a different range. 2. Tap **SEARCH** to see the filtered results. ## Customer Quotes Known Issues and Restrictions When working with customer quotes, be aware of these considerations. ### Required Editions
Available in:
### Searching for Quotes by Customer When searching for a quote by customer, the format of the phone number you enter must match the format used when the quote was created. For example, if the phone number format is (123) 456-7890, enter the number using that same format. If you enter a mismatched format such as 1234567890, you receive inaccurate results. ### Creating Quotes from the Cart When creating a quote from the cart, the register ID isn't shown because Point of Sale can't receive the ID from third-party systems such as NetSuite. ### Quotes with Discontinued Products Discontinued products are those not in the POS product catalog. If you attempt to resume a quote with discontinued products, the POS app displays an error message. The associate can then choose to create a new quote or cart. ### Editing and Deleting Quotes When a merchant system is configured as the master of record, all quotes must originate from the merchant system. Any modifications to quotes are reflected in the merchant system and cannot be edited or deleted from the POS app. When you delete a quote created in Point of Sale, it is removed from Point of Sale and is no longer accessible. For quotes originating from external sources like NetSuite, you cannot delete them using the POS app. ### Viewing Quotes The limit of viewable quotes in the POS app is 100. If the number is greater than that, only the latest 100 are visible, though all quotes remain in the system. # Create and Manage Dynamic Pages More Efficiently Dynamic pages are typically implemented as Product List or Product Detail pages for which the content changes based on which category or product is rendered. With this version, you can create and manage these pages more efficiently. What: When you open a dynamic Product List page, a category is now preselected in the preview settings and rendered in the page. Typically, the first category assigned to the page is selected. Previously, you had to go to the preview settings and select a category. If no category is assigned to the page, or if a page uses product as its dynamic attribute, you must configure a setting in preview. For Product List pages, or other dynamic pages for which the dynamic attribute is category, you can specify when components appear on a page based on the category rendered. For example, you can specify that one component appear on the page when the men’s clothing category is rendered and a different component appear for women’s clothing. To configure component visibility, the merchant selects Targeting in the component dropdown and then chooses one or more categories. If the merchant selects multiple categories, the component is visible whenever any of the categories are rendered. The list of Page Designer pages in the visual editor includes two new columns for dynamic pages that indicate the purpose of the page and the categories assigned to the page. ![List of Page Designer pages.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_7/page_designer_page_list.png) When you click the SEO tab in the Page Settings window for a dynamic Product List or Product Detail page, a link to the Page Meta Tag Rules feature in Business Manager is displayed. Use the Page Meta Tag Rules to specify which HTML meta tags are rendered with the page. ![Page Meta Tag Rules](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_7/page_des_SEO.png) #### See Also - [Create a Page Using the Page Designer Visual Editor](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_create_page.html) - [Create Page Meta Tag Rules](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/search_engine_optimization/b2c_creating_page_meta_tag_rules.html) - [Manage Component Visibility on Product List and Product Detail Template Pages](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_manage_component_visibility_dyn_pages.html) # Create and Manage Marketing Consents It’s important to build direct connections with B2B customers so you can build brand loyalty. With proper consent management, you can get customers’ email addresses and permission to send them marketing messages. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) While creating marketing consents, keep these considerations in mind. - At least one consent is required. - There's a default limit of five consents. - The consent name must be unique. Consider adding the store name or other unique identifier. 1. In the navigation sidebar, from the Store dropdown menu, select the store. 2. Click **Settings** | **Messaging**. 3. In the Marketing Consents section, click **New**. 4. Enter a unique name for the consent. 5. Enter consent checkbox text. After you save the consent, you can’t update this text. 6. (Optional) Enter a consent description. This text appears under the consent checkbox text on your store. 7. Select the communication channels that this consent supports. 8. Select which store components show this consent to customers. 9. Click **Save**. #### See Also - [Manage Marketing Consents for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_marketing_consents_intro.htm&release=264.0.0&type=5 "Use the Commerce Messaging workspace to create customer consent messages to capture emails and grow your marketing campaigns. Marketing consents for B2B requires the CommerceMessagingAddOn license, which is packaged with Commerce Growth or Advanced editions. You'll need an enhanced CMS workspace and the refreshed Commerce app. It also requires Marketing Cloud and Data 360 and it uses Data 360 credits. Reach out to your account executive to learn more about credit usage. Marketing consents aren’t available for Reorder or Pay Now stores.") - [_Trailhead_: The Combined Power of Marketing Cloud Next and Agentforce Commerce](https://trailhead.salesforce.com/content/learn/modules/the-combined-power-of-marketing-cloud-and-commerce-cloud) # Create and Publish Layouts Learn how to create and publish layouts using the Point of Sale Layout Editor, including starting from a blank layout or a template, and managing live versions, drafts, and scheduling. Discover how to edit, save, publish, and restore layouts, ensuring your content is always up-to-date and tailored to your needs. See [Layout Editor](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_editor.htm&release=264.0.0&type=5 "Easily manage and customize your layout in Point of Sale with powerful editing tools. Add, insert, resize, and delete rows and cells, and adjust cell padding for precise control. Enhance user experience with features like Paginate for full-screen views, override app config settings for tailored UI options, and Snap to Grid for accurate overlay alignment.") to learn about the core building blocks within a layout (i.e., rows and cells). ## Creating a Layout You can create a blank layout or base it on a template. ## Blank Layout To create a layout from scratch: 1. In the CMS, go to **Layouts** \> **All Layouts**. 2. Click **Add Blank Template**. ## From a Template To create a layout from a template: 1. In the CMS, go to **Layout Pages** > **All Layouts**. 2. Click **Add From Template**. 3. Select a template. 4. Enter a font name and click **CREATE.** ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip In addition to the fonts in the dropdown, iOS supports [many fonts](http://iosfonts.com/) out of the box. You can click on the font name and type in the font name even if it does not appear in the dropdown list. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Information about some of the existing templates: clienteling profile iPad, iPhone, and iPod can be found in this link. ## Viewing or Editing a Layout In the CMS, go to **Layout Pages** > **All Layouts**. Hover over a layout and click **EDIT**. ## Search & Pagination Controls: In the Layout Editor, to view the next page of layouts, click the right arrow icon in the top right of the screen. You can also search for layouts by typing into the search field. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip On the All Layouts screen, layouts appear in the order in which they were published. The most recently published layout appears first, the second most recently published layout appears second, etc. ## Live Version and Drafts The Layout Editor supports versioning and scheduled publishing. There is always one "Live" version of the layout, which is what you will see when you load the app. The different versions of the layout can be viewed and accessed from the versions panel. Once the versions panel is open, you can view drafts or history. The current layout that is being displayed is highlighted in blue. The "Live" layout has a green icon and draft layouts have a gray icon. ![The Layout Editor showing the expanded version panel.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_process_version_panel.png) When the drawer is closed, you can tell if you are working on a draft layout or the live one by looking for the "Live" icon in the header. ## Saving, Publishing, and Scheduling ## Publishing a Layout You can save and publish a layout with one click by clicking **PUBLISH NOW** in the top right of the screen (you will still see a confirm dialogue). If you relaunch the app, you will see the changes in the app. ## Saving a Layout The **SAVE** button always saves the layout as a draft. The changes are not visible in the app. If you are on a draft then the current draft is saved. If you are on a "live" or "history" layout and click **SAVE** then a new draft is created. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Relaunch the app to view changes after publishing changes to a layout. In the app, it's sometimes possible to drag down to force the app to get the latest version of the current layout. ## Scheduling a Draft to Be Published To schedule a draft to be published at a specific time and date, edit the layout and go to the draft's tab: 1. Click the dropdown next to Publish Now. 2. Click **SCHEDULE.** 3. Enter a time and date in the future. 4. Click **SCHEDULE**. Drafts that are scheduled to be published display the publish time in the toolbar. The changes can still be made to the draft without affecting the publishing schedule. ## Restoring a Previous Version of a Layout 1. Edit the layout. 2. Open the versions panel. 3. Select the previous version of the layout under History. 4. Click **PUBLISH NOW**. ## Copying a Layout To create a copy of an existing layout (drafts and published), refer to [Copy Tools](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy_tools.htm&release=264.0.0&type=5 "Migrate App Configs, Layouts, and Field Mappings across environments and locales with the Point of Sale Copy Tools. Export from your current merchant/locale and import seamlessly to any other, but avoid using between single-language and multilanguage accounts to prevent bugs and unintended side effects."). ## Deleting a Layout To delete a new layout: 1. Click **LAYOUT PAGES** from the CMS homepage or go to **Layout Pages** > **All Layouts**. 2. Hover over the preview and click the Delete icon. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Sometimes it isn't possible to delete a layout (e.g., when the layout is being used by an app config). ## Troubleshooting If you encounter any issues while configuring or publishing your layout, reach out to Salesforce Customer Support. Copy LayoutJson is a debugging tool used by Salesforce team members to extract layout JSON data for debugging purposes. This tool simplifies the process of identifying and addressing layout-related issues, such as incorrect app configurations in the POS app. # Create App Configs Tailor POS appearance and behavior for diverse retail scenarios. App Configs enable custom configurations for different use cases or segments. Retailers gain flexibility and control to optimize user experience and operational efficiency across devices, roles, and locations. - **[App Configs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_app.htm&release=264.0.0&type=5)** Customize and manage multiple app configs to tailor the appearance and behavior of POS for different use cases or segments, ensuring each register uses the most appropriate settings for its specific scenario. This flexibility enhances user experience and operational efficiency. - **[Segment App Configs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_seg.htm&release=264.0.0&type=5)** POS offers deep customization through App Config Segmentation. This feature lets retailers tailor the POS experience based on device, personnel roles or associates, and store locations. This enhanced method simplifies configuration and provides granular control over the POS interface for different users and contexts. # Create Attributes for Product Variations in B2B Stores An attribute identifies a specific product feature, such as size or color. A product can have multiple attributes, so you can group attributes into an attribute set. Then, apply the set to one or more products and then assign individual attributes. By using attribute sets, it provides consistency across products. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) To create an attribute set, first create individual product attributes, and then group them into a set that you apply to a particular product. For example, the variation parent product is ice cream, and it can use the attributes of flavor, type, and volume. If you group these attributes into a set, you can associate one attribute set rather than three. You can include up to five variation attributes in an attribute set. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note After you add an attribute set to a product, you can’t modify it. 1. Create a product attribute. Each product variation requires a unique attribute value. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Settings** | **Product**. 3. Click **Product Attribute** and then click **New**. 4. Select a display type, and enter a name and label for the attribute, for example, Color. 5. Add an attribute option, for example, Blue. To add more options, click **Add Value**. 6. Arrange the attribute options in the order you want or sort them alphabetically. 7. Click **Create**. After saving, if you want to delete or reorder attributes, go to **Object Manager** | **Product Attributes** | **Fields & Relationships**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note When you create ProductAttribute fields through the Commerce Admin UI, Salesforce automatically updates existing out-of-the-box commerce profiles and permission set licenses to provide Read access for the new fields. However, if you're deploying metadata changes to production without using the Store Administration, ensure that appropriate profile and permission set license updates are included in your deployment to maintain proper access controls. 2. Group the attributes for the product into an attribute set. 1. Click **Variation Attribute Sets**. 2. Click **New**. 3. Enter a name and description for the attribute set. 4. Move up to five attributes to the Selected Fields column, and arrange them in the order that you want them to appear. 5. For Group By, select the attribute you want to use to organize the display of product search results, and save your changes. See [Options for Displaying Product Variation Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_overview.htm&type=5&language=en_US). If you want customers to see product variations in search results grouped by a specific attribute, select that attribute in the Group By field. For example, if you want to show variations grouped by color, select Color in the Group By field. The way variation products are displayed in search results is also influenced by the settings you select in Product Variation in the search Additional Settings tab. On that page, you have three options for how you want the products to be displayed: - Show all product variations - Show parent product only - Show best match product only For more information about these settings, see [Configure How to Display Product Variation Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_setup_search.htm&type=5&language=en_US) and [Options for Displaying Product Variation Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_overview.htm&type=5&language=en_US). This table shows combinations you can create with the Group By field and the Product Variation Display Settings. | Group By | Product Variation Display Setting | Search Result Display on the Product List Page | | --- | --- | --- | | Attribute | Show parent product only | Shows a separate tile for each color variation. | | Attribute | Show best match product only | Shows a separate tile for each color variation. | | Attribute | Show all product variations | Shows all color variations and all other product variations. | | None | Show parent product only | Shows a single tile for the parent product. | | None | Show best match product only | Shows a single tile for the best match product. | | None | Show all product variations | Shows all product variations. | #### See Also - [Product Variations and Attributes](https://help.salesforce.com/s/articleView?id=commerce.comm_var_att_intro.htm&release=264.0.0&type=5 "Use variations to extend the range of products that you offer in your B2B store. For example, add size and color options to a tee shirt. Configure variations to be searchable in your stores and available in multiple languages.") - [Options for Displaying Product Variation Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_overview.htm&release=264.0.0&type=5 "Configure how to display product search results on your B2B store’s Product List page. You can show all the variations of the parent product, show only the parent product, or show only the best match.") # Create Boost and Bury Rules A strategic management of product listings in B2B makes sure that shoppers see the most relevant products first. Use boost and bury rules to align your search results and category pages with your business goals, like stock management, new product promotions, or selling high-value products. Select specific products manually or define attribute-based conditions to apply rules to matching products dynamically. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) While creating a boost and bury rule, keep these considerations in mind. - After you create or edit a rule, run a full update of the commerce search index so that the rule takes effect. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&language=en_US). - If multiple rules have the same target category or target search keyword, all the rules apply. - Avoid creating conflicting rules. For example, don't create a boost rule and a bury rule for the same product and category. - General updates to product categories don’t automatically update boost or bury rules. Update the rules if a product category change no longer aligns with the rule conditions. - If [Semantic Search](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_semantic_search_top.htm&language=en_US) is enabled, there’s no guarantee that products show up in the same positions in search results, though results are broadly accurate. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Merchandising** | **Product Curation**. 3. Click **New**. 4. In the New Rule window, select the type of boost or bury rule you want to create. - Storewide—Included products are boosted or buried wherever they appear in your store. Limit to 25 storewide rules. - Category—Included products are boosted or buried within the target category. Limit to 50 category rules. - Keyword—Included products are boosted or buried within the search results of the target search keyword. Limit to 50 keyword rules. After you save the rule, you can’t update the type. 5. If you’ve selected a category or keyword type rule, enter the target category or target search keyword. After you save the rule, you can’t update the target. 6. Enter a name. After you save the rule, you can’t update the name. 7. Assign a start and end date. 8. Enter a locale. Rules are locale-specific. If your store supports multiple locales, create a rule for each required locale. If the same rule needs to be applied for all locales, use the All Locales option. 9. Use the slider to select the boost or bury score. ' 10. In the Product Selection section, select how to identify products for this rule. - Rule Criteria—Define conditions based on product attributes to boost or bury matching products. The rule dynamically applies to all products that meet the defined conditions. If you select Rule Criteria: 1. For **Apply Rule When**, select whether the rule applies when any condition matches or all conditions match. 2. For each condition, select a resource, such as Brand or Color, an operator such as Equals or Contains, and enter a value. You can select only product attributes that are configured as searchable or filterable. 3. Click **Add Condition** to add more conditions. You can define up to 10 conditions per rule. 4. (Optional) Click **Preview Results** to review the products that match your conditions before saving the rule. - Manual Selection—Select specific products to boost or bury. If you select Manual Selection, assign single products. Don't add product sets, bundles, or product variation parent or child products. There's a maximum of 100 products per rule. 11. Click **Save**. Run a full update of the commerce search index to apply the new or updated rule to your store. #### See Also - [Preview Merchandising Rules](https://help.salesforce.com/s/articleView?id=commerce.comm_preview_merchandising_rules.htm&release=264.0.0&type=5 "After you create merchandising rules for your B2B Commerce store, such as boost or bury rules, you can preview how the rules affect product positioning. Access the Preview screen from the Rules workspace.") - [Pin Products to Category Pages](https://help.salesforce.com/s/articleView?id=commerce.comm_pin_products.htm&release=264.0.0&type=5 "Pin up to 10 products to fixed positions on B2B category pages to ensure that high-priority products appear first. Pinned products override the sorting order and always appear first in the order you define. By pinning products to category pages, you can prioritize high-margin items, contract SKUs, safety-critical products, or seasonal promotions without developer support. Pinning rules apply per category and can vary by store and locale.") # Create Branch Deep Links Generate deep links for Point of Sale using the Branch.io dashboard to enhance user navigation and improve customer engagement. Active link creation streamlines the user experience, driving higher conversion rates and better tracking of marketing campaigns. 1. To create a deep link, simply select **\+ Add Link** on the Branch.io dashboard Marketing page.![The branch.io dashboard marketing page, indicating the add link button.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_deep_links_branch_marketing_page.png) 2. Fill out the Create Marketing link form per the [Branch.io instructions](https://dev.branch.io/recipes/your_first_marketing_link/#creating-your-branch-link). The deep link settings themselves that send the customer to a specific location in the app rather than just opening up the app can be configured by adding the advanced Deep Link Data. In this section click on **\+ Add more data** and then set the Key to the deep link and the Value to the specific value desired. ![The deep link data (advanced) window showing deep link key and value.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_deep_links_branch_values.png) # Create Calculated Insights To create your return insights, go to the Calculated Insights tab in Data 360. ### Required Editions
View supported editions.
1. Click **New**. 2. Select a data space. 3. Click **Create with SQL**, and then click **Next**. 4. For Calculated Insight Name, enter Om Return Rate By Product. 5. To use the default data space, use the API name Om\_Return\_Rate\_By\_Product\_\_cio. API names are case sensitive. To use a different data space, prefix the API name with the data space’s three character prefix. 6. Enter the SQL Query. 1. To use the default data space, enter SELECT ssot\_\_SalesOrderProduct\_\_dlm.ssot\_\_ProductId\_\_c as product\_\_c, SUM(ssot\_\_SalesOrderProduct\_\_dlm.ssot\_\_ProductReturnQuantity\_\_c)/SUM(ssot\_\_SalesOrderProduct\_\_dlm.ssot\_\_AvailableQuantity\_\_c) as return\_rate\_\_c FROM ssot\_\_SalesOrderProduct\_\_dlm WHERE ssot\_\_SalesOrderProduct\_\_dlm.ssot\_\_SalesOrderProductSubType\_\_c = 'Product' GROUP BY ssot\_\_SalesOrderProduct\_\_dlm.ssot\_\_ProductId\_\_c 2. To use a different data space, build the query according to your data space 7. Click **Check Syntax**. Confirm that it shows Valid Syntax. 8. Click **Activate**. Set a schedule, and then click **Enable**. 9. Click **Publish Now**. If this option doesn’t show, open the action menu. #### See Also - [Return Insights Overview](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5 "Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them.") - [Return Insights Setup](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights_setup.htm&release=264.0.0&type=5 "You can complete most of the initial Einstein configuration using the Data 360 Setup Guide.") # Create Configurable Bundles in a B2B Store Create configurable bundles that buyers can customize. Define required and optional items, define rules, and enable real-time pricing updates. ### Required Editions Set up Product Configurator before creating configurable bundles. For details, see [Set Up Product Configurator for B2B Stores.](https://help.salesforce.com/s/articleView?id=commerce.comm_product_configurator_setup.htm&language=en_US)
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Create a Configurable Bundle in Revenue Cloud Create configurable bundles in Revenue Cloud so buyers can configure and purchase them from your B2B store. 1. From the App Launcher, find and select **Product Catalog Management**. 2. Create a configurable bundle following the instructions in [Create Bundled Products in Revenue Cloud](https://help.salesforce.com/s/articleView?id=ind.product_catalog_create_bundled_products.htm&language=en_US). You can add up to 100 child products to a bundle. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Configurable bundles don't support quantity changes for the child products. Make sure that **Allow Quantity Changes** is deselected and **Quantity Scaling Methods** is set to Proportional for all child products. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note You can add configurable products as child products in a configurable bundle. For details on creating configurable products, see [Create Configurable Products with Dynamic Attributes in a B2B Store](https://help.salesforce.com/s/articleView?id=comm_create_configurable_products.htm&language=en_US). ## Define Constraints for a Configurable Bundle (Optional) To manage complex product configurations and ensure valid combinations, use the Constraint Rules Engine. 1. Set up the Constraint Rules Engine. For instructions, see [Set Up Constraint Rules Engine for Product Configurator](https://help.salesforce.com/s/articleView?id=ind.product_configurator_set_up_constraints_engine.htm&language=en_US). 2. Create a constraints model, add your bundle to it, and configure and activate the constraints. For detailed steps, see [Rules and Constraints in Configurator With Constraint Rules Engine](https://help.salesforce.com/s/articleView?id=ind.product_configurator_advanced.htm&language=en_US). ## Assign Category, Entitlement Policy, and Pricing to a Configurable Bundle To make your configurable bundle discoverable by buyers, assign the bundle to a category. To make sure that buyers can see and purchase the bundle, assign entitlement policies and pricing directly to the parent product of the bundle. Child products inherit these settings. Any entitlements or promotions applied directly to child products are ignored. 1. From the App Launcher, find and select **Commerce**. 2. In the navigation sidebar, select a store from the Store dropdown. 3. Select **Merchandising** | **Products**. 4. In the Product Workspace, select the bundle that you want to configure. 5. Open the global product record by using the link at the bottom of the Edit Product page. 6. Assign categories. 1. On the Related tab, in the Categories section, click **Assign**. 2. Select the category, and save your changes. 7. Assign one or more entitlement policies. 1. On the Related tab, in the Commerce Entitlement Policies section, click **Assign**. 2. Select the policy, and save your changes. 8. Add pricing. 1. On the Related tab, in the Price Books section, click **New**. 2. For Price Book, select your store’s standard price book. 3. Enter a list price. 4. (Optional) Select a currency. 5. Save your changes. 9. Make sure that the bundle is active so buyers can view it in your store. ## Create Bundle-Based Price Adjustments Define and manage bundle-based discounts for a configurable bundle. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Bundle-based pricing adjustments apply only to child products that are priced separately and added during configuration. You can't adjust prices for child products that are included in the bundle's base price. 1. Configure bundle-based adjustments to calculate discounts. For details, see [Bundle-Based Price](https://help.salesforce.com/s/articleView?id=ind.pricing_add_bundle_based_price_element.htm&language=en_US). Pricing adjustments apply only to transactions that occur within the effective date range defined in the Price Adjustment Schedule. Transactions outside this range don't reflect these adjustments. 2. After configuring the bundle-based adjustments and discounts, refresh the decision tables. 1. From the App Launcher, find and select **Lookup Tables**. 2. In the list of decision tables, click **Bundle Based Adjustment Entries**. 3. Refresh the decision table. ## Create a Constant for a Bundle-Based Adjustment Variables To adjust the bundle price based on buyer configurations, complete this step. This is a one-time setup for bundle-based adjustments. 1. From App Launcher, find and select **Pricing Procedures**. 2. Click the Commerce pricing procedure for your org. 3. On the Pricing Procedure builder canvas, click ![Pricing Elements icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/pricing_elements_icon.png). 4. On the Resource Manager panel, click **Add Resource**. 5. In the Add New Resource page, specify these details. 1. Resource Type: Constant 2. Resource Name: BundleBasedAdjustmentId 3. Data Type: Text 4. Default Value: Enter the Price Adjustment Schedule ID of the bundle-based adjustment. You can locate the value of your variable by going to the associated record. For example, to locate a price adjustment schedule ID, from App Launcher, find and select From App Launcher, find and select **Price Adjustment Schedules**. Open the Price Adjustment Schedule record. The price adjustment schedule ID is shown in the browser’s URL. ![Price Adjustment Tier Browser ID](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_pricing_browser_id.png) 6. Save your changes. #### See Also - [Create a Product Bundle for a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_and_configure_a_product_bundle.htm&language=en_US) - [Add Components to a Configurable Product Bundle](https://help.salesforce.com/s/articleView?id=ind.product_catalog_add_components_to_a_configurable_product_bundle.htm&language=en_US) - [Bundle-Based Price](https://help.salesforce.com/s/articleView?id=ind.pricing_add_bundle_based_price_element.htm&language=en_US) - [Set Up Product Configurator for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_product_configurator_setup.htm&language=en_US) - [Add Products to Categories in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_assign_products.htm&language=en_US) - [Entitlement Policies for Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_entitlement_policies_intro.htm&language=en_US) - [Pricing for Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricebooks.htm&language=en_US) # Create Configurable Products with Dynamic Attributes in a B2B Store Create products that buyers can customize based on specific attributes, such as size, color, material, or technical specifications. Unlike product variations, dynamic attributes update pricing dynamically as buyers make their selections without requiring separate SKUs for every combination. ### Required Editions Set up Product Configurator before creating configurable products. For details, see [Set Up Product Configurator for B2B Stores.](https://help.salesforce.com/s/articleView?id=commerce.comm_product_configurator_setup.htm&language=en_US)
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Create a Configurable Product in Revenue Cloud To offer configurable products, create products and configure dynamic attributes in Revenue Cloud. 1. From the App Launcher, find and select **Product Catalog Management**. 2. Add dynamic attributes to your product by following the instructions in [Configure Product Attributes](https://help.salesforce.com/s/articleView?id=ind.product_catalog_configure_product_attributes.htm&language=en_US). 3. To include or exclude specific picklist values for product attributes of the data type picklist, use Include or Exclude Picklist Values. For details, see [Include or Exclude Picklist Values in a Product Attribute](https://help.salesforce.com/s/articleView?id=ind.product_catalog_include_or_exclude_picklist_values_in_a_product_attribute.htm&language=en_US). ## Assign Category, Entitlement Policy, and Pricing to a Configurable Product To make your configurable products discoverable by buyers, assign the product to a category and assign entitlement policies. Define pricing. 1. From the App Launcher, find and select **Commerce**. 2. In the navigation sidebar, select a store from the Store dropdown. 3. Select **Merchandising** | **Products**. 4. In the Product Workspace, select the product that you want to configure. 5. Open the global product record using the link at the bottom of the Edit Product page. 6. Assign categories. 1. On the Related tab, in the Categories section, click **Assign**. 2. Select the category, and save your changes. 7. Assign one or more entitlement policies. 1. On the Related tab, in the Commerce Entitlement Policies section, click **Assign**. 2. Select the policy, and save your changes. 8. Add pricing. 1. On the Related tab, in the Price Books section, click **New**. 2. For Price Book, select your store’s standard price book. 3. Enter a list price. 4. (Optional) Select a currency. 5. Save your changes. 9. Make sure that the product is active so buyers can view it in your store. ## Assign Attribute-Based Pricing to a Configurable Product To calculate a product's price based on its associated attributes, use the Attribute-Based Price element. Attribute-based pricing adjustments apply to both subscription and non-subscription products. 1. Set up pricing rules that automatically adjust prices and offer discounts based on a product's price-impacting attributes by creating attribute-based adjustment records. For details, see [Attribute-Based Discounts](https://help.salesforce.com/s/articleView?id=ind.pricing_add_attribute_based_price_element.htm&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Pricing adjustments apply only to transactions that occur within the effective date range defined in the Price Adjustment Schedule. Transactions outside this range don't reflect these adjustments. 2. After configuring the attribute-based adjustments and discounts, refresh the decision tables. 1. From the App Launcher, find and select **Lookup Tables**. 2. In the list of decision tables, click **Attribute Discount Entries**. 3. Refresh the decision table. ## Create a Constant for a Attribute-Based Adjustment Variables To adjust the product price based on buyer configurations, complete this step. This is a one-time setup for attribute-based adjustments. 1. From App Launcher, find and select **Pricing Procedures**. 2. Click the Commerce pricing procedure for your org. 3. On the Pricing Procedure builder canvas, click ![Pricing Elements icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/pricing_elements_icon.png). 4. On the Resource Manager panel, click **Add Resource**. 5. In the Add New Resource page, specify these details. 1. Resource Type: Constant 2. Resource Name: AttributePASIdConstant 3. Data Type: Text 4. Default Value: Enter the Price Adjustment Schedule ID of the attribute-based adjustment. You can locate the value of your variable by going to the associated record. For example, to locate a price adjustment schedule ID, from App Launcher, find and select From App Launcher, find and select **Price Adjustment Schedules**. Open the price adjustment schedule record page. The price adjustment schedule ID is shown in the browser’s URL. ![Price Adjustment Tier Browser ID](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_pricing_browser_id.png) 6. Save your changes. #### See Also - [Configure Product Attributes in Revenue Cloud](https://help.salesforce.com/s/articleView?id=ind.product_catalog_configure_product_attributes.htm&language=en_US) - [Attribute-Based Discounts](https://help.salesforce.com/s/articleView?id=ind.pricing_add_attribute_based_price_element.htm&language=en_US) - [Include or Exclude Picklist Values in a Product Attribute](https://help.salesforce.com/s/articleView?id=ind.product_catalog_include_or_exclude_picklist_values_in_a_product_attribute.htm&language=en_US) - [Add Products to Categories in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_assign_products.htm&language=en_US) - [Entitlement Policies for Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_entitlement_policies_intro.htm&language=en_US) # Create Custom Attribute Editors Faster with Prebuilt Attribute Editors Use the prebuilt editors as building blocks when you create custom attribute editors. We provide prebuilt editors for Category Picker, Link Builder, Page Picker, and Product Picker UI controls. When the merchant configures the component attribute, the prebuilt editor opens in a separate breakout window window. How: Designate an attribute as type custom in the JSON meta file for the component type. In the client-side JavaScript file for the custom attribute editor, set the payload ID for the `sfcc:breakout` event to the ID of the prebuilt editor, for example, `sfcc:categoryPicker`. For more information, see [Use a Prebuilt Editor in a Custom Attribute Editor](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/PageDesigner/PrebuiltCAE.html). # Create Custom Messages in Point of Sale Customize messages that appear on different screens based on different events. ## Set up Customizing Messages in CMS By default, the user can see default messages from different groups. The user can then customize those messages using the CMS. ### Create a Customized Message To create a message: 1. In CMS, go to **Store Management > Custom Messages**. 2. To create a custom message, select **CREATE** in the top right of the screen. 3. Enter a message key and a custom message. 4. Select **Save**.![The Custom Messages screen in Point of Sale CMS, where you can create or edit a ustom message.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_custom_message_cms.png) ### Edit a Custom Message To edit an existing message: 1. Select the pencil icon to the right of a message. 2. Turn on **Customize Message**. 3. Enter a custom message. 4. Select **Save**. ## Field Mapping Message Key Field Transformation | Custom Messages Field mappings in CMS include field transformations. For example, using the **To Uppercase** field transformation "transform" the lower case colors to capitalized colors. For example "blue" transform to "BLUE", "red" transform to "RED", and so on. There are many types of field transformations, one of which includes **Message Key**. With this method, rather than manually entering a custom message, the message instead shows automatically using key-value pairs. To use the Message Key field transformation: 1. In CMS, go to **Feeds > Field Mappings**. 2. Select the area you'd like to add a custom message. 3. Select the green line associated with a Source Field. 4. Select **Message Key** under **Transformation Type**. 5. Fill in the fields and select **SET**. 6. Select **SAVE** in the top right of the screen. ![The Field Transformations section of Custom Messages in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_cms_field_transformations.png) The **Message Key** field transformer has two optional transform parameters: **Message Key Separator** and **Default Message**. Let's say you have a string of message keys, "`order.failure|promocode.redeem.failure`". Notice that a pipe (|) separates the message keys. This is the **Message Key Separator** because it's separating the many keys in a string. If the message keys are split for each message key, Salesforce looks up an entry (value) for it in the brand's custom messages. If no custom message is found, the message key itself is used as the message. Additionally, if the message key is blank, then the message to be displayed is whatever you entered in the **Default Message** field. After all messages are retrieved for the given keys, the messages are recombined into a single string with the **Message Key Separator** separating them. This string is what is stored in the target field. | Key | Is it in the system? | Value | | --- | --- | --- | | order.failure | Yes | Your order has failed! | | promocode.redeem.failure | Yes | Your promotion code is invalid! | | order.partial | No | Order.partial | | Blank | Not applicable because there's no key | Default message | A string of message keys: `"order.failure|promocode.redeem.failure|order.partial| "` Final result: `"Your order has failed!|Your promotion code is invalid!|Order.partial| Your order cannot be processed at this time."` # Create Custom Orders in the POS App Point of Sale allows you to create orders for custom-made items by capturing product attributes through a layout. A new product is created at runtime in Point of Sale. You can create a custom order from a basic part or product to add specific fabrics, textures, and styles. Creating custom orders helps to deliver a personalized and unique product for each customer. Prerequisites: - Modern POS App Build: 5.5.2 or later - Platform Support: iPhone & iPad - Offline Support: No - ERP Configuration: [NetSuite](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite.htm&release=264.0.0&type=5 "Enable order management by integrating your NetSuite ERP with Point of Sale CMS. Begin with an initial configuration on your NetSuite account. Then, complete the setup in the CMS.") ## Enable Not on File Products Enable store associates to add products that arenʼt on file to an order. 1. in CMS, go to **Store Management** | **Store Settings** | **Inventory**. 2. Turn on **Is Item not on file feature enabled for this merchant**. ## Create a Layout for Not on File Products Create and publish a layout to capture all possible attributes for a special item. 1. Go to **Apps** | **All** | **\[your app config\]** | **Edit** | **Modules** | **Cart**. 2. Configure the **Custom Order Layout (CustomOrderLayoutID)** value for the special/custom order layout that was created. ## Configure a Deep Link Configure the Special Item deep link as a cart option. This is required for associates to be able to create and add a special item to the basket. 1. Go to **Apps** | **All** | **\[your app config\]** | **Edit** | **Modules** | **Cart**. 2. Check and modify **Cart Options Layout** to have an option for **Special Item**. 3. Configure the deep link of that cell as **Cart Option** | **Custom Order**. ## Enable Form Copying Optionally, you can allow forms to be copied, allowing for better management of orders that involve similar items. See [Copying Special Forms in the POS app App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_form_copy.htm&release=264.0.0&type=5 "Add a copy button to your custom order layout in the POS app to quickly duplicate forms. Tapping the button creates a new form with all original input values, which can be edited and is automatically added to the cart. This feature streamlines order management for store associates, especially for similar items."). ## Custom Orders in the POS App Store associates can capture specific attributes for special-order items at checkout. Point of Sale supports customized product returns through configured product classes or external order master settings. ### Sales Store associates can see the Custom Order option in the options panel of the checkout screen. When a store associate selects **Special Item**, a layout to enter custom attributes for the item appears. Store associates can capture the required attributes of the custom item being ordered by the customer. After the store associate enters the details for the item and adds the item to the cart, they can see the item and details in the cart. Store associates can check the attributes of the custom item and edit the values by clicking **View & Edit** which is available at the line item. ### Returns Point of Sale supports customized product returns through two methods. If the custom product has a configured [product class](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_non_merchandise_sku.htm&release=264.0.0&type=5 "POS enables you to configure non-merchandise SKUs, such as postage stamps and gift certificates, to meet your business needs. You can also configure the checkout rules that apply to these items. Control if these items are discountable or taxable, and set other rules."), returnability can be set accordingly. Alternatively, for merchants using an external master, products can be marked as not eligible for return by setting the returnsEligibility field in the [Get Order SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#order-spis). # Create Custom Page-Level Attributes Developers can define attributes for page types. For example, a developer can create a page type that includes attributes for the Title, Image, and Description displayed in search results for the page. Or the developer can define page attributes for page tags that allow merchants to search, sort, and retrieve pages more easily. How: The developer includes page-level attributes in the JSON meta definition file for a page type. If a page type includes page-level attributes, the Page Settings window for the page in the visual editor includes a Custom tab. Merchants configure the page-level attributes in the Custom tab. #### See Also - [Configure Custom Page Attributes](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_config_custom_attrs.html) - [Page-Level Custom Attributes](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_page_level_attrs.html) # Create Custom Reports with Search and Category Data for B2B Stores To gain insight into the products that buyers interact with, create custom reports with Google Analytics using the search and category data that Salesforce provides. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Use the data to analyze your buyers’ interactions with the products in your store. Discover things like: - What buyers are searching for most - What buyers are searching for but not finding - The product types that buyers are looking for - The specific products that buyers are looking for This table lists the data categories and the types of events that are captured.
Event Category Event Action Event Label Reports On
Search Results Interactions Search Results Page View {search term} Search term entered that resulted in the page view
No Results Page View {search term} Search term entered that landed the user on the no-results page
Result Click {search term} Search term entered that resulted in the clicking of a search result
Add To Cart Button Click {search term} Search term entered that resulted in the clicking of the Add to Cart button
Category Filter Click {<search term>:<selected category name>} Search term entered and the category name that the user clicked
Attribute Filter Click {<search term>:<selected value1,selected value2>} Search term entered and the attribute values that the user clicked
Sort Option Click {<search term>:<sort option name>} Search term entered and the sort option that the user clicked
Product Category Interactions Category Detail Page View {category name} Name of the category in the detail view
Product Click {category name} Name of the category under which a product was clicked
Add To Cart button Click {category name} Name of the category under which an Add to Cart button was clicked
Category Filter Click {<root category name>:<selected category name>} Search term entered and the category name that the user clicked
Attribute Filter Click {<root category name>:<selected value1,selected value2>} Search term entered and the attribute values that the user clicked
Sort Option Click {<root category name>:<sort option name>} Root category searched and the sort option that the user clicked
For information about Google Analytics, see [Google Analytics Documentation](https://analytics.google.com/analytics/web/provision/#/provision). #### See Also - [Store Management](https://help.salesforce.com/s/articleView?id=commerce.comm_manage_stores.htm&release=264.0.0&type=5 "Manage stores more efficiently using workspaces. Expand the reach of your store by enhancing language and currency support. Create and manage promotions to increase buyer incentive. Migrate store configurations, create custom reports, and manage existing integrations. Set up the emails that shoppers and buyers receive when they place an order, and what they see when your site isn’t available. Review the steps required to use Omnichannel Inventory with B2B stores.") # Create customer groups based on a Data Cloud Segment You can use guest shopper segments created in Data Cloud in your B2C Commerce guest shopper campaigns. **How:** Start by creating a guest shopper segment. See [Create a Segment in Data Cloud](https://help.salesforce.com/s/articleView?id=data.c360_a_create_a_segment.htm&type=5&language=en_US). Use the ``` SalesOrderCustomer ``` data stream for the data segment. Set a rule to identify customers in the `SalesOrderCustomer` data stream whose Anonymous flag is equal to true. In Business Manager, **Administration** | **Global Preferences** | **Locales**. Use the data cloud segment to create a customer group as a target audience for campaigns and promotions. #### See Also - [Activate Data Cloud Guest Shopper Segments in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_activate_data_cloud_guest_shopper_segments_in_b2c_commerce.htm&language=en_US) # Create Cycle Count in CMS Create cycle counts in CMS to make sure of accurate inventory management. Creating a cycle count in CMS will allow the user to specify the parameters of the cycle count for a store to complete. This article explains how to create a cycle count in CMS to be sent to a store to complete. For more information on creating and completing a cycle count in-store on the POS app, refer to this article on [Cycle Counts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_learn_about_cycle_counts_in_retail_cloud.htm&release=264.0.0&type=5 "Understand the distinctions among each Cycle Count type to best suit your retail environment."). ## Creating a Cycle Count in Point of Sale CMS 1. Go to **Inventory > Create Cycle Count**. 2. Select the store from the **Store** dropdown. 3. Input the **Name** and **Description** of the Cycle Count, which will display at the store level. 4. Select the **Start Time** and **Timezone**. 5. Select the **Cycle Count Type** from the these options and add products or categories if applicable: - **Manual**: a list of products added individually via Add Products. - **Partial**: a list of one or more categories or attributes of products added via Add Categories. - **Full**: entire store inventory. 6. Select **Create** to create the cycle count and send it to the store. The store can access and begin the cycle count created by accessing the **Cycle Count** link in the POS app. For more information on conducting in-store cycle counts, see [Cycle Counts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_learn_about_cycle_counts_in_retail_cloud.htm&release=264.0.0&type=5 "Understand the distinctions among each Cycle Count type to best suit your retail environment."). ## Creating Partial Cycle Count with Product Attributes You can create partial cycle counts with categories (for example Clothing, Sale). However, you can also create it with product attributes (for example colors). 1. Go to **Products > Search Config**. 2. Edit or create a new configuration. 3. Under **App Filter Fields**, select a product attribute. 4. Save your changes. 5. Go to **Store Management > Store Settings > Inventory**. 6. Under **Partial Cycle Count Product Attribute**, enter the product attribute you've selected in the previous steps. 7. Save your changes. 8. Go back to creating cycle counts by going to **Inventory > Create Cycle Count.** 9. Under **Cycle Count Type**, select **Partial**. 10. Under **Partial Count Details**, select **Add Product Attribute Values**. 11. A new window appears, allowing you to add or remove product attributes. If no attribute is entered under **Partial Cycle Count Product Attribute**, regardless if an attribute has been selected or not under **App Filter Fields**, the cycle count defaults to categories instead of product attributes. # Create Data Mapping for Return Insights The next step in setting up return insights is mapping your Sales Order product data. ### Required Editions
View supported editions.
Set up data streams for your organization. 1. Go to your new data stream. 2. In the Data Mapping section, click **Start**. 3. Click **Select Objects**. If the objects aren’t visible [enable the objects in Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_enable_user_permissions_external_salesforce_org.htm&type=5&language=en_US) 4. Search for Sales Order Product, and then click the **Plus button (+)**. 5. Click **Done**. 6. Map your fields. Some fields are mapped by default. Don’t edit these fields. 1. From the order item summary, click **Order Product Summary ID**. 2. From the sales order product, select **Sales Order Product**. If you don’t see the entity, expand the Unmapped section. 7. Repeat step 6 for these fields. 1. Product ID → Product 2. Quantity Returned → ProductReturnQuantity 3. Quantity Net Ordered → AvailableQuantity 4. TypeCode → SalesOrderProductSubType 8. Save your work. A success message shows when the process completes, which can take a few minutes. #### See Also - [Return Insights Overview](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5 "Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them.") - [Return Insights Setup](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights_setup.htm&release=264.0.0&type=5 "You can complete most of the initial Einstein configuration using the Data 360 Setup Guide.") # Create Deep Links Quickly navigate Point of Sale with a detailed list of deep links and their supported uses, empowering users to access specific features and streamline retail tasks. By using these direct links, retailers can enhance efficiency and provide customers with faster access to key functionalities within their accounts. Explore how each link simplifies navigation and improves the overall user experience. - **[Comprehensive List of Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_list.htm&release=264.0.0&type=5)** Explore a detailed list of Point of Sale account deep links, each with a clear description and supported context. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations. - **[Create a Category Browse Deep Link](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_category_browse.htm&release=264.0.0&type=5)** Automate your category navigation with Point of Sale's category browse feature. Set your preferred UI in the CMS, and let the system dynamically generate and update category pages based on your feed structure, saving you time and effort. - **[Configure Product Bundle Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_product_bundle.htm&release=264.0.0&type=5)** Point of Sale product bundles are packages of related products or services offered together at a discounted price. This can encourage customers to buy more, providing convenience and value. Product bundles can be ingested as a feed or authored in the CMS. - **[Product Search Deep Link](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_product_search.htm&release=264.0.0&type=5)** The Point of Sale product search deep link lets users initiate a product search from multiple access points. Users can launch product searches from a layout, a tab, the hamburger menu, a notification, or even an Instagram post. With a configurable search, users can quickly find the products they need, enhancing their shopping experience. - **[QR Code Linking to App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_qr_codes.htm&release=264.0.0&type=5)** Use a QR code in Point of Sale to enable a user to click or scan a web link and be directed to the POS app or a web page. - **[Create Branch Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_branch.htm&release=264.0.0&type=5)** Generate deep links for Point of Sale using the Branch.io dashboard to enhance user navigation and improve customer engagement. Active link creation streamlines the user experience, driving higher conversion rates and better tracking of marketing campaigns. - **[Configure Deep Link Dependencies](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_dependencies.htm&release=264.0.0&type=5)** Deep links in the POS app can launch specific views, but some require additional configurations. Learn which deep links need dependencies and how to set them up to avoid errors and ensure smooth functionality. - **[Deep Link Values](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_values.htm&release=264.0.0&type=5)** Get details of the deep link values for various destinations in the Point of Sale app. Each URI ensures users can navigate directly to key destinations, streamlining their workflow and enhancing productivity. In each, you need the URI provided by Salesforce. - **[Add Inline Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_inline.htm&release=264.0.0&type=5)** Use inline deep links in Point of Sale to render content inside the current screen. This capability keeps users engaged by providing relevant information without navigating away from their current task. Enhance user experience and streamline workflows by embedding content directly within the interface. Boost productivity and provide seamless access to essential resources. # Create Featured Product Collections for Your B2B Store Upsell or cross-sell your products by associating a product with up to 10 featured products. Create multiple user-defined collections, such as Complementary Products, Best Sellers, New Arrivals, and more. Showcase these static product recommendations on your B2B store's home page, product listing pages, or product detail pages. ### Required Editions
View supported editions.
Before you assign featured products to your product, see [Guidelines to Assign Featured Products to a Product](https://help.salesforce.com/s/articleView?id=commerce.comm_guidelines_featuredprod.htm&release=264.0.0&type=5 "Consider these validations when you’re assigning featured products to a product."). - **[Guidelines to Assign Featured Products to a Product in B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_guidelines_featuredprod.htm&release=264.0.0&type=5)** Consider these validations when you’re assigning featured products to a product. #### See Also - [Show Product Collection from Any Category on the Home Page](https://help.salesforce.com/s/articleView?id=commerce.comm_featured_category.htm&release=264.0.0&type=5 "Show products from any category in a collection on your D2C store's the home page. For example, show all the new arrival products from a category by adding them to a Carousel component on the home page.") - [Product Classes, Variations, and Attributes](https://help.salesforce.com/s/articleView?id=commerce.comm_product_class.htm&release=264.0.0&type=5 "A product class determines whether a product is sold individually or has variations. You can assign a product variation up to five attributes. Each variation has its own SKU so that you can track it.") ## Define Featured Product Collections for B2B Stores 1. From the Setup page, click **Object Manager**. 2. From the object management settings for Product Featured Product, go to **Fields & Relationships**. 3. Click **Featured Product Relationship Type**, and under Featured Product Relationship Type Picklist Values, click **New** and add picklist values that define your product collection. 4. Save your changes. ## Add Featured Products Related List for the Products Object 1. From the Setup page, click **Object Manager**. 2. From the object management settings for Product, go to **Page Layouts**. 3. Click **Commerce Product Layout**. 4. Click **Related Lists**. 5. Drag Featured Products to the Related Lists section. 6. Save your changes. ## Assign Featured Products to a Product in B2B Store 1. From your Commerce org, in the navigation sidebar, select a store from the Store dropdown. 2. Click **Merchandising** | **Products**, and select a product. 3. Click **Go to global product record**. 4. Under the Related tab, for Featured Products, click **New**. 5. Enter and select a featured product, select the relationship types, and enter the sequence for the featured product in the collection.![\[New Featured Product](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_productfeaturedproduct.png) 6. Save your featured product. 7. Add up to 10 featured products. You can assign a product to multiple featured product collections. ## Show Featured Product Collection on Your B2B Store Home Page or Product Page 1. Go to your store, and from the navigation sidebar, click **Website Design**, and then click **Experience Builder**. 2. Add the featured product collection on your B2B store home page or product page. 1. For a B2B store, from the Home or Product page, click ![Components icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/community_builder_components_icon.png), enter and select **Grid**, and drag the Grid component to the page. 2. For a D2C store, from the Home or Product page, click ![Components icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/community_builder_components_icon.png), enter and select **Grid** or **Carousel**, and drag the component to the page. 3. Click ![Components icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/community_builder_components_icon.png) again, enter and select **Product Card**, and drag the component within the Grid or Carousel component. 4. Click the Grid or the Carousel component block to edit. 5. Under the Settings tab, for the Data Source dropdown list, select **Product Recommendations**. 6. Select a source. - To show products based on the shopper's current exploration, select **Product Viewed**. - To show the featured products for a specific product, select **Product ID** and enter the ID. To find the Product ID, from your **Store** | **Merchandising** | **Products**, click a product, click **Go to global product record**, and from your browser URL, copy the Product ID at the end of the URL. ![Product ID in the URL](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_url_productid.png) 7. Select the Recommender as **Featured Products**. 8. From the Product Relationship dropdown list, select a featured product collection. 9. Highlight the Product Card component, and from the left menu, click ![Components icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/exp_builder_pagestructure_icon.png), and change the Data Binding value from {!Item} to {!Recommendation}. 10. Preview and publish your store. The store shows the featured product collection on your home page.![Featured Product Collection](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_featuredproducts.png) # Create Franchise Administrator Users To grant specific access to franchise staff, define permissions and link their account to a specific franchise group in Point of Sale CMS. 1. Create a franchise role. 1. In CMS, go to **Advanced | CMS User Management | Roles | Create New Role**. 2. Enter a role name. 3. Select **Franchise Role**. 4. Define the permissions and save your changes. 2. Create and assign franchise users. 1. Go to **CMS User Management | Users | Add User**. 2. Enter the user's credentials. 3. Select **Franchise** as the user scope. 4. Assign the user to a franchise group. 5. Assign a franchise role and save your changes. **Key permissions for franchise admins:** Franchise admins can: - View and manage stores in their franchise group only - Create store associates for their locations - Create CMS users for their franchise - Access Cart Simulator, Monitoring, and CMS User Management Franchise admins can't: - Access Apps, Layouts, or Integrations tabs - View or modify stores outside their franchise group #### See Also - [_Salesforce Help:_ Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5 "Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations.") # Create Franchise Groups After enabling franchises, create franchise groups in Point of Sale CMS to represent distinct franchise entities. 1. In CMS, go to **Store Management | Franchise Management**. 2. Click **Create**. 3. Enter the following information: | Field | Required | Description | | --- | --- | --- | | Franchise ID | Yes | Unique identifier for the franchise | | Franchise Name | Yes | Display name for the franchise group | | Address | Yes | Primary address for the franchise | | Tax ID | No | Tax identification number for the franchise | 4. Save your changes. ![Screenshot showing Create Franchise Group form with fields](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_createfranchise.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Each franchise group represents a distinct franchise entity. Create one group per franchise operator. #### See Also - [_Salesforce Help:_ Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5 "Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations.") # Create Geo Countries for the Manual Salesforce Tax Solution When you configure the manual Salesforce tax solution for a B2B store, you assign a geo country to a tax rate to specify which country the tax rate applies to. Create a geo country for every country where you want to specify a tax rate. The geo country is the country to which a product is shipped, not from where the order was placed. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before adding a geo country, configure the states, countries, and territories in Setup. See [Let Users Select States, Countries, and Territories from Picklists.](https://help.salesforce.com/s/articleView?id=xcloud.admin_state_country_picklists_overview.htm&language=en_US) 1. From the App Launcher, search for and select **Geo Countries**. 2. Click **New**. 3. Enter the two-letter ISO code for the country. For example, enter FR for France. For a list of ISO codes, see [Standard Countries and Territories for Address Picklists](https://help.salesforce.com/s/articleView?id=xcloud.admin_state_country_picklists_standard_countries.htm&type=5&language=en_US). 4. (Optional) Enter a description, and click **Save**. ![Add the ISO code and name for the new geo country.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/geocountry.png) # Create Geo States for the Manual Salesforce Tax Solution When you configure the manual Salesforce tax solution for a B2B store, you assign a geo state to a tax rate to specify which state or province the tax rate applies to. Create a geo state for each state and province that you want to specify a tax rate for. The geo state is the state or province to which a product is shipped, not from where the order was placed. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before adding a geo state, configure the states, countries, and territories in Setup and create geo countries for your store. See [Let Users Select States, Countries, and Territories from Picklists](https://help.salesforce.com/s/articleView?id=xcloud.admin_state_country_picklists_overview.htm&language=en_US) and [Create Geo Countries for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_geocountries.htm&language=en_US). 1. From the App Launcher, search for and select **Geo States**. 2. Click **New**. 3. Enter the two-character ISO code for the state or province. For example, enter CA for California. 4. Select the geo country that the state or province is in. 5. Enter a description, and click **Save**. ![Add the ISO code and name for the new geo state.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/tax_geo_state.png) # Create Localized Email Templates in Your Store You can send custom Welcome, Order Confirmation, and Abandoned Cart emails to your customers in any language supported by your B2B store. Create email templates in each language, and then customize the email flows to trigger sending localized emails based on the language the customer selects in the store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Click **Content Manager**. 3. Select your store’s content manager namespace. 4. Clone the email template you want to localize, and edit it. Update the required fields with text in a language supported by your store, and save your changes. Alternatively, if you want to create an email template, see [Create an Email in Marketing Cloud](https://help.salesforce.com/s/articleView?id=mktg.mktg_content_email_create.htm&language=en_US). 5. In the Store navigation sidebar, select a store from the **Store** dropdown. 6. Click **Settings** | **Messaging**. 7. Under Email Templates, use the quick actions menu for the email template, and click **Edit Flow**. ![Screenshot of the Email Template section](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_buyermessaging_emailtemplate.png) 8. Click **Edit As a New Version**. 9. Add a decision element in the flow, with an outcome for each language supported by the store. 10. For each path after the decision, select the approporiate email template. ![Screenshot of an email flow showing templates in different languages](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_buyermessaging_emailflow.png) 11. Save your changes and activate the flow. # Create Multiple Shipping Profiles for a B2B Store Create multiple shipping profiles to categorize products. After you set up the shipping profiles, you can define shipping rules based on different zones for each profile. Assign rates based on order value or delivery group weight to meet your store's specific needs. For example, Emma owns a home decor store with a wide range of products. She creates different shipping profiles based on shipping zones and rates. One profile is for light items like wall art and candles, with affordable rates. Another profile is for heavy items like sofas and dining tables, with higher rates to cover professional delivery. By doing this, Emma can manage shipping costs more efficiently. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Settings** | **Checkout**. 3. Click **Shipping**. 4. Click **Add New Profile**. (Optional) Enter the profile name to match your requirements. 5. Click **Save**. ![Create custom shipping profile](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_MSP_with_profile_created.png) 6. To add products to the custom shipping profile: 1. Click **Assign** and select the products. 2. Click **Next**. 7. Set the shipping zone and shipping rates for the profile. For information about zones and rates, go to [Manage Shipping Zones and Rates for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_manage_shipping.htm&release=264.0.0&type=5 "Whether you’re using managed or custom checkout, you can organize countries with similar shipping costs into shipping zones. A zone can include countries with different currencies. For each zone, you can set shipping rates based on the monetary value of the order or by weight.") Return to the Shipping page to see the custom profile you created. #### See Also - [Manage Shipping Zones and Rates for a B2B or D2C Store](https://help.salesforce.com/s/articleView?id=commerce.comm_manage_shipping.htm&language=en_US) # Create Multiple User Accounts with Subaddressing Use a single email inbox for multiple user accounts and assign specific roles based on the subaddress. Enhance security and simplify partner management by creating customer-specific subaddresses with limited roles, giving partners a single email inbox with distinct, traceable accounts for each customer relationship. You can also create separate user accounts for different functions, such as development, testing, and administration. Before setting up this feature, confirm that your email provider supports email subaddresses. **Where:** This change applies to Account Manager for B2C Commerce. **How:** When you enter the email address for a new user account, include a + sign and a unique string after the original, base username of the email address. For example, a partner account with a unique subaddress for a specific customer can follow the pattern: username+customer@partner.com. Assign roles to the subaddress account based on the access they need. #### See Also - [_Salesforce Help_: Manage Access of Partner Accounts in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_manage_partner_access.htm&language=en_US) - [_Salesforce Help_: Create a User Account in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_create_user.htm&language=en_US) # Create Multiple Versions of a Commerce Component Create multiple versions of a component, and assign visibility rules to target specific customer groups with each variation. Use Component Variations to tailor the shopping experience for different customers. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) For more information see [Create Component Variations in LWR Sites](https://help.salesforce.com/s/articleView?id=experience.exp_cloud_expression_based_variations_create.htm&type=5&language=en_US). #### See Also - [Component Variations in Enhanced LWR Sites](https://help.salesforce.com/s/articleView?id=experience.exp_cloud_expression_based_variations.htm&type=5&language=en_US) # Create Not on File Items The Point of Sale app offers an option to add Not on File items (products not listed in the Feeds) into the cart. Store associates can continue to add these items to the cart and finalize the checkout process. - Modern POS App Build: 5.5.2 or above - Platform Support: iPhone & iPad - Offline Support: Yes ## Enable POS Settings This section lists the necessary POS settings for enabling the Not on File feature: 1. Go to **Store Management** | **Store Settings**. 2. Enable the flag, Is item not on file feature enabled for this merchant. 3. Save your changes. 4. Go to**Store Management** | **Store Settings** | **Modules** | **Tax**. 5. Add the tax class for the Not on File item under Tax Class to Be Set for Not on File Items. - notOnFileProductTaxClass. 6. Add the zero tax class for the Not on File item under Tax Class to be Set for Not on File Items when the Tax to be charged is 0% - notOnFileProductZeroTaxClass. 7. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note notOnFileProductZeroTaxClass must be set to a valid zero percent tax class which is available in the merchant tax feed. ## Create a Not on File Layout This section lists the steps for configuring a layout to add Not on File items in the cart. 1. In CMS, go to **Apps** | **All**. 2. Edit the app config that will have the Not on File form. 3. Go to **Modules** | **Cart**. 4. Under Cart Options Layout, click the pencil icon to the right. 5. Create or select a cell. 6. On the right toolbar menu, click **Deeplink** | **Cart Options** | **Add Product Not on File deep link**. 7. Set the deep link and save the changes. ## POS Behavior When an associate clicks on the deep link on the cart, they will be prompted to add details of the Not on File item. For app builds 9.2.1 and earlier, the associate layout will only display the following layout. ![The POS app shows a prompt for details about a not on file item.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_not_on_file_pos1.png) However, for app builds 9.3.1 and newer, the layout has been enhanced with three OPTIONAL fields: Style ID / Variant Group ID, Color, and Size. On the layout, the associate can either enter the SKU number or scan the bar code. The toggle, Is this a taxable product, will determine if the Not on File product will inherit the tax class set in the "notOnFileProductTaxClass" or "notOnFileProductZeroTaxClass" store settings. ![The POS app shows a prompt for details of a not on file item.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_not_on_file_pos2.png) Once the item is added it will be processed and added to the cart successfully. If the same item is scanned or added again then it will increase the quantity of the already added item in the cart. ![The POS app shows a not on file item in the cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_not_on_file_pos3.png) ## Known Issues & Restrictions - The POS accepts Not on File items offline. These items are synced with the server, once the POS goes online. Due to this, the POS cannot recognize an already added Not on File item until the POS has synced online and refreshed the product feed for local use. - When creating a Not on File item offline, the POS is unable to retrieve the correct tax class as this requires an online sync. # Create or Start Cycle Count in CMS Create or start cycle counts in the Point of Sale (POS) app to make sure of accurate inventory management. Only managers or individuals with equivalent roles can create a cycle count in the app. The app is similar to the creation screen on the CMS. However, for manual counts, the user can either scan or look up items. ## Creating a Cycle Count in the POS App 1. In the app, select the cycle count deep link. 2. If no active cycle counts are found for your store, you'll be directed to the "Create Cycle Count" screen. If there's an existing active count, you'll see the notification: "There is already an active cycle count." Choosing "Continue" redirects you to the "Cycle Count History" screen. 3. Fill in the required fields following the same rules as [Create Cycle Count in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_cycle_count_in_cms.htm&release=264.0.0&type=5 "Create cycle counts in CMS to make sure of accurate inventory management."). 4. Select **Create** to create the cycle count. ## Starting Cycle Count in POS App After creating a cycle count, the user can proceed to start the count. Note, only managers or individuals with equivalent roles can start a cycle count. 1. In the app, go to the **Inventory** tab and select **Cycle Count History**. On this screen, users can see previous cycle counts as well as new ones. 2. Select the ‌cycle count (previous or new) with the **Edit Cycle Count** option. 3. On the next screen, select **Start Cycle Count**. 4. The cycle count will be created based on the selected items during the creation process. Managers can review the items in the cycle count, remove any irrelevant items, and start opening batches for associates to begin scanning. ## Manage Cycle Counts using the API The [Inventory Management API](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#inventory-management) includes options to create manual, full, and partial cycle counts and cancel cycle counts. When triggered, data flows into the Point of Sale CMS. # Create Orders from Stored Information with Salesforce Payments Each time an order is placed, you can reuse the payment details, payer’s stored payment credentials, or off-session tokens from a previous payment. How: To create an order from a previous order, use the _SalesforcePaymentsMgr.confirmPaymentIntent (order, paymentMethod, statementDescriptor)_ class and method from the B2C Commerce Script API. Data from the previous order is retrieved to create the order. No customer interaction is required. # Create Product Categories and Subcategories in a B2B Commerce Store Organize products into categories and subcategories to enhance product discoverability. Providing a structure improves search and navigation, making it easier for customers to find what they’re looking for. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) For information about designing a category structure, see [Plan Your Category Structure](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_structure.htm&release=264.0.0&type=5 "Categories make products easier to discover in searches and through navigation. Build a category structure that shows product relationships and makes products easier to find. When you create a store, a default catalog with one Products category is assigned to the store."). 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Merchandising** | **Categories**. 3. Click **New**. 4. Enter a name for the category and an optional description. 5. If you want this category to appear in a menu, select **Show In Menu**. Category changes don’t take effect until you rebuild your search index. 6. If you’re creating a subcategory, search for and select its parent category. 7. Assign a sort order to the category or subcategory. The sort order determines the order in which a category or subcategory appears on the navigation menu and in filters. Let's say you have three categories, Paint, Brushes, and Accessories, and you assign them 1, 2, and 3, respectively. Across the Multilevel Navigation Menu, Paint is listed first, Brushes second, and Accessories third. On results pages, the same order is used for results filters. 8. Enter a code to identify the category. 9. To assign products to the category, click **Assign**, select the products, and then click **Next**. 10. Click **Save**, or click **Save & New** to continue creating categories. To add a bestseller category in the Search Input component, enter the corresponding category ID. You can find the category ID in the URL of the category record page between “CategoryPage” and “View.” #### See Also - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&type=5&language=en_US) # Create Product Promotions in Point of Sale CMS Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes. ## Configure Point of Sale CMS for Promotions Configure promotions with the basic information, discount types, promotion codes and rules. ### View Basic Promotion Information Use the fields in the Basic Promotion Information section to configure several fields that can help describe and categorize your promotion. Promotions also support multi language. For more information, see Multi-Language [Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_multi_language_support.htm&release=264.0.0&type=5 "POS supports multiple languages in the same country, which benefits merchants in different locales across the globe."). **Name \***—The name of your promotion, for example Shipping For New Users at No Additional Cost. This value is only used to reference your promotion and is never shown to the customer. **Promotion ID**—The promotion ID can be used to manually update a promotion in the import promotion workflow. The ID is also shown if downloading the promotion CSV file. **Active/Inactive**—There are two tabs labeled ACTIVE and INACTIVE. When a promotion date expires, it'll be flagged as inactive. The ACTIVE tab will display promotions that are going live and active promotions. **Active**—There's also a switch that enables or disables your promotion. This can be used to suspend your promotion for special circumstances or to create draft modes of promotions that can be activated at a later date. **Call Out Message** \*—The call-out message is the customer-facing message. For example "Use this code to receive No-Cost Shipping!". The Call-Out Message is displayed against the line item in the cart where the promotion is applied. **Applicability Rules \***—A description of your promotion, including any legal and disclaimer text. **Promotion Image \***—The image field ‌is used to show a promotional image in layouts. If you aren't using promotions in your layouts, you can add any generic image to meet the required field requirements. **External Promotion ID**—A text-based ID that gets logged into your point of sale (POS) logs. Use this to track promotions in your external ERP or ecommerce systems. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: An asterisk (\*) denotes a required field. ### Promotion Configuration The fields in the Promotion Configuration section allow you to define a discount type and amount. You also define the duration of your promotion, and what other types of promotions it can be combined with here. **Amount Off / Percentage Off / Fixed Price \***—These fields represent the discount that'll be applied to the promotion. The discount type is related to the promotion type:
Discount TypePromotion TypeDiscount Description
Amount OffAmount Off, BOGOA monetary off value. (for example $12 off the total price)
Percentage OffPercentage Off, BOGOA percentage off value (for example 50% off the total price)
Fixed PriceFixed Price, BOGO, Buy X for YA fixed price for the purchase (for example $9.99 for the purchase)
**Amount Expression**—Available for Fixed Price promotions only. Instead of setting a static fixed price, use this field to dynamically reference a price stored in your product data. Enter the product field name that contains the pricing (for example, `$CustomDecimal0`). When combined with customer group targeting, this allows you to offer exclusive member pricing that's automatically applied at checkout for identified members. The system retrieves the price from the specified product field and applies it to eligible customers based on their customer group assignment. **Start Date**—The date and time the promotion starts. **End Date**—The date and time the promotion ends. The date and time in this field takes precedence over that active field. This means that a promotion with a past _End Date_ can still have an “active” state but not be a valid promotion that can be applied. **Can Be Combined With**—By default, a promotion can't be combined with any other promotion types. Override this behavior by selecting the promotion type that you want to allow combinations with. Combining promotions will allow you to stack multiple promotions together (for example Your current promotion is a Fixed Price promotion for $20, that can also be stacked with a No-Cost Shipping promotion) **Price Override**—Item Price is sometimes overridden to account for manual discounts on the Product. This flag allows the Promotion to be combined with the Manual discount on the Product. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: If this is set, then the promotion can be combined with a Manual discount. ### Dynamic Member Pricing with Fixed Price Promotions Fixed Price promotions support dynamic pricing through the **Amount Expression** field. This feature allows you to offer exclusive member pricing by referencing product fields that contain member-specific prices. To set up dynamic member pricing: 1. Create a Fixed Price promotion. 2. In the Promotion Configuration section, locate the **Amount Expression** field. 3. Enter the product field name that contains your member prices (for example, `memberPrice`, `vipPrice`, or `loyaltyPrice`). 4. In the Customer section, configure the customer group type to define which customers receive the member pricing (for example, VIP, Member, Loyalty). When a customer from the specified customer group adds a product to their cart, the system automatically retrieves the price from the designated product field and applies it at checkout. This ensures that identified members always receive their exclusive pricing without manual intervention. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important The product field specified in Amount Expression must exist in your product data and contain valid pricing information. If the field is empty or doesn't exist for a product, the promotion won't apply to that item. ## Set Promotion Codes Configure in Point of Sale CMS whether your promotion requires a code to redeem. You can also see how many times codes can be redeemed, and for what channels they're valid for. **Auto Apply**—If turned on, the promotion won't require any promotion codes and will be applied to all purchases. **Allowed Channels**—This defines where the promotion is valid. - **Full-Price Store**—Promotion can only be used in a Full-Price store - **Outlet Store**—Promotion can only be used in an Outlet Store **Code Type**—There are two types of code types, Multi-Use, and Single Use Promotion Codes (SUPC). Multi-Use codes are codes that can be applied multiple times, while SUPCs can only be used one time. Note: The field to input a Multi-Use code will display after you've selected a channel under "Allowed Channels." **Redemption Limit**—A numeric value for Multi-Use promotions that defines how many times a promotion can be redeemed. (that is, entering 1,000 limits the promotion to only being able to be used 1,000 times) ### Single-Use Promotion Codes SUPCs can be uploaded and accessed in three ways: manual, CSV, scheduled feed, and through an API. **Single-Use Promotion File** - SUPC file can be uploaded [manually](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_manual_run.htm&release=264.0.0&type=5 "Sometimes you need to run a data feed right away. You can manually run data feeds in Point of Sale to update your data immediately, rather than waiting for the next scheduled run. Implement these steps when you need the most current data.") or through a [schedule](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule."). Scheduled uploads don’t run until the promotion becomes effective (on the promotion start date). If you're changing an existing promotion that uses Single-Use codes, you don't ‌enter the field. The original file that was uploaded remains in use. Single-Use Promotion file appends new codes to existing codes. It doesn't replace existing ones. For example, promotion codes (A, B, C) are uploaded. If you upload another file with new promotion codes (D, E), the final list of codes will be A, B, C, D, E. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: The Single-Use promotion file format consists of one column, refer to the bottom of this article for an example file. After a feed is run, you can check its status—whether it was successful or encountered issues—by reviewing the [Feed Logs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_logs.htm&release=264.0.0&type=5 "Quickly identify the success of Point of Sale data feeds by using feed logs. When you review feed logs, you can begin troubleshooting issues. The feed logs page shows the runs for each feed and their status.") in Point of Sale CMS. Single-Use API With the [Promotion Management](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#promotion-management) API, SUPCs can be fetched, updated, and uploaded to Point of Sale, even including expired codes. For promotions exclusively tied to SUPCs, they must exist. The purpose here is to extract data from the promotion, gaining insight into the included codes and their redemption status. This API function lets you add SUPC codes to the promotion. It also lets you update these promo codes within the same promotion. If creating SUPCs in Retail Cloud, it's essential to match them with the merchant's promotion controller. This alignment allows for direct passing of the promoId in parameters during SUPC redemptions online, reducing the number of API calls required. Example POST Call ``` { "promotionCodes": [ { "codeAssignedDate": "2023-08-08T19:24:10.498Z", "codeRedeemed": false, // "codeRedeemedDate": "2023-08-08T19:24:10.498Z", "codeType": "string", "externalId": "123", // "merchantId": "string", "message": "test", "oneTimeCode": "ZZZ", "oneTimeCodeCS": "string", "promotionId": "bf15c5ba-20a3-404d-8e2d-343f53664f78", // promotionId must match promotion configured in CMS. "promotionValidDate": "2023-08-08T19:24:10.498Z", // "region": "string", // "storeCode": "string", "type": "Promotion", "updatedOn": "2023-08-08T19:24:10.498Z", "validFrom": "2023-08-08T19:24:10.498Z", "validTo": "2023-08-09T19:24:10.498Z" } ] } ``` Example PUT Call ``` { "promotionCodes": [ { //REQUIRED FIELDS BELOW "codeAssignedDate": "2023-08-08T19:24:10.498Z", "codeRedeemed": true, "codeType": "string", "externalId": "123", "message": "test", "oneTimeCode": "ZZZ", "oneTimeCodeCS": "string", "promotionId": "c114d0a2-d952-468d-b967-c42b338af2d9", // promotionId must match the promotion configured in CMS. "promotionValidDate": "2023-08-08T19:24:10.498Z", "type": "Promotion", "updatedOn": "2023-08-08T19:24:10.498Z", "validFrom": "2023-08-08T19:24:10.498Z", "validTo": "2023-08-09T19:24:10.498Z" //REQUIRED FIELDS ABOVE /* //OPTIONAL FIELDS BELOW "codeRedeemedDate": "2023-08-08T19:24:10.498Z", "region": "string", "storeCode": "string", "merchantId": "string", //OPTIONAL FIELDS ABOVE */ } ] } ``` ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Example file: [Single Use Promotion Codes Example](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/single_use_promo_codes_example.csv) ## Set Promotion Rules Define conditions in Point of Sale CMS to meet before the promotion discount can be applied. A rule consists of three defining fields: an attribute, an operator, and a value. In each rule type, the selected attribute will be compared using the operator vs the value defined. If the condition is met, then the promotion will get applied. **Attribute** - This allows you to select an attribute that your condition will be compared against. The attributes are rule-specific. So for product rules, you’ll only see attributes relevant to products. **Important**: The attributes can be mismatched to the target fields in the field mappings. If selecting the attribute for these target fields in field mappings, select ProductID for _id_ and VariantGroupID for _item\_group\_id_. **Operator** - The operator lets you pick what kind of comparison you want to do. For test-based attributes such as color, the comparison operators are _Contains_ and _Doesn't Contain_. For numeric attributes such as ProductID, the comparison operators are >= or <= (that is, greater than equal, and less than equal). **Value** - The value field allows you to select the value or values that the attribute will be compared against. Numeric values only allow a single value to compare against, while you can define multiple values for a text-based attribute. In this example, two conditions must be met: - The customer must buy any product that is more than 19.99. - The customer must buy any product that is either of the brand **Point of Sale** or **ShopNow**. **Buy/Applied To**—You'll see these additional fields only for percentage off-type BOGO promotions. - **At least:** Applies discounts on all discounted items if the cart-item quantity is _greater than or equal_ to the qualifying quantity. - **Exactly:** Applies a discount exactly (or multiples of) on the discounted quantity if the cart-item quantity is _greater than or equal_ to the qualifying quantity. ### Types of Rules **Products** - The Product rules will allow you to select specific products to apply to your promotion. Limit the product rule to applying rules to a limited set of Products and is currently capped at 1000 Product IDs. To apply your promotion to a broader set of products, use the Category Rule, which will allow you to set rules to Categories. - **Disable discount proration** - Turning off discount proration, for example, applies the promotion to one item instead of all of the items. This is useful in cases where gross margins can be affected. **Order** - The Order rules will allow you to add order rules that the promotion discount will be applied to, for example discounts on shipping. **Location** - The Location rule will allow you to add location rules that the promotion discount will be applied to. **Customer** - The Customer rule will allow you to add customer rules that the promotion discount will be applied to, for example employee discounts. - Customer Groups—To create customer groupings, for example discounts for different types of employees, you'll need a custom integration through your CRM. - Make certain there’s a field that groups all the customers. - Point of Sale reads this field and maps it to customerGroup on our end. - In the promo engine, group-based promos will run against this group. ### No-cost Sample Rules Similar to promotion rules, you can configure rules to specify which products will be no-cost samples in the promotion. This can be configured if creating a _No-Cost Samples Promotion_. Under No-Cost Sample Rules, you can control the quantity, attribute, operator, and value(s). With the quantity, you can indicate the maximum amount of No-Cost samples allowed in an order (default is 1). Set all rules to turn on the No-Cost Samples promotion in the POS app. To always set a product as "No-Cost", consider adding an Order rule where the Order Total is >= 0. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: Offline support is only available for app builds 9.1.2 and greater. ### Common Tasks - **Adding a Rule**—Select **ADD** in the upper right corner of the rule card. - **Deleting a Rule**—You can delete an empty rule (that is, a rule with no fields set) by selecting the trash can. If your rule has values set in any of its fields, you can delete it by selecting the vertical three dots and selecting **delete**. - **Adding Values Manually** — You can enter values manually using your keyboard. - **Adding Values From a CSV**—Using the vertical three dots, you can import a list of values from a CSV file. Selecting the (replace current values) will replace all the current values of the field with the contents of the file. Selecting (merge with current values) will merge with the existing values. - **Removing Values**—For text values, you can remove a value by clicking the cross icon. To remove a numeric value, you can simply remove the rule. - **Using the Product Picker**—For a product, qualifying products, or discount group rule, you can use a product picker to select Product IDs if the attribute is set to Product ID. This is the value that is mapped to the Point of Sale ProductID field during feed imports. ### Additional Information If you're ready to create promotions and need an example guide, see [Common Promotion Examples](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_common_promotion_examples.htm&release=264.0.0&type=5 "Learn how to create promotions with use cases to help you engage shoppers with discounts and offers."). The article will go over promotions you commonly see and how to create them. # Create Product Restrictions with Point of Sale Configure rules that block specific products from being sold, returned, or included in inventory processing at selected store locations. Prerequisites: - Modern POS App Build: 8.9.1 and later - Platform Support: iPad and iPhone - Offline Support: 11.3.1 and later 1. Go to **Store Management > Restriction Configuration**. 2. Create a restriction rule. 3. For **Restriction Type**, select whether to restrict inventory, sales, and returns. 4. Provide a descriptive name for the rule. 5. For **Restricted Products**, select a product attribute (such as SKU or style) and enter the matching value (for example, SKU = 12345). Enter values manually or import them from a CSV file using the ellipsis (three dots) menu. 6. For **Restricted Locations**, select the stores where the products are restricted. Enter values manually or import them from a CSV file using the ellipsis (three dots) menu. 7. Save your changes. - **[Manage Inventory Restrictions in Point of Sale CMS and App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_pos_cms_flow.htm&release=264.0.0&type=5)** View how inventory restrictions are managed in Point of Sale CMS and the Point of Sale (POS) app. # Create Promotions in Point of Sale CMS Create promotions and automatically validate those promotions in the Point of Sale (POS) app. These promotion types are available to configure: - Amount Off — Dollar amount discount - Percentage Off — Percentage amount discount - No-cost Samples — No-cost sample items with a purchase - BOGO — Buy one item, get one item at no additional cost - Free Shipping (V1, V2) — No-cost or discounted shipping\* - Fixed Price — Fixed final price or dynamic pricing based on product field references (for example, member pricing) - Buy X for Y — Buy x number of items for a fixed price - Private Sale — Promotional pricing for a specific segment of customers \*Point of Sale offers two types of free shipping (V1 and V2). Each version has different features. See [No-Cost Shipping Promotion](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_no_cost_shipping.htm&release=264.0.0&type=5 "Create promotions in Point of Sale CMS that automatically apply no-cost shipping to eligible orders at checkout on the Point of Sale (POS) app.") for a comparison of features. ## CMS - Configuration and Setup Access the promotions page in CMS by going to **CMS | Promotions**. Promotions appear under four tabs: - **Live**: The Active flag is on and the current date falls between the start and end dates for the promotion. - **Upcoming**: The Active flag is on and the start date of the promotion is in the future. - **Inactive**: The Active flag is off regardless of its start and end dates. - **Expired**: The current date is past the end date of the promotions regardless of whether the Active flag is on or off. Expiration takes precedence over inactive. In other words, if a promotion is both expired and inactive, it's listed under the **Expired** tab. You can’t share a promotion coupon code between a Live promotion and an Upcoming promotion, as this practice causes conflicts and prevents promotions from functioning correctly. For example, the code "STUDENT10" can be active in a Live promotion until December 31, 2023, but you can’t assign the code to an Upcoming promotion starting January 1, 2024. ## Creating Promotions There are two ways of creating promotions in the CMS, manual and upload. For detailed instructions on how to create promotions manually in the CMS, refer to [Create Product Promotions in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&release=264.0.0&type=5 "Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes."). To upload your promotions, refer to the [Promotions Upload Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_promotions_upload_overview.htm&release=264.0.0&type=5 "Import promotions manually from the CMS, schedule automatic uploads, or use Retail Cloud’s API."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The system sets promotion start and end dates in UTC by default. The system doesn't currently support timezone-specific promotions. For examples of how to create common promotions, see [Common Promotion Examples in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_common_promotion_examples.htm&release=264.0.0&type=5 "Learn how to create promotions with use cases to help you engage shoppers with discounts and offers."). You can configure a webhook that sends real-time event notifications when you create, update, or delete a promotion. For specifications and configuration details, see the [Promotion Events Webhook](https://developer.salesforce.com/docs/commerce/retail-cloud/references/promotion-events-webhook?meta=Summary) in the Point of Sale developer documentation. ## Promotion Features in Point of Sale CMS Stack promotions, prioritize them, and confirm the best price for customers. ### Promotion Stackability Stack promotions in the order that you want them executed. Alternatively, change promotion application priority by dragging and dropping promotions into the order that you want them applied. ### Promotion Priority and Combination Rules If a promotion is higher in priority, the system applies that promotion’s ruleset over other promotions. See the example: - You create Promotion A as a Percent Off promotion and set the promotion to be **combinable** with other Percent Off promotions. - You create Promotion B as a Percent Off promotion and set the promotion **not** to combine with any other promotions. - If you move Promotion A higher in the priority order than Promotion B, Promotion A can combine with Promotion B in an order. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Move noncombinable promotions higher in the priority order to prevent other promotions from combining with them. ### Max Discount **Has Max Discount Per Promotion** is a configurable field for Percentage Off and BOGO (Percent Off) promotions. When this field is enabled, you can set the max discount for a promotion. In this example, "Buy 3 chairs get a footstool for 50% off - up to $100 savings": - Buying three chairs and a $100 footstool saves the customer $50. - Buying three chairs and a $200 footstool saves the customer $100. - Buying three chairs and a $250 footstool saves the customer $100. Even though the footstool is $125 with 50% off, the max discount is $100. ### Best Price Wins Point of Sale compares several promotions in a cart and applies the promotion that saves the most money in the transaction. The ordering of the promotions and products doesn't affect Best Price Wins. Point of Sale supports this feature in both online and offline modes. To configure Best Price Wins: - Go to **Store Management | Store Settings | Promotions**. - Turn on **Apply Promotion with Logic of Best Price Wins**. By default, it's turned off. For example, a cart with items totaling $600 has two promotions: promotion #1 (get 15% off) and promotion #2 (spend $500 and get $100 off). The system applies Promotion #2 because the promotion offers the greatest discount ($100 vs. $90). This example saves the customer an extra $10. ### Promotion #1 - Get 15% off - Discount: $90.00 - Total: $510 ### Promotion #2 (Best price) - Spend $500.00, get $100 off - Discount: $100.00 - Total: $500 ### Best Price Wins & Stackability Point of Sale's promotion engine prioritizes the best price among nonstackable promotions. Consider the promotions for a cart of three dresses totaling $200: - Promotions: P1, P2, P3, P4, P5, P6, P7 - Promotion groups: P1, (P2, P3, P4), (P5, P6), P7 \* \* Promotions within a set of parentheses are stackable. ### Promotion Group one (Nonstackable) - P1: 25% off on all items in the cart - Discount = $50 ### Promotion Group two (Stackable) - P2: $20 off on orders over $100 - P3: No-cost shipping on orders over $150 (shipping cost on this order is $13.00) - P4: Buy three, get a pair of socks free Discount = $20 ### Promotion Group three (Stackable) - P5: Buy one get 50% off on jeans (typical cost of jeans is $60) - P6: Buy two, get a free T-shirt - Discount = 0$ ### Promotion Group four (Nonstackable) - P7: $30 off on orders over $200. - Discount = $30 The Point of Sale promotion engine evaluates the cart against all promotion groups, determining the best discount for each group. Promotion groups one, two, and four are all applicable to the cart's total of $200. Group three isn't applicable and offers no discount. The Point of Sale promotion engine selects P1 as the final promotion for this cart because group one provides the best discount ($50). For stackable promotions (for example, group two and group three), the system applies this order: - No-cost Sample (BOGO with a fixed amount of $0) - highest priority - BOGO Fixed Amount - X for Y (as a type of BOGO Fixed Amount) - BOGO Amount Off - BOGO Percentage Off - Fixed Amount - Amount Off - Percentage Off - No-cost Shipping - lowest priority ### BOGO Discount Applied to Lowest Price Item By default, POS applies the discount to the first qualifying item added to the cart. To ensure accurate pricing during returns and exchanges, configure BOGO discounts to apply to the lowest-priced qualifying item in the cart. To turn on this setting: 1. Go to **Store Management | Store Settings | Promotion**. 2. Turn on **Apply BOGO Discount to Lowest Price Item**. This flag isn't compatible with Best Price Wins for any BOGO promotion type. When you turn on this flag, BOGO discounts always apply to the lowest price item in the cart. Best Price Wins still applies the greatest discount across all other promotion types (amount off and percentage off). ### Exchange Price Match When customers exchange items, they typically pay the current price for the replacement item. With Exchange Price Match enabled, customers can match the promotional price from the original purchase, even when the promotion is no longer active. For example, a customer buys shoes for $80 during a promotion. Later, they exchange the shoes for a different size. Without Exchange Price Match, they pay the current price of $100. With Exchange Price Match enabled, they pay the original promotional price of $80. To turn on this setting: 1. Go to **Store Management | Store Settings | Promotion**. 2. Turn on **Exchange Price Match**. When enabled, Point of Sale matches the promotional price from the original transaction during exchanges. The system applies this setting to all exchange transactions. ### Download Promotions Export a CSV file of all promotions (inactive and active). Select Download CSV in the upper right corner of the Promotion page in CMS. This file includes all related details of each promotion, including discount type, percent or amount off, and promotion rules. ### Offline Promotions For information on the support and capabilities of promotions during offline mode, read [Offline Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_configure_offline_promotions.htm&release=264.0.0&type=5 "Turn on and manage offline promotions in Point of Sale CMS"). ## Known Promotion Issues and Restrictions Understand limitations and unexpected behaviors with promotions in Point of Sale to avoid potential issues. For offline promotions, if a product is removed from the cart and there's a manual promotion by entering a coupon code. If it doesn't match any products in the cart, then it'll be removed automatically. However, if the product is added to the cart again, then the coupon code also has to be manually added as well. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_warning.png) Warning Warning messages won't be displayed in other cases on the cart screen in online mode. For example, if there was a coupon code added to the cart and if the applicable product is removed, decrease the quantity of the product and if the coupon code isn't valid, and so on Switching between network modes (online to offline and vice versa) will remove all applied promotions from the cart. Manually reapply any promotions after the network mode switch. Auto promotions are auto applied for eligible products. Promotions in both the "Live" and "Upcoming" states can't share the same promotion coupon code, as this leads to conflicts and prevents promotions from functioning correctly. For instance, the code "STUDENT10" can be active until December 31, 2023, but it cannot simultaneously be scheduled for an upcoming promotion starting on January 1, 2024. ## Frequently Asked Questions (FAQs) Get answers to common questions about using promotions in Point of Sale CMS. ### Is stackability logic operating at the cart level or line item level? Stackability logic operates at the cart level. ### How is the discount calculated if my cart contains these promotions? Cart: Three full-price items Promotions: - "10% off, applies to all items in the cart (stackable and higher in the promo ranking than the 20%)" - "20% off, applies to all items in the cart (not stackable but lower than the 10% promo in the promo ranking)" If the best price promo is active, the system evaluates the promotions' groupings and applies the best deal. The order of promotions matters only in cases of a tie or within a set of stackable promotions. You can either turn off the best price promo or accept this as the expected result. ### Can I use a coupon code that can only be used once and save 50% on an item? The system will find the best deal: 50% off the original price of the item or the current sale price. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This feature isn't supported directly. A workaround is to apply a 50% item discount at the cart level. # Create Return and Cancel Fee Products For each type of fee that you want to charge, create a product record and one price book entry for each supported currency. The actual price doesn’t matter, because you specify the fee amount when you create a return order or process a simple return or cancel. ### Required Editions
View supported editions.
1. From the App Launcher, find and select **Products**. 2. Click **New**. 3. Enter a Product Name, for example Restocking Fee. 4. Enter a Product Code, for example restocking\_fee. 5. Enter a Description, for example Charge a restocking fee when returning a product. 6. Select **Active**. 7. Click **Save**. 8. On the new product’s Details page, select the Related tab. 9. In the Price Books related list, click **Add Standard Price**. 10. If you use multiple currencies, select a currency from the dropdown list. 11. For List Price, enter a price. The value doesn’t matter. If the fee is a fixed amount, you can store the price here and retrieve it when adding a fee. 12. Select **Active**. 13. If you use multiple currencies, click **Save & New**, and add a price for each supported currency. 14. Click **Save**. #### See Also - [Products and Price Books](https://help.salesforce.com/s/articleView?id=sales.products_pricebooks.htm&type=5&language=en_US) - [Charge Return and Cancel Fees](https://help.salesforce.com/s/articleView?id=commerce.om_charge_return_fees.htm&release=264.0.0&type=5 "You can charge fees for an order item being returned or canceled. Create one or more products to represent the fees, then implement a return or cancel process that handles them.") - [Return and Cancel Fee Processes](https://help.salesforce.com/s/articleView?id=commerce.om_return_fee_process.htm&release=264.0.0&type=5 "To charge a fee on a return order line item during an RMA return, include the fee when creating the return order and process it when returning the return order line item. To charge a fee on a simple return or cancel, include it when submitting the return or cancel.") # Create SourceCodeGroup API Deletes Trailing White Space The OCAPI Data API, Create SourceCodeGroup, now deletes trailing white space after the id parameter of a source code group. # Create Store Associates Add users to Point of Sale CMS who can access store functions and operate a point of sale (POS) system. - **[Store Associates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associates.htm&release=264.0.0&type=5)** Store associate users can be fed into the Point of Sale platform through a feed file or they can be created and managed manually in the CMS. - **[Creating Store Associates in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_creating_store_associates_in_cms.htm&release=264.0.0&type=5)** Create store associate users in the Point of Sale (POS) system through manual entry or by loading a feed into the Point of Sale CMS. # Create Streams for Return Insights You can complete most of the Return Insights configuration by using the Data 360 Setup guide. After you finish setting up Data 360, create data streams. Data streams are the connections and associated data ingested into Data 360. ### Required Editions
View supported editions.
To use Return Insights, [turn on Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_provision.htm&type=5&language=en_US), [set up an admin user](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_walkthrough.htm&type=5&language=en_US), and [connect the source Salesforce org to Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_set_up_crm_connection.htm&type=5&language=en_US). 1. From the App Launcher, find and select **Data Cloud**. 2. On the Data Streams tab, click **New**. 3. For Connected Source, select **Salesforce CRM**, and click **Next**. 4. Select the org that you’re creating data streams for. 5. Click **All Objects**. 6. Search for and select **Order Product Summary**, and click **Next**. 7. For Object Details, select **Engagement**, and for Event Time Field, select **Created Date**. 8. Click **Next**. 9. Review the order product summary fields, and click **Next**. 10. Click **Deploy**. 11. Return to the list of streams. Open the action menu at the end of the row for your new stream, and click **Refresh Now**. #### See Also - [Return Insights Overview](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5 "Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them.") - [Return Insights Setup](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights_setup.htm&release=264.0.0&type=5 "You can complete most of the initial Einstein configuration using the Data 360 Setup Guide.") # Create Subscription Product Bundles in Your B2B Commerce Store Bundle related digital subscription products together as a single SKU. Specify a parent product for the bundle, and add child products to the bundle. Also specify the price of the bundle. At present, you can bundle only digital subscription products. ### Required Editions
View supported editions.
This task assumes that you’ve enabled Salesforce Pricing for B2B Stores and Subscriptions for your org, and configured your price book and product pages to support subscriptions. See [Enable Salesforce Pricing and Subscriptions in Your B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_subscription_enableSalesforcePricing.htm&language=en_US) and [Configure Commerce Pages to Support Subscriptions](https://help.salesforce.com/s/articleView?id=commerce.comm_subscriptions_configure_pages.htm&language=en_US). For example, you can create the bundle Acme Media One - Family, which includes Acme TV, Acme Music, and Acme Arcade. In this example, Acme One - Family is the parent product, and the other subscription products are the child products. You can set the price of the bundle at the parent level. The prices of the individual child products in the bundle don't need to add up to the total price of the bundle. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Merchandising** | **Products**. 3. From the Product Workspace dropdown menu, select **New Product Bundle or Set**. 4. For Product Type, select **Bundle**. 5. Enter the product details. 1. Name the product bundle. 2. (Optional) Select the product family that the product bundle belongs to. 3. Enter a product SKU. 4. To make the subscription bundle available in your store, select **Active**. 5. (Optional) Enter a product code. 6. (Optional) Enter a product description. 7. Save your changes. After you save your changes, you're directed to the new product bundle's record page to configure it. #### See Also - [Configure the Subscription Product Bundle](https://help.salesforce.com/s/articleView?id=commerce.comm_subscription_configureproductbundle.htm&language=en_US) # Create Templates for Product List and Product Detail Pages With Page Designer’s new dynamic page feature, you can easily create rich, engaging templates for Product Detail or Product List pages. You can assign the template to multiple categories. When a Product List or Product Detail page is rendered in the storefront for one of the assigned categories, the template page is displayed, populated with the appropriate product information. Why: Set up a Product List or Product Detail template page one time, with layout, components, text, and graphics customized for your storefront. There’s no need to create a separate page for every category. Categories you assign to the template page are automatically rendered using the template. How: Using our new wizard, create the template page using a page layout designated for Product List or Product Detail pages. Add components to create the look you want. Now developers can incorporate content in components that’s different depending on which category is rendered on the page. For example, a dynamic headline banner component displays the name and image for whatever category is rendered on the page, without any configuration required. You can override the dynamic content in the component. For example, you can specify that the headline banner displays a name or image that's different from the name and image of the category rendered on the page. During page creation or later in Page Settings, assign the template page to one or more of the categories defined in your site’s catalog.  #### See Also - [Create a Page Using the Page Designer Visual Editor](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_create_page.html) - [Develop a Dynamic Page](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_develop_dynamic_page.html) # Create Web Authorization Token Configure token fields to generate a web authentication token in the Point of Sale (POS) app. This token is then passed as an Authorization header in a later network call. ![Web Authorization Headers](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_web_auth_token_headers.png) Prerequisites - Modern POS App Build: 5.12.2 21098 or greater - Platform Support: iPhone & iPad - Offline Support: no - Technical Prerequisites: An endpoint that is used to generate a token using a POST call ## Turn On App Settings 1. In CMS, go to **Apps** and edit your app configuration. 2. Go to **Modules > Settings**. 3. Under **Web Token URL**, enter the token service endpoint. 4. Under **Web Token Scope**, enter the scope of the token permission passed in the request as _"resource"._ 5. Under **Web Token Grant Type**, enter the token type passed in the request as _"grant\_type"._ 6. Under **Web Token Client ID**, enter the client ID to call the token service passed in the request as _"client\_id"._ 7. Under Web Token Client Secret, enter the client ID to call the token service passed in the request as "client\_secret".![The App Settings for Web Auth Tokens in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_web_auth_token_app_settings.png) ## Configure Web Auth Token Deep Link 1. Edit a layout cell or hamburger menu. 2. Using the deep link picker, select the URL as the deep link type. 3. Add the URL for which the generated token will be passed in the Authorization header. Append a query parameter at the end of the URL with the key "**token**" and value "**1**" (**token=1**).![Selecting a Deep Link for Web Auth Tokens in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_web_auth_token_deep_links.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Select a customer for the web authentication token call to work. ## Known Issues & Restrictions The keys for the token generation request are hard-coded in the app and can't be configured in Point of Sale CMS. These values are "**resource**", "**grant\_type**", "**client\_id**", "**client\_secret**". ## Frequently Asked Questions (FAQs) What determines whether a new token is generated? If the POS is about to open a web URL deeplink configured for token authentication (indicated by `token=1` in the URL), the app generates a new token and includes it in the web URL request. How long does a token last? Tokens are for one-time use only. The app doesn't save the token and regenerates a new one each time the web URL deeplink is launched from the POS. # Creating and Managing Store Associates via Feed File Use a feed file to load a store associate's data into the Point of Sale CMS platform. A store's data can be fed into the Point of Sale platform through a feed file: - Create a store associates [feed file](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5 "A feed file contains data like products, categories, or stores. Point of Sale ingests different types of feed files in different configurations. Depending on the feed type, uploading a new file can either replace or upsert the existing data."). - Map the attributes in the feed file with Point of Sale fields using [Field Mappings](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5 "The raw columns or attributes inside the feed file are transformed and mapped onto fields that the Point of Sale backend understands."). - Run the feed using [Manual Upload](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_manual_run.htm&release=264.0.0&type=5 "Sometimes you need to run a data feed right away. You can manually run data feeds in Point of Sale to update your data immediately, rather than waiting for the next scheduled run. Implement these steps when you need the most current data.") or [Scheduled Upload](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule."). ## Store Associate Field Mapping - Is\_active - Map active field value to 1/0 if the feed isn’t using 1/0 as a value ![Set is\_active field value for Store Associate](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_is_active_mapping.png) - HireDate and TerminationDate - Map date format used in feed to epoch type (milliseconds) ![Set HireData field for Store Associates](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hire_termination_date.png) # Creating Inventory Adjustments in the POS App Use inventory adjustments in the Point of Sale (POS) app to track and manage your products. Tap the Inventory Adjustment deep link to show a list of batches that are in progress, paused, closed, and so on You can filter this list by date or status. ## Available Statuses: - **In Progress**—Batch is actively scanning products - **Paused** - Batch has been paused - **Closed** - Scanning and inventory adjustments are complete but not yet posted - **Canceled** - Batch has been canceled - **Posted** - Batch is complete and has been posted To create a new batch, tap **Create New Batch** at the bottom of the screen. As soon as a batch is created, its status updates to “In Progress”. # Creating or Starting Cycle Counts Create cycle counts to accurately manage inventory records. You can create them in the Point of Sale (POS) CMS, the POS app, or with an API. - **[Create Cycle Count in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_cycle_count_in_cms.htm&release=264.0.0&type=5)** Create cycle counts in CMS to make sure of accurate inventory management. - **[Create or Start Cycle Count in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_cycle_count_pos_app.htm&release=264.0.0&type=5)** Create or start cycle counts in the Point of Sale (POS) app to make sure of accurate inventory management. - **[View Cycle Count Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_view_cycle_count_reports.htm&release=264.0.0&type=5)** See your history of cycle counts in Point of Sale CMS. - **[Cancel Cycle Counts in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_cancel_cycle_counts_in_cms.htm&release=264.0.0&type=5)** Cancel a cycle count in Point of Sale CMS if you acidentally create one. # Creating Store Associates in Point of Sale CMS Create store associate users in the Point of Sale (POS) system through manual entry or by loading a feed into the Point of Sale CMS. Store associate users can be created in the POS system using Point of Sale CMS. This set of articles will go over the steps on how to do so. - **[CMS - Configuration and Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_configuration_and_setup.htm&release=264.0.0&type=5)** Create store associates manually or through a feed in Point of Sale CMS. Add associates so they can view store analytics in the CMS. - **[Alternate Store IDs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_alternate_store_id.htm&release=264.0.0&type=5)** Use the Alternate Stores ID field in Point of Sale to assign multiple stores to an associate that works at multiple stores. - **[Advanced Store Associates Creation in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms__store_advanced.htm&release=264.0.0&type=5)** Enter a Salesforce Commerce (SFCC) Business Manager (BM) user ID and password to enable customer lookup and online flows in Point of Sale (POS). # Credit Card with Manual Key Entry Enter credit card information manually via Adyen, Elavon and Verifone payment terminals using the Point of Sale (POS) app. In the payment process, the terminal presents the option to enter the credit card number and expiry date. The user then enters the details to complete the transaction. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This feature can only be enabled from the multitender flow. Refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_multitender_config.htm&release=264.0.0&type=5 "Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app.") for instructions on enabling multitender in the POS app. ## Prerequisites - Modern POS App Builds: - Adyen: 6.4.2 or later - Elavon: 7.10.5 or later - Verifone Payments: 9.3.1 - Platform Support: iPhone & iPad - Offline Support: yes - Payment Gateway: integration with Adyen to accept a payment ## Configure Payment Terminals and Point of Sale CMS for Manual Key Entry Turn on manual credit card entry in payment gateway settings so users can enter credit card information directly. ### Configure Ayden for Manual Key Entry The Adyen support team can assist you in enabling the manual key entry feature at the store and terminal levels. Then, you'll need to update the configuration on the terminal 1. Enter "**9**" and “**O**”. 2. Enter the admin key for the terminal. 3. Select **Config**. 4. Select **Update**. For Elavon and Verifone payments, no configuration changes are needed in the terminals. ### Configure Payment Gateway Settings in Point of Sale CMS 1. Go to **CMS > Integration > Payment Gateways**. 2. Select the previously created payment gateway or create payment gateway. 3. Turn on **Manual Credit Card Entry on Terminal**. ![The Ayden Terminal Payment Gateway Configuration page, with the Manual Credit Card Entry on Terminal setting turned off.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_manual_card_entry.png) 4. Select **Save** in the top right corner. ## Manually Enter a Credit Card in the POS App Use the Point of Sale (POS) app during checkout whenever the payment terminal fails to obtain the card details from the card's chip or magnetic stripe. In that case, users can enter the credit card details manually on the terminal. ### Checkout If the store associate adds a credit card tender on the multitender screen, they can turn on the switch for manual credit card entry. It initiates the transaction on the payment terminal and the customer sees an option to enter a credit card number. After the customer enters the card number and expiry date, the terminal asks for a signature. After the customer completes the signature, the terminal authorizes the transaction and the order is placed.![A window in the POS app for manually entering your credit card amount and turning on the Allow Manual Card Entry setting.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_checkout_manual_card_entry_pos_app.png) ### Adyen Terminal Screens ![Enter you card number in the AYden terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_screen_card_1.png)![Enter your card expiry date in the Ayden terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_term_screen_2.png)![Card approval message in the Ayden terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_term_screen_3.png)![Thank you message in Ayden terminal when you card is approved.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_term_screen_4.png) ### Elavon Terminal Screens ![Enter your account number on the Elavon terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_terminal_screen_1.png)![Elect hether you want to proceed on the terminal in English or in French.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_terminal_screen_2.png)![Enter your card's expriation date in the Elavon terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_terminal_screen_3.png)![Enter your card's CVV in the Elavon terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_screen_4.png) ### Verifone Terminals Screens ![A sale price showing on the Verifone terminal home screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_verifone_terminal_1.png)![Select whether the card is a credit card or private label in the Verifone terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_verifone_terminal_screen_2.png)![Enter the card's expriation date in the Verifone terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_verifone_terminal_screen_3.png)![A comnpleted manual card entry transaction in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_completed_man_card_order_pos.png) ## Additional Manual Key Entry Information Learn additional information about Manual Credit Card Key Entry and how it interacts with Point of Sale. ### Verifone Payment Terminals Turning on CVV prompting is configurable for SCA devices. The requirement for CVV or a signature depends on the processor. Verifone terminals don't enforce it, as transactions pass through Verifone's gateway, which doesn't provide approval based on this. # Credit Memo Fields The Credit Memo object represents an amount to be refunded after an invoice has been generated. This object can be associated with one or more change orders. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Credit Memo object.
Field Label Description
Balance The amount of the credit memo available for allocation.
Bill To Contact The contact for the customer account associated with the credit memo.
Billing Account The customer account associated with the credit memo.
Created By The user who created the credit memo record.
Created Date The date when the credit memo record was created.
Credit Date The date that the credit memo was posted.
Credit Memo Number The auto-generated number assigned to the credit memo.
Description The description of the credit memo.
Document Number The auto-generated number used for organizing financial documents.
Last Modified By The user who last modified the credit memo record.
Last Modified Date The date when the credit memo record was last changed.
Owner Name The owner of the credit memo.
Reference Entity The order or order summary associated with the credit memo.
Status

The status of the credit memo.

Possible values are:

  • Canceled—The credit memo is canceled.
  • Draft—The credit memo isn’t yet recorded as a financial transaction.
  • Error Posting—The credit memo posting failed.
  • Pending—The credit memo is pending.
  • Posted—The credit memo has been recorded as a financial transaction.
Tax Locale Type

Indicates the method used to handle tax on the original order associated with the credit memo.

Possible values are:

  • Gross—Displays most prices and taxes as combined values. Usually applies to taxes like value-added tax (VAT).
  • Net—Displays most prices and taxes as separate values. Usually applies to taxes like sales tax.
Total Adjustment Amount The total amount, not including tax, of the price adjustments applied to the products on the credit memo.
Total Adjustment Tax Amount The tax on the total adjustment amount.
Total Adjustment Amount with Tax

The total amount, including tax, of the price adjustments applied to the products on the credit memo.

Total Adjustment Amount with Tax = Total Adjustment Amount + Total Adjustment Tax Amount

Total Amount The total amount of the credit memo, including adjustments but not tax.
Total Charges The total amount of the charges on the credit memo, not including taxes.
Total Charge Amount with Tax

The total amount of the charges on the credit memo, including tax.

Total Charge Amount with Tax = Total Charges + Total Charge Tax Amount

Total Charge Tax Amount The tax on total charges.
Total Tax Amount The tax on the total amount.
Total with Tax

The total amount of the credit memo, including adjustments and tax.

Total with Tax = Total Amount + Total Tax Amount

#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Credit Memo Line Fields The Credit Memo Line object represents a portion of the amount of a credit memo. One credit memo line can represent the full amount of a credit memo. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Credit Memo Line object.
Field Label Description
Adjustment Amount The total amount of the price adjustments on the credit memo line, not including tax.
Adjustment Tax Amount The tax on the adjustment amount.
Adjustment Amount with Tax

The total amount of the price adjustments on the credit memo line, including tax.

Adjustment Amount with Tax = Adjustment Amount + Adjustment Tax Amount

Charge Amount The total amount of the charges on the credit memo line.
Charge Amount Tax The tax on the charge amount;
Charge Amount with Tax

The total amount on the charges on the credit memo line, including tax.

Charge Amount with Tax = Charge Amount + Charge Amount Tax

Created By The user who created the credit memo line record.
Created Date the date when the credit memo line record was created.
Credit Memo The parent credit memo associated with the credit memo line.
Description The description of the credit memo line.
End Date For credit memos made from a time-based service, the end date of the billing for the service. 
Gross Unit Price The unit price of the product on the credit memo line, including tax.
Line Amount The total amount on the credit memo line, including tax.
Name The name of the credit memo line.
Product The product that was charged or ordered to create the credit memo line.
Reference Entity Item The order item or adjustment item that created the credit memo line.
Reference Entity Item Type

The type of transaction that created the credit memo line.

Possible values are:

  • Delivery Charge—Indicates that the return order line item represents a delivery charge.
  • Order Product—Indicates that the return order line item represents a product, service, or charge.

Each Reference Entity Item Type corresponds to one Reference Entity Item Type Code.

Reference Entity Item Type Code

The type code of the transaction that created the credit memo line.

Possible values are:

  • Charge
  • Product
Reference Line The original invoice line that was adjusted or taxed.
Start Date For credit memo lines made from a time-based service, the start date of the billing for the service.
Status

The status of the credit memo line. Inherited from the credit memo’s status.

Possible values are:

  • Canceled—The credit memo is canceled.
  • Draft—The credit memo isn’t yet recorded as a financial transaction.
  • Error Posting—The credit memo posting failed.
  • Pending—The credit memo is pending.
  • Posted—The credit memo has been recorded as a financial transaction.
Tax Amount The total tax for the credit memo.
Tax Code The code representing the tax rate used to calculate the tax amount on the credit memo line.
Tax Effective Date The date used to calculate the tax amount on the credit memo line.
Tax Name The name of the tax applied to the credit memo line.
Tax Rate The percentage value used to calculate the tax amount on the credit memo line.
Total Amount The total amount of the credit memo line, not including tax.
Total with Tax

The total amount, including tax, of the credit memo line.

Total With Tax = Total Amount + Tax Amount

Type

The type of transaction for the credit memo line.

Possible values are:

  • Adjustment
  • Charge
  • Tax
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # CSV File Format for Importing Category Data for a B2B Commerce Store When you construct a category import file, specify column headings that correspond to category path, URL slug, and category description information. Each row in the file represents a category and its structure. The column headings are case-insensitive, and the columns can be in any order. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
Column Heading Column Value
Category Description (Optional) The description of the category, corresponding to the Description field on the ProductCategory object. Put quotation marks around a category description value if it includes a comma.
Category Path

The path of the category, with / to delimit path segments. For example, the category path coffee/whole-bean creates the path store.com/category/coffee/whole-bean.

  • The last delimited value in the category path is used as the category name.

Slug <language code>

(Optional) The SEO-friendly URL slug for the category in a specified language.

  • In the column heading, specify a Salesforce-supported language code. For example, Slug en_US.

  • Use of the term Product2 isn’t allowed in a URL slug. This URL is reserved for use in your site.

URL slugs have a character limit of 150 and allow these characters: a-z A-Z 0-9 . - _ $ & : ; * , = @. Foreign language characters are also allowed.

#### See Also - [Import Category Data for a Store](https://help.salesforce.com/s/articleView?id=commerce.comm_seo_import_category_data.htm&language=en_US) - [Import Data Using a CSV File to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_import_products_global.htm&language=en_US) # CSV File Format for Importing Product Data to B2B Stores You can import product data into B2B Commerce by creating a CSV file. Specify column headings for Product, Category, and Price Book information. Each row in the file represents a unique product and its variations. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important To properly encode special characters, save the CSV file in UTF-8 format.
Column Heading Column Value
Product Name The name of the product, corresponding to the Product2.Name field. This column is required if you’re creating products. If you’re updating products, you don’t have to include it as long as you uniquely identify the product with SKU, ProductCode, Product Id, or Product ExternalId.
Product Description (Optional) A description of the product, corresponding to the Product2.Description field.
Product <FieldName>

The name of a field on the Product2 object. FieldName is the api name of the field. You can use any updateable field on the Product2 object, including a custom field, as a column heading. You can specify as many fields as you want. The import process supports fields with data type checkbox, currency, date, date/time, email, number, percent, phone, picklist, picklist (multiselect), text, text area, text area (long), text area (rich), time, url, or string. The data format in this column depends on the field data type.

  • Checkbox—Allowed values are true or false.
  • Date, date/time—Values are locale-specific. See Supported Date and Time Formats (ICU).
  • Picklist—Use the picklist value.
  • Picklist (Multiselect)—Use the picklist values separated by a semi-colon (;).

For formatting guidelines for the other supported data types, see Custom Field Types.

Product Type The type of the product. You can set the product type if the import creates this product. You can’t update the product type for an existing product. If you try to update the product type for an existing product, you don’t get an error message, but the type isn’t updated.
SKU

The product’s stock-keeping unit (SKU) number. SKU is one of the four columns that uniquely identify a product. ProductCode, Product Id, and Product ExternalId are the others. At least one of the four is required in your import file. The SKU column name is equivalent to the Product StockKeepingUnit column name. There’s no difference between them functionally, but SKU has fewer characters to enter. This column corresponds to the Product2.StockKeepingUnit field. You can’t update the product SKU using the import file.p

The SKU field is required for several commerce features, such as cart and checkout, and for importing product image references into Salesforce CMS. If you’re creating products, make sure that your import file specifies the SKU. If you’re updating products, the SKU is optional as long as you uniquely identify the product.

Slug <language code>

(Optional) The SEO-friendly URL slug for the product in a specified language. Use a separate column for each language you want to specify a slug for.

  • For language code, specify a Salesforce-supported language code. For example, Slug en_US. For a slug to be used in a store, the language must be available in the org and in that store.

  • Use of the term Product2 isn’t allowed in a URL slug. This URL is reserved for use in your site.

URL slugs have a character limit of 150 and allow these characters: a-z A-Z 0-9 . - _ $ & : ; * , = @. Foreign language characters are also allowed.

Media Listing URL

(Optional) URL to the media to use as the listing image for the product. If you’re updating information about the listing media, include the URL, even if you don’t want to change it, because the URL uniquely identifies the media. If you’re updating existing listing media, the fields that you omit default to the values for the existing listing media. If you’re using the enhanced CMS, the URL must use the HTTPS protocol. If you import new media for a product, the import creates an image in the CMS workspace. This process can result in having multiple copies of the same image in the workspace.

Note
Note You can't add videos while importing products. If you include a video URL, it is added as an image during the import process.
Important
Important When you publish content in a CMS workspace, it’s shared to all channels in the workspace, including the public channel. Your content doesn’t have restricted access.
Media Listing Title (Optional) The title for the listing media. If you include more than 255 characters, the title assigned is the last 255 characters. If you don't include a title, the title is set to the URL path for the media. If the URL path includes more than 255 characters, the title includes only the last 255 characters.
Media Listing AltText (Optional) Alt text for the media. If you don’t include this column, no alt text is assigned to the media.
Media Listing Thumbnail (Optional) URL for thumbnail media for the product. If you don’t include this column, no thumbnail is assigned to the product. Thumbnails aren’t supported for enhanced CMS workspaces.
Media Standard URL 1...Media Standard URL 8

(Optional) You can have up to eight columns that contain the URLs to media associated with the product, labeled Media Standard 1, Media Standard 2, and so on. If you’re updating information about the standard media, include the URL, even if you don’t want to change it, because the URL uniquely identifies the standard media. If you’re updating existing media, the fields that you omit default to the values for the existing media. If you’re using the enhanced CMS, the URL must use the HTTPS protocol. If you import new media for a product, the import creates a new image in the CMS workspace. This process can result in having multiple copies of the same image in the workspace.

When you publish content in a CMS workspace, it’s shared to all channels in the workspace, including the public channel. Your content doesn’t have restricted access.

Media Standard Title 1...Media Standard Title 8 (Optional) The title for the media. If you include more than 255 characters, the title assigned is the last 255 characters. If you don't include a title, the title is set to the URL path for the media. If the URL path includes more than 255 characters, the title includes only the last 255 characters.
Media Standard AltText 1...Media Standard AltText 8 (Optional) Alt text for the media. If you don’t include this column, no alt text is assigned to the media.
Media Standard Thumbnail 1...Media Standard Thumbnail 8 (Optional) URL for thumbnail media for the product. If you don’t include this column, no thumbnail is assigned to the product. Thumbnails aren’t supported for enhanced CMS workspaces.
Media Standard sortOrder 1...Media Standard sortOrder 8 (Optional) This value determines the order in which media is displayed on the product detail page. Valid values are 1 through 8. If you don’t include this column, sort order 1 is assigned to the media. Import fails if the same sort order value is assigned to more than one standard media for a product.
Media Attachment URL 1...Media Attachment URL 5 (Optional) You can have up to five columns that contain the URLs to attachments associated with the product, labeled Media Attachment 1, Media Attachment 2, and so on.
Media Attachment Title 1...Media Attachment Title 5 (Optional) The title for the attachment. If you include more than 255 characters, the title assigned is the last 255 characters. If you don't include a title, the title is set to the URL path for the attachment. If the URL path includes more than 255 characters, the title includes only the last 255 characters.
Media Attachment AltText 1...Media Attachment AltText5 (Optional) Alt text for the attachment. If you don’t include this column, no alt text is assigned to the attachment.
Media Attachment Thumbnail 1...Media Attachment Thumbnail 5 (Optional) URL for the thumbnail for the attachment. If you don’t include this column, no thumbnail is assigned to the attachment. Thumbnails aren’t supported for enhanced CMS workspaces.
ProductCode

The product’s unique Product Code. ProductCode is one of four columns that uniquely identify a product. SKU, Product Id, and Product ExternalId are the others. At least one of the four is required in your import file. This column corresponds to the Product2.ProductCode field. If you identify an existing product using a SKU column, you can update the Product Code to a new value that you specify in this column.

The ProductCode field doesn’t enforce a unique constraint. If you use this column to identify products, it’s possible that duplicate records will be created or if there are already records with duplicate values, any one of the records will be updated.

Product ExternalId

The product’s External ID. Product ExternalId is one of four columns that uniquely identify a product. SKU, Product Id, and ProductCode are the others. At least one of the four is required in your import file. This column corresponds to the Product2.ExternalId field. If you identify an existing product using either a SKU or a ProductCode column, you can update the External ID to a new value that you specify in this column.

The Product ExternalId field doesn’t enforce a unique constraint. If you use this column to identify products, it’s possible that duplicate records will be created or if there are already records with duplicate values, any one of the records will be updated.

Product Id The Product ID. Product Id is one of four columns that uniquely identify a product. SKU, Product ExternalId, and ProductCode are the others. At least one of the four is required for your import file. This column corresponds to Product2.Id. The Product ID is assigned automatically when the product is created. You can’t set it to a specific value, and you can’t change it after the product is created.
Product Family (Optional) A grouping for products, corresponding to the Product2.Family field. Group products any way you like. You can use product family values as filters for search results.
Product isActive (Optional) A value indicating if the product is active, corresponding to the Product2.IsActive field. By default, newly created products are inactive. To make a product active, specify true in this column. To make a product inactive, specify false, leave the column blank, or omit the column.
Category 1... Category 5

(Optional) You can have up to five category columns, labeled Category 1, Category 2, and so on. You can’t update existing categories for a product. You can only add new categories.

For the first category, you can use the label Category without the number 1. In a category column, you can specify a nested category, using the / character to separate the levels. For example, Products/Machines/Espresso.

Entitlement 1... Entitlement 50

(Optional) The name of an entitlement policy to associate with the product. You can specify up to 50 entitlement policies in columns labeled Entitlement 1, Entitlement 2, and so on. You can’t update existing entitlement policies for a product. You can only add new entitlement policies. Create the entitlement policies before you import the CSV file. For more information, see Create an Entitlement Policy.

For the first entitlement policy, you can use the label Entitlement without the number 1.

Price <values>

To specify prices, use a column labeled Price, followed by optional values. The import process determines where to add the prices based on the values, if any, that you include in the column label.

  • Price or Price <currency code>—When you use Price as the column label, or Price followed by a currency code, you’re asked which price book to use during the import process. The prices in all columns without an alias are added to the same price book. If a currency code isn’t specified, the default is the currency code for the user who’s running the import.
  • Price (alias) or Price (alias) currency code—You can use any alias you want to describe a price book. For each alias, you’re asked which price book to use during the import process. The prices in all columns using the same alias are added to the same price book. If a currency code isn’t specified, the default is the currency code for the user who’s running the import.
  • Price price book ID or Price price book ID currency code—The system adds the prices to the price book with the specified ID. If a currency code isn’t specified, the default is the currency code for the user who’s running the import.
Variation AttributeSet The attribute set for the variations of the product. Use the Variation AttributeSet API name for the column heading. This column is required if you specify product variations. Create the attribute set before importing the CSV file. For more information, see Create Attributes for Product Variations in B2B Stores.
Variation Parent <identifier>

The parent product for the variation. In the column heading, include an identifier to indicate the value that you’re using to identify the parent. Valid column headings are:

  • Variation Parent (Id)—Use Product ID.
  • Variation Parent (StockKeepingUnit)—Use SKU.
  • Variation Parent (ProductCode)—Use Product Code.
  • Variation Parent (ExternalId)—Use External ID to identify variation parent.

The parent product must exist or be specified in the CSV file before the variations are created.

Variation Attribute Name 1... Variation Attribute Name 5 The API name of a variation attribute in the variation attribute set. A variation attribute is a custom field on the Product Attribute object, so __c is appended to the name, for example, Bag_Size__c. At least one Variation Attribute Name column is required for each attribute set, labeled Variation Attribute Name 1. You can have up to five attribute name columns, labeled Variation Attribute Name 2, Variation Attribute Name 3, and so on. You must create the variation attributes for importing the CSV file. For more information, see Create Attributes and Attribute Sets for Product Variations.
Variation Attribute Value 1...Variation Attribute Value 5 The value of the attribute specified in the attribute name column. This column is required for each Variation Attribute Name column.
#### See Also - [Import Product Data for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_product_import_process.htm&release=264.0.0&type=5 "Upload and import the CSV file that contains the products that you want to add or update for use by all stores.") # CSV Format Supported for Product Catalog Export and Import You can now import and export your product catalog as a CSV file or as an XML format. You can choose which product attributes to include in the export, so that the file shows only the data that you need. Each CSV export contains data for a single site and a single locale. The CSV import supports multiple sites and locales. How: The CSV format is a subset of the XML import and export process. Not all functions available for XML are supported for CSV. # Currency Rounding in the POS app Currency rounding is the practice of rounding order totals to some monetary increment. Currency rounding is common in countries where rounding is legally required (like Canada, Australia, South Korea), and in other countries where smaller coins are phased out. Salesforce POS supports multiple rounding scenarios, including calculation-driven, cash, currency specific, and currency conversions. This support ensures smoother cash handling and accurate change, enhancing customer shopping experiences and precise transactions for accurate sales reporting. Configure cash rounding in CMS and review rounding behavior for sales, returns, and exchanges. ## Prerequisites - Modern POS app build: 5.11.3 or above - Platform Support: iPhone - Offline Support: Yes - Technical Prerequisites: No Salesforce POS supports these currency rounding types: - **Calculation-driven rounding:** Rounds values during cart calculations to match the currency precision. Calculation-driven rounding uses the round-half-even method as the default rounding method. The round-half even-method rounds values that are exactly halfway between two integers to the nearest even integer. For example, 2.5 rounds to 2 and 3.5 rounds to 4. Values that aren't exactly halfway between two integers are rounded to the nearest whole integer. Calculation-driven rounding supports these scenarios: - Tax engine rounding - Pricing, discounts, and promotions - Exchanges and returns - **Cash rounding (tender-based rounding):** Rounds the amount collected or refunded in cash to the nearest required increment depending on the currency. - **Currency specific (zero decimal) rounding:** Regardless of how the customer paid (cash, credit card, debit card) the final total rounds to the nearest whole integer. This rounding is common for zero decimal currencies like the Japan Yen or Korean Won. To configure the number of decimal places supported by your currency and cash rounding, see [Configure Currency Rounding for POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_cash_rounding_in_retail_pos.htm&language=en_US&type=5#rt_pos_checkout_cash_rounding_configure). ## Supported Regions for Cash Rounding This table lists the countries where Salesforce POS applies mandatory cash rounding, along with the corresponding rounding factors.
Supported regions rounding factor example
Australia, Canada, Eurozone, Switzerland, United States Nearest 5 in a two-decimal environment
  • 20.01 => 20.00

  • 20.03 => 20.05

  • 20.07 => 20.05

  • 20.08 => 20.10

Sweden Nearest whole in a two-decimal environment
  • 20.12 => 20.00

  • 20.66 => 21.00

South Korea Nearest 10 in a zero-decimal environment
  • 11 => 10

  • 14 => 10

  • 15 => 20

  • 18 => 20

Hong Kong Nearest 10 in a two-decimal environment
  • 20.02 => 20.00

  • 20.04 => 20.00

  • 20.05 => 20.10

  • 20.09 => 20.10

## Configure Currency Rounding for POS Configure currency rounding in Salesforce POS to align transaction amounts with standard currency decimal places. In countries that require cash rounding, such as Canada, POS applies cash rounding even if you disable cash rounding. 1. Enable cash rounding. 1. In CMS, go to **Store Management** | **Store Settings** | **Transaction**. 2. Enable the flag, **Cash Rounding for Cash Related Transactions**. 3. Save your changes. 2. Configure decimal places. This setting is required to configure the number of decimals supported by currency (for example, the US supports two decimals in $10.45, while KOR supports zero decimals in W345). The default value is two decimals. 1. In CMS, go to **Store Management** | **Store Settings** | **System**. 2. Configure decimal places at Number of Decimals Supported by Currency. 3. Save your changes. ## POS Cash Rounding Behavior for Sales, Returns, and Exchanges Salesforce POS automatically applies cash rounding during sales and returns when the payment or refund tender is cash in a currency that requires cash rounding. For all other currencies, you can optionally turn on cash rounding. For multitender sales, the associate rounds the cash portion to the nearest increment as required. With exchanges, the prerounding amount from the original sale carries over as a credit on the new sale. ### Sale and Return Transactions During sales, POS applies the rounding automatically to cash payments. For multitender sales (for example, a sale where a customer pays with a credit card and cash), the associate rounds the cash portion to the nearest increment as required by the applicable rounding rule. The associate can view the cash-rounded amount in the POS when specifying the cash payment amount for a sale, whether the transaction is cash-only or multitender. During return transactions, POS applies the rounding automatically if the refund tender is cash. Associates can issue return refunds to the original payment method or a configured alternate tender. See Returns Policy Configuration. To understand these types of returns and how cash rounding processes, consider these examples. When an associate selects the refund method for returns, the cash amount rounded in each option is displayed. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Consider a multitender sale, where the order total is $40.03, consisting of $20.02 assigned to a credit card tender and $20.01 assigned to a cash tender. After rounding $20.01 to $20.00, the order total becomes $40.02 with $0.01 of cash rounded. Now, consider a return for that same order. If refunding to the original payment methods, $20.02 is refunded to the credit card and $20.00 (rounded down from $20.01) is refunded to the customer in cash. If returning entirely to cash (assuming your policy permits this type of return), then $40.05 (rounded up from the sale order total of $40.03) is refunded to the customer. ### Reporting The [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&language=en_US&type=5#rt_cms_reports_electronic_journal_overview) includes acolumn labeled “Penny Rounding” that shows the amount of cash rounded for a given transaction. ### Cash Rounding Behavior Assume all references to rounding indicate that the amount is rounded to the nearest monetary increment per regional requirements. For example: round 50.94 up to 50.95and round 10.11 down to 10.10. In all exchanges, the prerounding amount from the original sale of items carries over as a credit on the new sale. The POS calculates the absolute difference between the prerounding amount and the new sale total. This table shows cash rounding scenarios for sales transactions. Sales | Payment type | credit card amount | cash amount | | --- | --- | --- | | Multitender | No rounding: charge entered amount | Rounded | | Cash | None | Rounded | | Credit card | No rounding: charge entered amount | None | Returns | Original Payment type | return to | existing | | --- | --- | --- | | Cash | Cash | Rounded | | Cash | Gift Card | Not rounded | | Cash | Gift Card (unreferenced) | Not Rounded |
Exchanges
Scenario Example result
If the new purchase items cost less than the cost before rounding, the remaining is returned to the customer (with cash-applicable rounding as described in the Returns table).
  • Prerounding amount from original sale = $50
  • New sale total = $40
  • Absolute difference = |$50 - $40| = $10
Because the new purchase items cost less than the prerounding cost of the returned items, the remainder ($10) is returned to the customer.
If the new purchase items cost more than the prerounding cost of the returned items, the remainder is collected from the customer (with cash-applicable rounding as described in the Sales table).
  • Prerounding amount from original sale = $60
  • New sale total = $80
  • Absolute difference = |$60 - $80| = $20
Because the new purchase items cost more than the prerounding cost of the returned items, the remainder ($20) is collected from the customer.
If the new purchase items cost the same as the prerounding cost of the returned items, then no payment is required.
  • Prerounding amount from original sale = $30
  • New sale total = $30
  • Absolute difference = |$30 - $30| = $0
Because the new purchase items cost the same as the prerounding cost of the returned items, no payment is required.
# Custom B2C Commerce Storefront Data Integration You can pass custom data on certain B2C Commerce objects to Order Management by adding custom attributes to objects in B2C Commerce and matching custom fields to the corresponding objects in Order Management. When an attribute ID and field name match, and the data types also match, the values are included in the created Order Management records. If you also create a matching field on the corresponding summary object, Order Management includes the custom data when it creates a summary record. Only the B2C Commerce attribute ID and the Order Management field name at the API level are compared. UI labels aren’t considered. If order data includes a custom attribute value but the corresponding Salesforce object has no matching custom field, the attribute is ignored. If a custom field exists in Salesforce and order data doesn’t include a matching custom attribute value, the field is ignored. Also consider datatype compatibility between your storefront and Salesforce. All text values in order data that exceed the size of the corresponding field in Salesforce by three characters less than the datatype size limit and appends three periods (...). For example, if order data includes the value `Albuquerque` for a custom field with a maximum length of 10 characters, the value is stored as `Albuque...` in Salesforce. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important If a custom field in Salesforce is required, and it corresponds to a custom storefront attribute, order data must include a value for that attribute. Otherwise, Order Management can’t create the corresponding Salesforce record and an error occurs. At the API level, Salesforce custom field names always end in `__c`. Don’t include `__c` in the names of the matching attributes on your storefront objects. However, if you include a custom namespace in a custom field name, also include it in the name of the matching storefront object attribute. For example, if the API name of your custom field in Salesforce is `mynamespace_FieldName__c`, name your matching storefront object attribute mynamespace\_FieldName. Limit your custom field names to 40 characters (37 plus \_\_c). You can use matching custom attributes and fields on these objects. We don’t support custom object mapping or custom object lookup. If you try to map a custom attribute with a custom object lookup, the mapping fails. | B2C Commerce | Salesforce Order Management | | --- | --- | | Gift Certificate Line Item, Order Line Item, and Shipping Line Item | OrderItem and OrderItemSummary | | Order | Order and Order Summary | | Order Payment Instrument and Payment Transaction | AlternativePaymentMethod, CardPaymentMethod, DigitalWallet, Payment, PaymentAuthorization, and PaymentGatewayLog | | Shipment | OrderDeliveryGroup and OrderDeliveryGroupSummary | | Buyer Address on Order | Account (including PersonAccount) and Contact | #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Custom Object Import/Export Page Displays Correctly The Custom Object Import/Export page displays as expected. Previously, if there were custom object import/export records that had been triggered from the same Business Manager module, a Technical Error page displayed. This fix addresses a Release 20.1 regression issue. # Custom Weighted Routing Rules A custom weighted routing rule provides a greatly expanded level of freedom when it comes to creating a rule. You can create a rule based on any standard or custom attribute available on Order Management objects. An attribute’s value or existance creates the condition for your rule, and the score and weight of each attribute and rule determine which locations get selected. Scores and Weights A weight is assigned to a rule. A score is assigned to a location. There are three ways scores are calculated. - Scores can be static, which means if a location matches it, it’s awarded the full score. - Scores can be linear, which means the higher a location’s value is for a field, the higher it scores. - Scores can be inverse linear, which means the lower a location’s value is for a field, the higher it scores. Each rule’s weight is divided by the sum of the rule weights, so that each rule has a percent value and all percent values add up to 100%. The score of each location is multiplied by its rule’s weight percentage and the location with the highest value is selected. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_example.png) Example For example, a rule group has three weighted rules: - Cost of Processing - Quantity on Hand - State The weights and scores of each of these rules are as follows: - Cost of Processing has a weight of 2,000 with inverse linear scoring. The score ranges from 0 to 100, where 0 is awarded to any location that costs more than 25 dollars to process an item and 100 is awarded to any location that’s free to process. The scores for numbers in between are prorated so that the cheaper the processing, the higher the score. - LosAngelesLocation has a score of 75 - SeattleLocation has a score of 50 - SanFranciscoLocation has a score of 45 - Quantity on Hand has a weight of 1,000 with linear scoring. The score ranges from 0 to 200, where a 0 is awarded to any location with less than 100 quantity on hand and 200 is awarded to any location with more than 500 quantity on hand. The scores for numbers in between are prorated so that the higher the quantity, the higher the score. - LosAngelesLocation has a score of 55 - SeattleLocation has a score of 60 - SanFranciscoLocation has a score of 89 - State has a weight of 500 with static scoring. The condition awards 50 points to any states that are not California, due to an issue with shipping within the state. - LosAngelesLocation has a score of 0 - SeattleLocation has a score of 50 - SanFranciscoLocation has a score of 0 The percents are calculated by adding the weights (3,500) and then dividing each weight by that sum. These numbers are rounded. - Cost of processing has a percent of 57% - Quantity on hand has a percent of 29% - State has a percent of 14% Now the scores are calculated against each percent. - Cost of Processing - LosAngelesLocation: 75 multiplied by 57% equals 42.75 - SeattleLocation: 50 multiplied by 57% equals 28.5 - SanFranciscoLocation: 45 multiplied by 57% equals 25.65 - Quantity on Hand - LosAngelesLocation: 55 multiplied by 29% equals 15.95 - SeattleLocation: 60 multiplied by 29% equals 17.40 - SanFranciscoLocation: 89 multiplied by 29% equals 25.81 - State - LosAngelesLocation: 0 multiplied by 14% equals 0 - SeattleLocation: 50 multiplied by 14% equals 7 - SanFranciscoLocation: 0 multiplied by 14% equals 0 Finally, the scores are added up. - LosAngelesLocation: 42.75+15.95+0= 58.70 - SeattleLocation: 28.5+17.40+7=52.90 - SanFranciscoLocation: 25.65+25.81+0=51.46 LosAngelesLocation is selected because it has the highest total score. The processing cost rule was weighted so highly that even though it had less quantity on hand and was in the state of California, it won out over the other two locations. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_example.png) Example Here is the same example in table form, to illustrate how the scores are calculated. Cost of Processing | Location | Score | Rule Weight | Score\*Weight |   | | --- | --- | --- | --- | --- | | LosAngeles | 75 | 57% | 42.75 |   | | Seattle | 50 | 57% | 28.5 |   | | SanFrancisco | 45 | 57% | 25.65 |   | Quantity on Hand | Location | Score | Rule Weight | Score\*Weight |   | | --- | --- | --- | --- | --- | | LosAngeles | 55 | 29% | 15.95 |   | | Seattle | 60 | 29% | 17.40 |   | | SanFrancisco | 89 | 29% | 25.81 |   | State | Location | Score | Rule Weight | Score\*Weight |   | | --- | --- | --- | --- | --- | | LosAngeles | 0 | 14% | 0 |   | | Seattle | 50 | 14% | 7 |   | | SanFrancisco | 0 | 14% | 0 |   | | Location | Cost of Processing Weighted Score | Quantity on Hand Weighted Score | State Weighted Score | Total Score | | --- | --- | --- | --- | --- | | LosAngeles | 42.75 | 15.95 | 0 | 58.70 | | Seattle | 28.5 | 17.40 | 7 | 52.90 | | SanFrancisco | 25.65 | 25.81 | 0 | 51.46 | #### See Also - [Create a Custom Routing Rule](https://help.salesforce.com/s/articleView?id=commerce.om_new_custom_rule.htm&release=264.0.0&type=5 "Custom rules modify routing by selecting locations based on any standard or custom attribute available on Order Management objects. Custom rules can filter out locations or select an ideal location by calculating condition-based scores.") # Customer Search Find customers as well as add new ones in the Point of Sale (POS) app. ## Prerequisites - Modern POS App Build: 5.1.0 and later - Platform Support: iPhone & iPad ## Configure Customer Search in Point of Sale CMS Turn on the Customer Search feature and add additional search filters. ### Set a Deep Link In order to show the **Custom Search** screen in the app, you'll need to add a deep link in your app configuration. The deep link can be added in a layout or a Hamburger Menu. 1. Edit a layout or a Hamburger Menu. 2. Add the deep link under **Clienteling > Store CRM**. 3. Save your changes. ![The Store CRM section of the Select a Deep Link screen in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_manage_search_deep_link_cms.png) You can add a Customer Search icon in your app where after it's tapped, it shows the search form. This is done in your app configuration by going to **Modules > Clienteling** and turning on **Show Clienteling Info**. ### Turn on the Customer Search Flag Though this isn't a requirement to use the Custom Search feature, you can enhance it with **Enable Search As You Type For Customer Lookups**. With this setting, search results can automatically show as you're typing in the search field rather than having to manually tap **Search**. 1. In CMS, go to **Apps > All**. 2. Edit the app configuration you want to have this enhancement‌ turned on. 3. Go to **UI > Store Associate**. 4. Turn on **Enable Search As You Type For Customer Lookups**. 5. Save your changes. ![The Enable Search as You Type For Customer Lookups flag turned on in the Store Associates section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_manage_enable_cust_search.png) ### Default Layout There are two types of **Customer Search** layouts, default and customized. There's no configuration needed to create a default layout. By setting a deep link, tapping on it in the app automatically shows the default layout. Additionally, if **Disable Clienteling Search in Checkout** is turned off, the checkout process requires customers to sign into the app or proceed as a guest before proceeding further. ![The default customer serch layout as it appears in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_manage_default_layout.png) If the flag is turned on, store workers can finish the checkout process without signing in as a customer or going with them as a guest. It's important to note that enabling the flag also removes the clienteling icon. This means you can't search or sign in a customer without a deep link in CMS. ![The POS app with the clienteling option unavailable.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_manage_clienteling_off.png) ### Customized Layout Use a custom layout to have more search filters for a customer than name, phone number, and email. These search filters include customer ID, ZIP code, city, or country code. To customize a layout: 1. Go to **Layouts > Layout Pages > Add From Template > Customer Search**. 2. Customize the layout to fit your business needs. By default, text fields in customer layouts accept only ASCII characters. To allow accented and locale-specific characters, such as Ü, go to **Apps**, edit an app configuration, and turn on **Modules > Settings > Enable Emoji Input**. 3. To add a button that allows store associates to create new customers, add a button to the layout and assign **Signup** as the button action. When a store associate taps this button, the app automatically presents the layout configured in **Sign Up Layout (V2)** in your app configuration settings. 4. Assign the layout to your app configuration. 1. In CMS, go to **Apps** and edit a configuration. 2. Go to **Modules > Clienteling > Customer Search Layout**. 3. Select your layout from the list and save your changes. Point of Sale added the ability to skip a customer login in any customized layout, similar to the "**Continue as Guest**" CTA button on the default layout, through the use of a button that can be configured by going to **Cell Content > Form Element**. This button can be used elsewhere other than the **Customer Search** screen, but it acts as a back button (that is, it sends the user to the previous screen). ![The Skip Customer Login option configured in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_manage_skip_customer_login.png) This action is only supported for 8.9.1 builds and later. ## Perform Customer Search in the POS App See how to use the Customer Search function in the Point of Sale (POS) app. ### Customer Search Screen The store associate is taken to the Customer Search screen after they've tapped on the deep link you've previously set up. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip The cover image where the search results appear can be changed in CMS in your app settings by going to **Modules > Clienteling > Clienteling Search Cover Image**. You can use the Media Library to upload and change the image. ### Add a New Customer The store associate can add a new customer. To create a customer, tap “**New customer**.” The **Sign-Up** screen shows where they can enter the customer's information and register them. ![The Sign Up screen on the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_manage_enter_customer_info.png) ### Search for a Customer Store associates can search for a customer by their first or last name, phone number, and email address. The order in which customers appear after a search is determined by the search algorithm within the CRM. The POS system submits the search parameters and then displays the results in the order they are received from the CRM. ![A client's name and email address that appear on the screen as the result of a search.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_manage_client_search_app.png) ### Customer Profile After a search is performed and the results appear on the screen, store associates can go to the customer’s 360° profile view by clicking on their name. For information on how the profile and the editable features it has, read [Clienteling 360° View of Customer](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_customer_360.htm&release=264.0.0&type=5 "Use Customer 360° to see all the information about a customer that the merchant handles. This includes customer information and their history with your brand, past orders, items saved in the cart, loyalty details, and more."). ## View Known Customer Search Issues Investigate possible issues with customer searches in the Point of Sale app (POS) uses an API through the backend. We don't currently collect detailed customer sign-up data within the POS app. This includes how often customers look up their accounts. However, as a workaround, by using an API through the Backend, we can make a call to the merchant's Customer Relationship Management (CRM) system. This approach enables merchants to access comprehensive sign-up statistics through their server analytics. If you try to search for the same person over and over, the problem can be in the customer's CRM. # Customer Signups Report in Point of Sale Analyze customer signups, loyalty, and the ratio of guest checkouts to customer-linked checkouts. ### Required Editions
Available in:
The Customer Signups report in Point of Sale provides valuable insights into the performance of your clienteling and acquisition efforts. You have the option to group the report by stores to assess overall store performance, or by associate to evaluate individual performance. ## Accessing Report Access the report by going to **Reporting and Analytics > Customer Signups Report**. ## Filtering Report The report can be filtered by store IDs, associate IDs, and date range. Additionally, you can group the search results by store or associate. Also, the report can be sorted by columns, and the results can be downloaded in a CSV file. ## Grouping by Stores When the report is grouped by stores, it displays store-level aggregates in the report. This also the default setting on the landing page. Below is a table of the available columns in the report: | Column | Description | | --- | --- | | Store ID | Unique identifier of store. Note, this is only shown only when grouping results by "Store" | | Customer Profiles Created | Number of customer profiles created for the specified store. Note, this number the total count of successful calls of the customer creation API for a unique customer ID. | | Customer Profile Edits | Number of edits made on customer profiles for the specified store | | Loyalty Sign-ups | Number of loyalty sign-ups created for the specified store | | Collections Sent | Number of collections created and shared for the specified store | ## Grouping by Associate When the report is grouped by associates, it displays associate-level aggregates in the report. Below is a table of the available columns in the report:
Column Description
Associate ID Unique identifier of store associates. Note, this is only shown only when grouping results by "Associate"
Customer Profiles Created Number of customer profiles created for the specified associate. Note, this number the total count of successful calls of the customer creation API for a unique customer ID.
Customer Profile Edits Number of edits made on customer profiles for the specified associate
Loyalty Sign-ups Number of loyalty sign-ups created for the specified associate
Collections Sent Number of collections created and shared for the specified associate
Order Count

Number of orders completed for the specified associate

# Customize a Flow for Omnichannel Inventory You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. However, some service flows require customization to work with Omnichannel Inventory. This customization requires an Order Management Growth license. ### Required Editions
View supported editions.
If you don’t have an editable version of the flow yet, [copy a flow template](https://help.salesforce.com/s/articleView?id=commerce.om_flow_copy.htm&release=264.0.0&type=5 "Before you can activate or customize a flow, you need to clone the flow. Cloning creates an editable version that you can modify or activate out-of-the-box on your store. If you set up your store using the Commerce Setup Assistant, your flows are already cloned."). You can enable Omnichannel Inventory in the even exchange, exchange RMA, order on behalf of, and reship flows. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter flows, and select **Flows**. 3. Select the flow that you’re customizing. 4. In the flow, open the Manager tab. 5. If you’re customizing an even exchange, exchange RMA, or order on behalf of flow, find and set the applyOCI and useLocationGroups default values to true. 6. If you’re customizing a reship flow, find and set the applyOCI default to true. 7. Click **Save**. 8. If you’re ready to activate the flow, click **Activate**. #### See Also - [Customizing Order Management Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customizations.htm&release=264.0.0&type=5 "The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement.") # Customize a Payment Report You can customize a payment report type or create your own. A report type specifies the records and fields that the report uses. The report displays only the records that meet the criteria defined in the report type. ### Required Editions
View supported editions.
View and edit available report types from Setup. In the Quick Find box, enter Report Types, then select a payment report type to edit. You can also click **New Custom Report Type**. # Customize B2B Store Pricing with Apex Hooks To support unique pricing scenarios, add custom Apex logic to your pricing procedure plans. You can use Apex hooks to apply custom business logic that modifies the pricing context before or after your pricing procedure runs. Apex hooks are custom code that run at specific points in the pricing procedure plan. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. From Setup, in the Quick Find box, enter `Apex`, and select **Apex Classes**. 2. Select **New** to create an Apex class. 3. In the class editor, enter the class definition. See the sample classes for Apex hooks provided in this topic. 4. After you create your Apex class, add it as an Apex section in your procedure plan definition. From Setup, in the Quick Find box, enter `Procedure Plan Definitions`, and select **Procedure Plan Definitions**. 5. Select the procedure plan that you want to modify. 6. In the Procedure Plan Sections area, click **Add**. 7. Select **Standard** type. 8. Enter a name for your section. 9. For Section Type, select **Apex**. 10. In the section details, set Phases to **Pricing**, Resolution Type to **Default**, and select the Apex class you created. 11. Click **Save**. 12. If you added multiple sections, click **Manage Sections**. Drag the sections to set their exact execution order relative to your pricing procedure. ![Sample Classes for Apex Hooks](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Sample Classes for Apex Hooks Apex prehook: This example demonstrates an Apex prehook for attribute-driven pricing at the SalesTransactionItem node. ``` global class ApexDmlAttributePreHook implements RevSignaling.SignalingApexProcessor { public RevSignaling.TransactionResponse execute(RevSignaling.TransactionRequest request) { System.debug('Executing PREHOOK'); String contextId = request.ctxInstanceId; Context.IndustriesContext industriesContext = new Context.IndustriesContext(); // STEP 1 - Query SalesTransactionItem nodes Map inputQueryItem = new Map{ 'contextId' => contextId, 'tags' => new List{ 'SalesTransactionItem' } }; Map itemQueryOutput = industriesContext.queryTags(inputQueryItem); Map itemQueryResult = (Map) itemQueryOutput.get('queryResult'); List itemData = (List) itemQueryResult.get('SalesTransactionItem'); // STEP 2 - Build update list for items with ProductName = 'Home Office Starter' List> itemNodeUpdates = new List>(); for (Object itemObj : itemData) { Map itemNode = (Map) itemObj; Map tagMap = (Map) itemNode.get('tagValue'); List dataPath = (List) itemNode.get('dataPath'); String productName = null; if (tagMap != null && tagMap.containsKey('ProductName')) { productName = (String) ((Map) tagMap.get('ProductName')).get('tagValue'); } if (productName == 'Home Office Starter') { System.debug('Matched Home Office Starter item: ' + JSON.serialize(dataPath)); // Remove root contextId from dataPath dataPath.remove(0); itemNodeUpdates.add(new Map{ 'nodePath' => new Map{ 'dataPath' => dataPath }, 'attributes' => new List{ new Map{ 'attributeName' => 'ProductCustom__c', 'attributeValue' => 'DISCOUNTAPPLICABLE' } } }); } } // STEP 3 - Submit context update if (!itemNodeUpdates.isEmpty()) { Map updateInput = new Map{ 'contextId' => contextId, 'nodePathAndAttributes' => itemNodeUpdates }; System.debug('--- PREHOOK: SUBMITTING CONTEXT UPDATE ---'); System.debug(JSON.serializePretty(updateInput)); industriesContext.updateContextAttributes(updateInput); } RevSignaling.TransactionResponse response = new RevSignaling.TransactionResponse(); response.status = RevSignaling.TransactionStatus.SUCCESS; return response; } } ``` Apex posthook: This example demonstrates an Apex posthook to validate and selectively override pricing attributes. ``` global class ApexDmlListPricePostHook implements RevSignaling.SignalingApexProcessor { public RevSignaling.TransactionResponse execute(RevSignaling.TransactionRequest request) { System.debug('Executing POSTHOOK - Update ListPrice'); String contextId = request.ctxInstanceId; Context.IndustriesContext industriesContext = new Context.IndustriesContext(); // STEP 1 - Query SalesTransactionItem nodes Map inputQueryItem = new Map{ 'contextId' => contextId, 'tags' => new List{ 'SalesTransactionItem' } }; Map itemQueryOutput = industriesContext.queryTags(inputQueryItem); Map itemQueryResult = (Map) itemQueryOutput.get('queryResult'); List itemData = (List) itemQueryResult.get('SalesTransactionItem'); // STEP 2 - Build update list List> itemNodeUpdates = new List>(); for (Object itemObj : itemData) { Map itemNode = (Map) itemObj; List dataPath = (List) itemNode.get('dataPath'); // Remove root contextId as required by updateContextAttributes dataPath.remove(0); itemNodeUpdates.add(new Map{ 'nodePath' => new Map{ 'dataPath' => dataPath }, 'attributes' => new List{ new Map{ 'attributeName' => 'ListPrice', 'attributeValue' => 20.0 } } }); } // STEP 3 - Submit context update if (!itemNodeUpdates.isEmpty()) { Map updateInput = new Map{ 'contextId' => contextId, 'nodePathAndAttributes' => itemNodeUpdates }; System.debug('--- POSTHOOK: SUBMITTING CONTEXT UPDATE ---'); System.debug(JSON.serializePretty(updateInput)); industriesContext.updateContextAttributes(updateInput); } RevSignaling.TransactionResponse response = new RevSignaling.TransactionResponse(); response.status = RevSignaling.TransactionStatus.SUCCESS; return response; } } ``` #### See Also - [Pricing Procedure Plans for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricing_procedure_plans.htm&release=264.0.0&type=5 "Use procedure plans to customize how prices are calculated in your B2B store. A procedure plan is a framework that combines your pricing procedure with optional custom code (Apex hooks). The procedure plan defines the sequence that your custom logic and pricing procedure follow to calculate the final price.") - [Configure Pricing Procedure Plans for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_pricing_procedure_plans.htm&release=264.0.0&type=5 "Configure pricing procedure plans to customize how pricing is calculated in your B2B stores. Create a procedure plan from the default Commerce procedure plan template and then customize it with your own context definitions, pricing procedures, and Apex hooks.") # Customize Contract Resolution with Apex Hooks When multiple contracts apply to the same product and account, Salesforce selects a contract by matching the account, product, and product selling model, along with the contract currency and effective date. To resolve contracts using your own logic, add custom Apex logic to override the default resolution and select the contract for each product. ### Required Editions
View supported editions.
The hook runs when a new purchase is created or when a subscription is amended, renewed, or canceled. It applies the resolved contracts to the transaction. For subscription products, contract resolution using Apex hooks runs for each product and product selling model combination. Set the `runDefaultResolution` flag in your response to control how Salesforce resolves line items that your Apex logic doesn't resolve. When enabled, Salesforce uses the default resolution logic for the remaining line items. When disabled, Salesforce uses only the contracts returned by your Apex logic, and unresolved line items use the price book list price. For a contract to apply, it must be active, use the same currency as the transaction, and have a valid item price for the pricing date. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Salesforce doesn't validate the contracts that your Apex logic resolves. If your logic returns an inactive or expired contract, Salesforce doesn't reject it, but the price falls back to the price book list price. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example This sample shows the structure of a contract resolution hook. ``` // Override resolveContracts to tell Commerce which contract price applies to each cart line. // The framework calls this once per pricing request with the buyer's account and the lines // being priced; you return, per line, the ContractItemPrice that should be used. Downstream // pricing then reads the negotiated price from the contract records you selected here. // // This sample resolves contract prices directly from Salesforce ContractItemPrice records, but // you can adapt it to call an external contract system instead. The key rules it demonstrates: // - Effective-dated: only contract prices active on the request's effective date are eligible. // - Currency-aware: only prices in the request's currency are considered. // - Overlap handling: when a product has more than one eligible contract price, the row with // the latest StartDate wins, and CreatedDate breaks same-day ties. // // NOTE: resolveContracts and the default-resolution controls are available on API v264+. public override commercestorepricing.ContractResolutionResponse resolveContracts( commercestorepricing.ContractResolutionRequest request ) { commercestorepricing.ContractResolutionResponse response = request.newResponse(); // Controls what happens to lines this method does NOT resolve. With default resolution // enabled, any unresolved line falls back to standard Salesforce pricing (e.g. list price). // Call response.disableDefaultResolution() instead if this extension should be the sole // authority and unresolved lines must not be priced by the platform. response.enableDefaultResolution(); try { // Request context: the buyer account, the currency to price in, and the point in time the // contract must be active for. Fall back to "now" when the caller did not specify a date. String accountId = request.getAccountId(); String currencyIsoCode = request.getCurrencyIsoCode(); Datetime effectiveDate = (request.getEffectiveDate() == null) ? System.now() : request.getEffectiveDate(); // Each request item represents one cart line to resolve a contract for. List items = request.getRequestItems(); if (items == null || items.isEmpty() || String.isBlank(accountId)) { // Nothing to resolve (or no account) - return early and let default resolution handle it. return response; } // Gather the product Ids up front so we can resolve the whole request in a single SOQL query // rather than querying per line. This keeps the extension within Apex governor limits even // for large carts (bulkification). Set productIds = new Set(); for (commercestorepricing.ContractPricingRequestItem item : items) { if (String.isNotBlank(item.getProductId())) { productIds.add(item.getProductId()); } } if (productIds.isEmpty()) { return response; } // Query every eligible contract price for these products in one shot, then pick a winner per // product below. Notes on the query: // - Contract.AccountId = :accountId -> only this buyer's contracts. // - StartDate/EndDate bounds -> only contracts active on the effective date // (a null EndDate means open-ended / no expiry). // - CurrencyIsoCode = :currencyIsoCode-> only prices in the requested currency. // - WITH SYSTEM_MODE -> contract pricing lives in system-owned data the // storefront buyer typically cannot read directly, // so we query in system mode. Remove this if you // intend the query to respect the running user's // permissions. // - ORDER BY ItemId, StartDate DESC, CreatedDate DESC -> groups rows by product and puts // the winning row (latest start, newest tie-break) // first within each product group. // Key by Id (not String): the Apex Id type normalizes 15- and 18-char ids on both put // and get, so a 15-char productId from one storefront surface (e.g. cart) still matches // the 18-char ItemId that SOQL always returns. A String-keyed map compares exact // characters and can miss, resolving PDP and cart differently for the same product. Map contractsByProduct = new Map(); for (ContractItemPrice cip : [ SELECT Id, ContractId, ItemId, ProductSellingModelId, Price, StartDate FROM ContractItemPrice WHERE Contract.AccountId = :accountId AND ItemId IN :productIds AND StartDate <= :effectiveDate AND (EndDate = null OR EndDate >= :effectiveDate) AND CurrencyIsoCode = :currencyIsoCode WITH SYSTEM_MODE ORDER BY ItemId, StartDate DESC, CreatedDate DESC ]) { // Because of the ORDER BY, the first row seen for each product is the winner; keep it and // ignore any later (older) rows for the same product. if (!contractsByProduct.containsKey(cip.ItemId)) { contractsByProduct.put(cip.ItemId, cip); } } // Report the resolved contract for each line back to the framework. putContractForLine tells // Commerce which ContractId + ContractItemPrice to apply for this product / selling model. // Lines with no matching contract are simply left unresolved and handled per the default // resolution setting chosen above. for (commercestorepricing.ContractPricingRequestItem item : items) { ContractItemPrice cip = contractsByProduct.get(item.getProductId()); if (cip != null) { response.putContractForLine( item.getProductId(), item.getPsmId(), cip.ContractId, cip.Id ); } } } catch (Exception e) { // Fail safe: swallow and log so a runtime error here does not break the whole pricing // request. Unresolved lines then follow the default resolution behavior. Replace this with // your own logging/alerting as appropriate. System.debug('resolveContracts failed, message: ' + e.getMessage() + ', stacktrace: ' + e.getStackTraceString()); } return response; } ``` ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_warning.png) Warning If you have custom `processPrice` or `processTransactionalPrice` implementations that don't call `super`, explicitly call `resolveContracts` from within those implementations. This requirement applies to both custom and default contract resolution. #### See Also - [Offer Contract-Based Pricing to a B2B Buyer](https://help.salesforce.com/s/articleView?id=commerce.comm_offer_contract_pricing_to_buyer.htm&release=264.0.0&type=5 "Create a contract to define negotiated prices for a specific buyer account. Contracts override standard price book prices, ensuring buyers see their negotiated prices across store pages.") - [Customize B2B Store Pricing with Apex Hooks](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_pricing_apex_hooks.htm&release=264.0.0&type=5 "To support unique pricing scenarios, add custom Apex logic to your pricing procedure plans. You can use Apex hooks to apply custom business logic that modifies the pricing context before or after your pricing procedure runs. Apex hooks are custom code that run at specific points in the pricing procedure plan.") - [Contract-Based Pricing](https://help.salesforce.com/s/articleView?id=ind.pricing_contract_based_pricing.htm&language=en_US) # Customize Layout Settings Explore settings to tailor your Point of Sale experience. Discover how to adjust accessibility, configure apps and layouts for different segments, and efficiently manage communication templates. Learn to streamline POS operations by copying special forms and setting up barcode scanning. Enhance the customer experience through countdown timers, customized receipts, engaging media, and optimized product and list page layouts. - **[Accessibility Settings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_accessibility.htm&release=264.0.0&type=5)** Point of Sale's Layout Editor helps ensure your app meets ADA compliance, enhancing accessibility with alternative text and a 75px by 75px touch target. This feature helps businesses serve all customers, including those with disabilities, by adhering to federal standards. - **[App Configuration and Layout Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_config_segment.htm&release=264.0.0&type=5)** Personalize Point of Sale apps with app configs and layout segmentations for a tailored user experience. App configuration segmentation runs at startup based on app version, while layout segmentation adjusts post-login according to user demographics, ensuring a more relevant and engaging interface. - **[Tips for Using the CMS Email and Print Template Editor](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_tinymce_tips.htm&release=264.0.0&type=5)** Discover essential tips and tricks for using TinyMCE in Point of Sale CMS to create efficient and visually appealing print and email templates. Learn how to optimize your content creation process and enhance user experience with practical techniques. - **[Copy Special Forms on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_form_copy.htm&release=264.0.0&type=5)** Add a copy button to your custom order layout in the POS app to quickly duplicate forms. Tapping the button creates a new form with all original input values, which can be edited and is automatically added to the cart. This feature streamlines order management for store associates, especially for similar items. - **[Set Up a Countdown Timer](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_timer.htm&release=264.0.0&type=5)** Add a Countdown Timer to any cell in the Point of Sale Layout Editor to visually track time until a future date. Customize the appearance and format to fit your design needs, ensuring users stay informed and engaged. - **[Customize Receipts Using Functions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_receipt_functions.htm&release=264.0.0&type=5)** Functions in Point of Sale receipt layouts dynamically display relevant information, improving clarity and reducing clutter. For instance, cash details are hidden for credit card payments, and employee discount info is omitted for non-employee sales, ensuring a cleaner, more user-friendly receipt. - **[Media Library](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_media_library.htm&release=264.0.0&type=5)** The Media Library allows you to upload images and videos or reference them using a URL, enabling seamless integration into the Modern POS UI for a visually engaging user experience. This feature enhances the layout editor, making it easy to create dynamic and appealing interfaces. - **[Insert a Video Using a URL](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_insert_video.htm&release=264.0.0&type=5)** The Point of Sale Media Library lets you seamlessly integrate externally hosted videos into your POS app layout, enhancing the user experience and providing dynamic content. This feature allows for easy updates and consistent branding across all retail touchpoints. - **[Set Up Layout Groups](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_layout_groups.htm&release=264.0.0&type=5)** Layout groups (aka Personalized Layouts) in Point of Sale enable you to tailor app experiences for different user segments, such as gender and loyalty tier, ensuring a more relevant and engaging experience for each customer. By customizing layouts, you can enhance user satisfaction and drive higher engagement and loyalty. - **[Layout Image Best Practices](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_image_specs.htm&release=264.0.0&type=5)** Learn about the recommended specifications for images for use in Point of Sale layouts. - **[Set Up Product Display Page Mappings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_pdp_mappings.htm&release=264.0.0&type=5)** The Point of Sale Product Display Page (PDP) mappings allow retailers to customize product display pages for specific contexts, such as off-brands, enhancing user experience by showing relevant layouts. Retailers can tailor the PDP to meet their specific needs, improving engagement and conversion rates. - **[Set Up a Product List Page Search Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_product_search.htm&release=264.0.0&type=5)** The look and feel of the Point of Sale search results screen (aka PLP) is controlled by app config settings and the Search Layout associated with the app config. - **[Set Up Scanning and Parsing Barcodes on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_barcode_scan.htm&release=264.0.0&type=5)** Point of Sale's barcode scanning feature on the POS app lets you quickly input customer data, such as customer IDs, using the iPad camera or an external scanner. By creating a parsing rule in CMS, you can extract and display only the necessary information, streamlining the checkout process and enhancing customer service. - **[Product Image Specifications](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_image_specs_products.htm&release=264.0.0&type=5)** Optimize image specifications for Point of Sale product search and display pages to enhance user experience and ensure visual consistency. Clear guidelines for image size, format, and resolution improve product visibility and customer engagement. # Customize Messages in Commerce Messaging Use the provided message templates to customize your messages. You can also update the message templates with your store logo and colors. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) For a list of available messages, see [Available Messages in Commerce Messaging](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging_messages.htm&type=5&language=en_US). 1. In the navigation sidebar, select **Settings** | **Messaging**. 2. Within a message template, click **Edit**. Content Builder opens the message template. 3. Customize and style your message using the components and their attributes. 4. If you’re using a Pay Now store, remove the View Order Status button from the template because it doesn’t work in the order confirmation email. 5. Click **Save**. 6. Click **Back** to return to the Messaging workspace. #### See Also - [Manage Customer Messages for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging.htm&release=264.0.0&type=5 "Use the Commerce Messaging workspace to manage and tailor customer messages, such as order confirmations and welcome emails.") - [_Trailhead_: The Combined Power of Marketing Cloud Next and Agentforce Commerce](https://trailhead.salesforce.com/content/learn/modules/the-combined-power-of-marketing-cloud-and-commerce-cloud) # Customize Navigation Bars in the POS App Use the Point of Sale (POS) app to customize the navigation bar’s display settings, tabs, and hamburger menu. - Hide Home Screen Tab Icon (enabled) - Hide Home Screen Tab Title (enabled) If the above settings are configured, icons display on the POS app. iPad ![The Hide Home Screen Tab Icon and Title turned on in the POS App on iPad.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_hide_home_screen_enabled_ipad.png) iPhone ![The Hide Home Screen Tab Icon and Title turned on in the POS App on iPhone.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_hide_home_screen_enabled_iphone.png) - Hide Home Screen Tab Icon (enabled) - Hide Home Screen Tab Title (disabled) If the above settings are configured, text will display. iPad ![The Hide Home Screen Tab Icon turned on and Title turned off in the POS App on iPad.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_hide_home_screen_tab_enabled_ipad.png) iPhone ![The Hide Home Screen Tab Icon turned on and Title turned off in the POS App on iPhone.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_hide_home_screen_tab_enabled_iphone.png) - Hide Home Screen Tab Icon (disabled) - Hide Home Screen Tab Title (enabled) If the above settings are configured, icons display. iPad ![The Hide Home Screen Tab Icon turned off and Title turned on in the POS App on iPad.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_hide_home_screen_title_ipad.png) iPhone ![The Hide Home Screen Tab Icon turned off and Title turned on in the POS App on iPhone.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_hide_home_screen_tab_title_phone.png) - Hide Home Screen Tab Icon (disabled) - Hide Home Screen Tab Title (disabled) If the above settings are configured, text and icons display. For iPads, text and icons are displayed next to each other while for iPhones, they are stacked. iPad ![The Hide Home Screen Tab Icon Title turned off in the POS App on iPad.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_hide_home_screen_disabled_ipad.png) iPhone ![The Hide Home Screen Tab Icon Title turned off in the POS App on iPhone.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_hide_home_screen_disabled_iphone.png) Show Logged In User on Top Bar (enabled) ![The POS app on an iPad with the Show Logged In User on Top Bar turned on.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_logged_in_user_top_bar_disabled.png) Show Logged In User on Top Bar (disabled) ![The POS app on an iPad with the Show Logged In User on Top Bar turned off.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_logged_in_user_top_bar_enabled.png) # Customize Payment Methods in Multiple Countries Using Payments Zones Use payments zones to specify which payment methods can be used by shoppers in specific countries. A default payments zone, set to all currencies and countries, is automatically created after you assign a checkout method to a merchant account. Who: This feature impacts organizations using Salesforce Payments. #### See Also - [Configuring a Payments Zone](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/salesforce_payments/b2c_configuring_payments-zones.html) # Customize Product Lists with Saved Filters for Faster Merchandising Accelerate product discovery and bulk updates with redesigned, metadata-driven product lists. Edit, save, and quickly switch between filter and column configurations to eliminate repetitive setup. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Merchant Tools** | **Site** | **Products and Catalogs** | **Product List**. ![Manage product lists.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/26_2/b2c_rn_26.2_product_list.png) #### See Also - [_Salesforce Help_: Product Lists for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_product_lists.htm&language=en_US) # Customize Promotions in Experience Builder Edit your store pages and components to customize how eligible customers see promotions. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Here are some ways that you can customize promotions in Experience Builder. - Highlight product- and order-level savings by modifying the Cart and Promotions components on the Cart page. - Add a Coupons component to let customers apply manual promotions to their cart. - Show a promotion subtotal in the Cart Summary component. - (D2C Commerce only) Change the promotional pricing text color and choose when to combine all promotions into a total percentage on a Product Card component in a Search, Category, or Product page. - Add the Approaching Discounts component to the Cart and other store pages to alert customers that their cart amount is approaching a discount. - To change the name of a non-purchasable or $0.00 SKU product used in a bonus product promotion, edit the Unavailable Price Label in the Product Card component. For example, label the bonus product Gift, Free, or Bonus. #### See Also - [Checkout Promotion Processing](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b__b2b-comm-choose-checkout-promotions-new.html) # Customize Receipts Using Functions Functions in Point of Sale receipt layouts dynamically display relevant information, improving clarity and reducing clutter. For instance, cash details are hidden for credit card payments, and employee discount info is omitted for non-employee sales, ensuring a cleaner, more user-friendly receipt.
Function Description Example
=IF(expression,TrueOutput, FalseOutput) If the expression is true, TrueOutput will be displayed otherwise FalseOutput will be displayed. Only "=" will be honored in the expression. =IF(:ps_p_fulfillment_type=Online,(S),(I))
=DATEFORMAT(TimestampPSTag, DateFormat)

Timestamp PS Tags can configured to display a custom date format.

Note
Note The date format can have a maximum of 75 characters.

Supported: Modern POS >= 8.1.1

To display the time with minute precision (e.g., "08/28/2024 10:01 AM") use the formula:

=DATEFORMAT(:ps_order_time, MM/dd/yyyy hh:mm a)

To display the time with second precision (e.g., "08/28/2024 10:01:38 AM"), use the formula:

=DATEFORMAT(:ps_order_time,MM/dd/yyyy hh:mm:ss a)

## Notes - All content will be shown on the receipt as visibility of rows and cells cannot be toggled. - There can only be one function per cell, functions cannot be chained together, i.e., `=IF(=DATEFORMAT(tag,format) == time, A, B)` - Functions can only contain one PS tag at a time. - Functions MUST be the only configuration for a given cell. They can not be mixed with text. - If functions are not formatted correctly, the receipts will display an incorrect output or the raw input function. ## Functions For Truncations Starting in POS version 9.2.1, when the `=IF` function returns an empty string, the receipt line will be truncated, thus removing the empty row where the `=IF` function result would have been. As of 9.2.1 this only applies to the Payment Tender receipt component. For example, take the functions: 1. \=IF(:ps\_payment\_tender\_type=Gift Card,:ps\_gc\_tender\_balance,) 2. \=IF(:ps\_payment\_tender\_type=Cash,:ps\_cash\_tendered\_amount,) ![Example functions for determining the payment details to display on a receipt.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_receipts_tender_functions.png) If an order is paid with cash: - In the first function - The PS Tag, `:ps_payment_tender_type` in the expression `:ps_payment_tender_type=Gift Card` will be replaced with “Cash”. - As “Cash” does not equal “Gift Card” we will return the false output. False output is “” and since it is an empty string then the receipt line will be truncated and an empty space will not be rendered on the receipt. - In the second function - The PS Tag, `:ps_payment_tender_type` in the expression `:ps_payment_tender_type=Cash` will be replaced with “Cash”. - As “Cash” does equal “Cash” we will return the true output. To summarize, the configuration of the PS tags and functions determines the outcome. As the order was placed using cash as the payment method, the function `=IF(:ps_payment_tender_type=Gift Card,:ps_gc_tender_balance,)` yields a false output. On the other hand, the function `=IF(:ps_payment_tender_type=Cash,:ps_cash_tendered_amount,)` generates a true output. The following receipt example shows the gift card details are omitted and instead displays the relevant cash information, ensuring that no empty space is left on the receipt. ![Example receipt displaying details for a cash payment.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_receipts_tender_functions_result.png) ## Language and Functions When operating in a non-English language, ensure that conditional selections are adjusted to match the language of the region. For instance, update "Gift Card" to "Carte cadeau" for the IF statement to align correctly. - France - `=IF(:ps_payment_tender_type=Carte cadeau,Solde de carte cadeau,)` or - `=IF(:ps_payment_tender_type=Carte cadeau,:ps_gc_tender_balance,)` - Mexico - `=IF(:ps_payment_tender_type=Efectivo,Monto Pagado en Efectivo,)` or - `=IF(:ps_payment_tender_type=Efectivo,:ps_cash_tendered_amount,)` ## Gift Card Balance & Serial Display for Gift Card Products To display the Gift Card Balance & Serial Number for Gift Card Products only, use these functions: - Gift Card Balance `=IF(:ps_p_id=,:ps_p_gc_balance,)` - Gift Card Serial Number `=IF(:ps_p_id=,:ps_p_serial_num,)` ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Ensure that 'GC Product ID' corresponds to the product ID configured in the CMS (**Integrations** > **Payment Gateway (Adyen)** > **Gift Card Settings** > **Gift Card SKU**). For example, if the configured product ID is "GIFT CARD," the function should be: `=IF(:ps_p_id=GIFT CARD,:ps_p_gc_balance,)` ![Example functions for modifying product details on a receipt.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_receipts_product_functions.png) #### See Also - [_Salesforce Help:_ Receipt Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_receipt.htm&release=264.0.0&type=5 "Customize Point of Sale receipts to enhance customer experiences. Configure store-level print receipts and use templates for order returns. The Receipt Layout editor allows you to tailor headers, footers, and item details. Understand common challenges and best practices for clear and readable receipts, including managing returns and exchanges.") # Customize Routing Logic with Rule Groups Control Order Management routing by creating and publishing groups of templated or custom rules. ### Required Editions
View supported editions.
Before beginning this task, make sure the [Order Fulfillment Setup section](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5 "The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS).") is enabled. Rules control how routing locations and routes are selected. There are two types of rules. A filter rule excludes locations. A weighted rule is multiplied against the scores of the locations that fit the rule's conditions. These scores are considered against the other weighted rules in the group. The routing logic selects the highest scored locations that weren’t filtered out. Order Management has several templated rules, which can modify routing based on inventory availability, location proximity, markdown avoidance, overstock, and split optimization. [Custom rules](https://help.salesforce.com/s/articleView?id=commerce.om_new_custom_rule.htm&release=264.0.0&type=5 "Custom rules modify routing by selecting locations based on any standard or custom attribute available on Order Management objects. Custom rules can filter out locations or select an ideal location by calculating condition-based scores.") can filter out locations or select an ideal location by calculating condition-based scores. You can create a custom rule only after you’ve created a rule group. After you add rules to a group, you can configure start dates, end dates, and rule weights, where applicable. To prevent out-of-stock errors, all rule groups automatically contain the inventory availability rule. You can have up to 20 active rule groups at one time. Each rule group can have up to 10 rules within them, and rules can have up to 15 conditions per rule. To increase these limits, contact Salesforce Customer Support. 1. In the Rule Management tab of Order Fulfillment Setup, click **New Rule Group**. 2. Enter a name, external reference, and description. 3. Select rules. You can modify these rules individually after you finish creating the group. To add a markdown avoidance rule, first [create a markdown avoidance rule](https://help.salesforce.com/s/articleView?id=commerce.om_create_markdown_avoidance.htm&release=264.0.0&type=5 "A markdown avoidance reduces the risk of products selling at a discounted price by shipping products from locations at risk of future discounts. To implement a markdown avoidance, create a markdown avoidance rule in the Markdown Avoidance tab, sync it, and then add it to a rule group.") in the Markdown Avoidance tab and sync it before adding it to a group. 4. Set the maximum number of locations orders can split to. If you turn off split optimization, Order Management doesn’t consider splits when routing orders. 5. Click **Save**. 6. Edit an individual rule. 1. Click the action menu for the rule and select **Edit**. 2. Edit the rule name, description, start and end date, and weight as needed. 3. Click **Save**. 7. When you’re ready to publish your group, click **Publish**. #### See Also - [Routing via Rules](https://help.salesforce.com/s/articleView?id=commerce.om_routing_rules_overview.htm&release=264.0.0&type=5 "Use rule groups to modify routing logic directly in the Order Management UI instead of using code or Salesforce Flow.") - [Create a Custom Routing Rule](https://help.salesforce.com/s/articleView?id=commerce.om_new_custom_rule.htm&release=264.0.0&type=5 "Custom rules modify routing by selecting locations based on any standard or custom attribute available on Order Management objects. Custom rules can filter out locations or select an ideal location by calculating condition-based scores.") - [Create a Markdown Avoidance Rule](https://help.salesforce.com/s/articleView?id=commerce.om_create_markdown_avoidance.htm&release=264.0.0&type=5 "A markdown avoidance reduces the risk of products selling at a discounted price by shipping products from locations at risk of future discounts. To implement a markdown avoidance, create a markdown avoidance rule in the Markdown Avoidance tab, sync it, and then add it to a rule group.") # Customize the Address Form Page in a Commerce Store As an admin, you can customize a store’s Address Form page for B2B stores using Experience Builder. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, go to the Address Form page. 4. To view the Address Form page properties, click the page. 5. Make your changes. If you select **Show all address types**, buyers and shoppers can add or edit their shipping and billing addresses. When deselected, buyers and shoppers can add or edit only their shipping address. For B2B stores, the option is selected by default. For D2C stores, the option is deselected by default. Make sure that the setting matches the Show Address Type setting in the Address List page. #### See Also - [Customize the Address List Page in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_address_list_page.htm&release=264.0.0&type=5 "As an admin, you can customize a store’s Address List page for B2B stores.") # Customize the Address List Page in a Commerce Store As an admin, you can customize a store’s Address List page for B2B stores. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, go to the Address List page. 4. To view the Address Form List properties, click the page. 5. Make your changes. By default, Show Address Type is set to Shipping and billing for D2C stores, and to Shipping for D2C stores. When you select shipping and billing, make sure that **Show all address types** is selected in the Address Form page. #### See Also - [Customize the Address Form Page in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_address_form_page.htm&release=264.0.0&type=5 "As an admin, you can customize a store’s Address Form page for B2B stores using Experience Builder.") # Customize the Clienteling Layout in Point of Sale Customize how clienteling displays in the POS app by configuring the layout through app config settings or by creating a custom clienteling profile layout. After you customize the layout, make clienteling accessible to store associates through the user icon or a deep link. ## Set Up Clienteling with the App Setting up clientling through the app pulls in a hard-coded screen to the app that you can customize in the app config settings. 1. Go to **Modules** | **Clienteling**. 2. Edit the settings shown. ![Clienteling app configuration settings](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_modules_settings.png) 3. Save the config and reload the app. ## Set Up Clienteling in the Profile Layout The clienteling profile layout is constructed with the Layout Editor, which allows for greater flexibility than the app view. However, the Editor doesn't support some features, such as messaging, add to black book, and preferences. 1. Go to **All Layouts**. 2. Select **Add From Template**. 3. Select **Clienteling Profile**, and select a font, then publish the layout. 4. Edit the app config. 5. Select the clienteling profile layout that you just created. 6. Save the config and reload the app. ## Expose Clienteling with the User Icon To expose clienteling in the store associate app, you can display the clientling user icon. 1. Edit the app config. 2. Enable **Show Clienteling Icon**. 3. Save the config and reload the app. ## Expose Clienteling Using a Profile Deep Link To expose clienteling in the store associate app, you can use a profile deep link from the hamburger or layout menu, use a Clienteling deep link to link to the clienteling functionality. If a customer is selected, the deep link launches the customer profile layout. Otherwise, it navigates to the customer search screen. # Customize the Omnichannel Inventory Console While the standard Omnichannel Inventory console is fully functional right away, you can customize it for your team. Add custom tabs and fields, modify page layouts and components, and assign the app to particular user profiles. ### Required Editions
View supported editions.
Configure console settings by using the App Manager in Setup. For example, update the console name, description, and branding and assign the app to the appropriate user profiles. You can also customize the console by modifying the standard components, tabs, and fields. To add, remove, or change the location of components on a page, create custom pages, and modify the contents of components use the Lightning App Builder in Setup. To add custom tabs and fields and modify page layouts use the Object Manager in Setup. #### See Also - [Omnichannel Inventory App](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_app.htm&release=264.0.0&type=5 "Use the Omnichannel Inventory app to view, add, and edit inventory SKU counts and manage locations, location groups, and location group assignments.") - [Extend Salesforce with Clicks, Not Code](https://help.salesforce.com/articleView?id=extend_click_intro.htm&language=en_US) # Customize the Order Management Console Modify settings in the Order Management Console to make it your own. Configure custom tabs and fields, and modify page layouts and components to make it easier for users to find the information that they want. ### Required Editions
View supported editions.
1. Configure console settings by using the App Manager in Setup. We recommend updating these settings. - Change the console name, description, and branding. - Add navigation items for the records that your teams access frequently. - Configure the utility bar to add items, such as quick text or macros. - Assign the app to the appropriate user profiles. 2. Modify the components, tabs, and fields as needed. - Add, remove, or change the location of components on a page, create custom pages, and modify the contents of components by using the Lightning App Builder in Setup. - Add custom tabs and fields, and modify page layouts by using the Object Manager in Setup. 3. To change the columns in the Ship To table on the Summary tab, edit the Order Product Summary Related list on the Order Deliver Group Summary page layout. #### See Also - [Get to Know the Order Management Console](https://help.salesforce.com/s/articleView?id=commerce.om_get_to_know_order_management_console.htm&release=264.0.0&type=5 "The Order Management Console is the first thing you see when you log in to Order Management. The Order Summary page is the primary workspace in the console.") - [View Records in the Order Management Console](https://help.salesforce.com/s/articleView?id=commerce.om_view_records_in_the_order_management_console.htm&release=264.0.0&type=5 "Your order records display in a list view in the Order Management Console. List views are a great way to sort, prioritize, and analyze the records that are most important to you.") - [Extend Salesforce with Clicks, Not Code](https://help.salesforce.com/articleView?id=extend_click_intro.htm&language=en_US) # Customize the Payment Section of Checkout in a Commerce Store After you set up your payment service provider, use Experience Builder to customize how you collect payment and billing details from your customers during checkout in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, select the **Checkout** page. 4. In the payment section of your layout, add or customize a payment component. If you don’t see a payment component in your layout or your page is blank, drag the components onto your page. See [Design the Checkout Page in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_edit_checkout_sections_for_a_b2c_store.htm&release=264.0.0&type=5 "Use a preset layout and customize its components, or design a layout using sections and components to guide customers through the checkout process in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page.") - If you have Salesforce Payments, use the Salesforce Payments component. In the component properties panel, enter a payment method set key, select whether to use manual capture, select whether to enable saved payments, and make other customizations as needed. If you have a B2B store, you can also choose to show a purchase order option. - If you have a third-party payment provider, use the Payment or Dual Payment component (B2B Commerce only). The Payment component includes a credit card option. The Dual Payment component includes both a credit card option and a purchase order option. - If you want your B2B store to accept only purchase orders, use the Purchase Order component. 5. (Optional) If you have Salesforce Payments and you want to provide digital wallet payment options, add the Express Checkout component. If your store uses Omnichannel Inventory or a third-party inventory service, then orders placed using express payment options fail. Express checkout payment options don’t support inventory checks. Express Checkout supports Apple Pay, Google Pay, PayPal, and Venmo. In the component properties panel, enter a payment method set key and make other customizations as needed. Express Checkout doesn’t support split shipping or subscriptions. 6. Add or customize the Billing Address component. The Payment component includes a Billing Address component by default. 7. (Optional) If you have Salesforce Payments, you can customize the Payment Processing page. If you offer a payment option that sends your customers to a third-party site during checkout, this page redirects them back to your store. Examples of third-party payment sites include Klarna, Afterpay, and Affirm. 8. Preview and publish your changes. #### See Also - [Salesforce Payments Setup](https://help.salesforce.com/s/articleView?id=commerce.payments_setup_intro.htm&language=en_US) - [Set Up Salesforce Payments for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.payments_add_merch_acct.htm&language=en_US) - [Customize the Payment Section of Checkout in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_customize_payments.htm&language=en_US) - [Design the Checkout Page in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_edit_checkout_sections_for_a_b2c_store.htm&release=264.0.0&type=5 "Use a preset layout and customize its components, or design a layout using sections and components to guide customers through the checkout process in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page.") # Customize the Profile Menu in a B2B Commerce Store In Experience Builder, you can define how you want your user profile menu to appear, including using company names and logos. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, in the store header, click the **Profile Menu** component. In B2B stores created with the Aura template, the component is called the Customizable User Profile Menu component. 4. From the Authenticated User Options dropdown, select **Edit Default User Profile Menu**. 5. Customize the user profile menu. - Select a menu item to edit its properties. - Drag menu items to reorder them. - To add a menu item, click **+Add Menu Item** and set its name, type, and other properties. - To delete a menu item, click the X next to its name. #### See Also - [Create a Buyer Manager Profile Menu for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_manager_user_profile_menu.htm&release=264.0.0&type=5 "You might not want buyers to have access to the same user profile menu items as your buyer managers. In Experience Builder, you can create a separate user profile menu for buyer managers and edit the default profile to apply just to buyers.") # Customize the Refreshed Commerce App In Summer ’24, Salesforce introduced a refreshed Commerce app with enhanced navigation and features designed to simplify online store management. If you've been using the Commerce Storefront Console app and have customized pages, you can add those custom pages to the refreshed app. You can also modify the navigation for the refreshed app. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. If you've been using the Commerce Storefront Console app and have customized the Commerce home, store home, or a record page, you can add those pages to the refreshed app. 1. From Setup, in the Quick Find box, enter Lightning App Builder, and then select Lightning App Builder. 2. Next to the customized page, click **Edit**. 3. Click **Activation**. 4. Choose **App Default** and click **Assign to Apps**. ![Activate page modal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_activate_page.png) 5. Select **CommerceV2** and click **Next**. ![Selecting commerce app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_select_app.png) 6. Click **Next**. 7. Repeat these steps for each record, store home, or commerce home page that you want to use in the refreshed app. 8. Exit the Lightning App Builder. 2. Make your customized store home or commerce home page visible in the refreshed app. This step isn’t required for customized record pages after completing the previous step. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter App Manager, and select **App Manager**. 3. Locate the row that has Commerce as the App Name and CommerceV2 as the Developer Name, and click **Edit** from the dropdown. ![App manager](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_app_manager.png) 4. Select **Navigation Items**. 5. Move the pages that you want to make visible from Available Items to Selected Items. The Stores (plural) item represents your customized store page. Store (singular) is the page that’s already in the refreshed app. ![Selected items in app settings](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_nav_items.png) 6. Save your changes and exit the Lightning App Builder. The pages that you selected now appear as tabs in the refreshed app. If you don’t see the tabs, log out and log in again. 3. (Optional) Modify the navigation for your refreshed app. These changes apply only to your own usage, and not to other users. 1. In the top right of the store home or any record page, click the pencil icon. 2. Reorder or add navigation items. See [Personalize the Navigation Bar in Lightning Experience](https://help.salesforce.com/s/articleView?id=xcloud.user_userdisplay_tabs_lex.htm&language=en_US). When you customize the navigation, the store context that you’re working in doesn’t persist between navigation tabs. For example, if you change stores in the Store tab and then go to the Products workspace, you must change the store there too. ![Commerce app navigation customization](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_edit_nav.png) #### See Also - [Activate Lightning Experience Record or Home Pages](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_customize_lex_pages_activate.htm&type=5&language=en_US) - [View and Edit Assigned Apps in Profiles](https://help.salesforce.com/s/articleView?id=https://help.salesforce.com/s/articleView?id=platform.users_profiles_assigning_apps.htm&type=5&language=en_US) # Customize the Shipping Section of Checkout in a Commerce Store After you set up your shipping calculation service, use Experience Builder to customize how you collect shipping details from your customers during checkout in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, select the **Checkout** page. If you don’t see any shipping components in your layout or your page is blank, drag the components onto your page. See [Design the Checkout Page in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_edit_checkout_sections_for_a_b2c_store.htm&release=264.0.0&type=5 "Use a preset layout and customize its components, or design a layout using sections and components to guide customers through the checkout process in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page.") 4. Click the **Shipping Address** component to customize it. 1. Select whether to show only the customer’s default shipping address. For this setting, if a registered customer has a saved shipping address set as their default, it’s preselected in checkout. Customers can choose to edit it or add an address. 2. Edit the address list settings as needed. 3. (Optional) To collect a phone number, in the address form settings, select **Show shipping phone number field**. (Optional) If you select **Require shipping phone number**, even customers with saved contact information can’t check out until they add a shipping phone number. When a country code is provided, the shipping phone number is formatted and validated according to that country's phone number standards. If no country code is provided, the shipping phone number is validated according to US phone number standards by default. To avoid validation errors, we recommend collecting a country code along with the shipping phone number. See [Add Billing and Shipping Addresses for Buyer Accounts for a B2B Store.](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_account_addresses.htm&language=en_US) 5. Click the **Shipping Method** component to customize it. This component pulls shipping options from your store’s shipping service. See [Set Up Shipping for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_native_shipping.htm&release=264.0.0&type=5 "Provide customers accurate shipping methods, including default free shipping, flat rates, and custom rates with the Salesforce native shipping service for your B2B store.. You can use the shipping service with custom checkout or managed checkout, but if you configure your store using custom checkout, you must add the shipping service manually. You can create custom shipping zones and turn off shipping if you don’t sell physical goods."). 6. If your store allows guest shopping, click the **Contact Information** component to customize it. This component is required if you’ve turned on guest access so you can collect name and contact information from guest users. See [Manage Guest Access to a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_config_guest_browsing.htm&release=264.0.0&type=5 "A guest is someone who isn’t logged in to your store as an authenticated customer. Depending on the level of access that you provide, guests can browse your store, add products to their cart, and place orders."). When registered users return to the checkout page, they only see their phone number and email address in the Contact Information section. 7. (Optional) Click the **Shipping Instructions** component to customize it. To let customers know the type of information to include, add placeholder text to the properties. 8. Preview and publish your changes. #### See Also - [Design the Checkout Page in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_edit_checkout_sections_for_a_b2c_store.htm&release=264.0.0&type=5 "Use a preset layout and customize its components, or design a layout using sections and components to guide customers through the checkout process in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page.") - [Commerce Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_store_components.htm&release=264.0.0&type=5 "Components are the building blocks of B2B stores. You can make a B2B template yours by dragging components onto store pages and customizing component properties.") # Customize the Split Shipping Page in a B2B Commerce Store After you enable shipping to multiple addresses, use Experience Builder to customize how you collect split shipment details from your customers on the Split Shipment page of a B2B store. You can customize split shipping only if your store uses custom checkout. You can’t use split shipping with managed checkout or with digital or subscription products. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before customizing split shipping, enable it for your store. See [Enable Shipping to Multiple Addresses for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_split_shipping_for_commerce_stores.htm&release=264.0.0&type=5 "Let customers ship items in one order to multiple addresses in a B2B store or a Pay Now site. At checkout, customers can split a single cart into multiple shipments. You can’t use split shipping with managed checkout or with digital or subscription products."). Split shipping doesn’t work with legacy checkout components. If you haven’t updated your Checkout page with the latest components, see [Set Up the Checkout Page](https://help.salesforce.com/s/articleView?id=commerce.comm_edit_checkout_sections_for_a_b2c_store.htm&release=264.0.0&type=5 "Use a preset layout and customize its components, or design a layout using sections and components to guide customers through the checkout process in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page."). 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, go to the Checkout page to customize the split shipping button. The button opens the Split Shipment page where customers can split the cart items and enter the delivery addresses. To change the button name, edit the Shipping Address component. If you don’t see the Ship to Multiple Addresses button in the Shipping Address component, refresh the page. If you still don’t see it, remove the Shipping Address component and then add it back to your page. For guest users, the Ship to Multiple Addresses button appears after the user enters an address. For registered users, the button is always shown because their default address is saved. 4. On the Split Shipment page, add the Split Shipment Layout component if it isn’t already added. This component contains the Split Shipping Header, Split Shipping Cart Item, and Cart Summary components. 5. Click the **Split Shipping Cart Item** component to customize it. 1. In the product details section, select what to show for each cart item. You can select only one option. If you want to show product variants, deselect **Show product image**. If you selected **Show SKU** but want to show product variants instead, deselect it and then deselect **Show product image** again. 2. (Optional) To collect a phone number, in the address form settings, select **Show shipping phone number**. (Optional) If you select **Require shipping phone number**, even customers with saved contact information can’t check out until they add a shipping phone number. 6. Preview and publish your changes. # Customize User Settings Control user access and permissions within the system. Add, modify, and remove user accounts, as well as assign roles and permissions to control access to specific features and data. Configure security settings, such as password policies and multi-factor authentication, to protect user accounts and data. - **[CMS User Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_user_management.htm&release=264.0.0&type=5)** Customize users in CMS to control access to reports, configurations, and other features within a company. - **[Multi-Language Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_multi_language_support.htm&release=264.0.0&type=5)** POS supports multiple languages in the same country, which benefits merchants in different locales across the globe. - **[Time Zone Preferences](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_time_zone_preferences.htm&release=264.0.0&type=5)** Select your time zone in your Point of Sale CMS user profile to view reports with dates and times in your local time. # Customize User-Agent Logging for CSRF Security Meet compliance requirements and strengthen security monitoring by customizing User-Agent logging strings during Cross-Site Request Forgery (CSRF) token validation. Previously, strings longer than 32 characters were truncated. Now, you can increase the number of characters to capture more detail. You can also turn off logging entirely or set the number of characters to less than 32 to balance storage efficiency with detail. **Where:** This change applies to B2C Commerce. **How:** To enable custom CSRF token user agent log truncation, contact Salesforce Customer Support. #### See Also - [_Salesforce Help_: CSRF Protection in Business Manager](https://help.salesforce.com/s/articleView?id=cc.b2c_csrf_protection_in_business_manager.htm&language=en_US) # Customize Your Search Index Rebuild Schedule Enhance your site’s search functionality by specifying on which days to rebuild your search indexes. Previously, you could schedule rebuilds only on a daily, weekly, or monthly basis. **How:** In Business Manager, select **Merchant Tools** | **Search** | **Search Index Rebuild Schedule**. Under Index Rebuild Schedule, choose which day of the week to rebuild the search index. # Customizing Navigation Bars on Your POS App Set up the navigation bar, hamburger menu, and tabs within the Point of Sale Point of Sale (POS) app. Control the tab display by selecting visibility options, such as always visible or visible to signed-in users only. Configure app settings like tab color, text color, and icon visibility to create a streamlined user experience. - **[Customize Navigation Bars in the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_custom_nav_bar_pos_app_flow.htm&release=264.0.0&type=5)** Use the Point of Sale (POS) app to customize the navigation bar’s display settings, tabs, and hamburger menu. ## Accessing and Editing Hamburger Menu For details on configuring a hamburger menu, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_hamburger_menu.htm&release=264.0.0&type=5 "Configure a hamburger menu in the POS app to access a wide range of features without cluttering the screen. This setup streamlines navigation, making it easier for users to find and use essential functions quickly."). ## Accessing & Editing Tabs 1. In CMS, go to **Apps > All**. 2. Edit a selected app configuration. 3. To add a new tab, select **\+ Tab**. 4. To delete a tab, select the red **X**. 5. To change the order of tabs, drag a tab. 6. Save your changes.![Point of Sale CMS with tabs in a different order than the default layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_custom_nav_bar_edit_tabs.png) ## Configure Tab Display Settings Configure the display of the tab. 1. Select a tab to open its **Tab Settings** toolbar on the right side of the screen. 2. Under iOS Icon, upload an image to show as the tab's icon. Images are 65px by 65px. 3. Under **Name**, enter the tab's display name for the POS app. 4. Under **Visibility**, select one of these options: 1. **'Always'**: The tab is always visible. 2. '**Signed-in**': Only signed-in users can see this tab. 3. '**Signed-out**': Only signed-out users can see this tab. 5. Under **Behavior**, set the tab's behavior by selecting one of the options: 1. **'Layout'**: displays a selected layout. 2. '**Layout Group**': displays a selected personalized layout. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_layout_groups.htm&release=264.0.0&type=5 "Layout groups (aka Personalized Layouts) in Point of Sale enable you to tailor app experiences for different user segments, such as gender and loyalty tier, ensuring a more relevant and engaging experience for each customer. By customizing layouts, you can enhance user satisfaction and drive higher engagement and loyalty.") 3. '**Deep Link**': displays a selected deep link. However, if the deep link fails, a fallback layout is displayed.![Point of Sale CMS with a customized Tab Display layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_config_custom_tab_settings.png) ## App Config Settings for Tabs | Setting | Description | | --- | --- | | Tab Color | Controls the background color of the tab. **Note:** This setting doesn't apply to iOS. For iOS, use **iOS Tint Color** to customize tab appearance. | | iOS Tint Color | Controls the color of the selected tab icon and other tinted UI elements on iOS. This is the recommended way to apply brand colors to tabs on iOS devices. | | Tab Text Color | Controls the text color of the tab | | Hide Title From Bottom Tab | Controls the visibility of the tab's text | | Hide Icon From Bottom Tab | Controls the visibility of the tab's icon | | Hide Tab Bar | Controls the visibility of all the tabs | ## App Config Settings for Navigation Bar | Setting | Description | | --- | --- | | Hide Navbar | Controls the visibility of the navigation bar | | Show Logged In User on Top Bar | Controls the visibility of the associate's login | | Store Locator Container | Controls the visibility of the store locator CTA on the navigation bar | | Search Type | Controls the visibility of the search icon on the navigation bar | | Checkout Type | Controls the visibility and behavior of the cart icon | # Customizing Order Management Service Flows The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement.
Flow Configuration
Cancel

Cancel All: Cancel all eligible items in an order.

Customize Product Selector Fields: Add fields such as name, SKU, or total to the product selector.

Enable Bulk Settings: Let CSRs service orders in bulk.

Process Product Bundles: Let CSRs process product bundles.

Set Up a Default Fee: Configure a fee for returns or cancellations.

Discount

Allow Discounts for Allocated Items: Make discounts available for allocated items.

Customize Product Selector Fields: Add fields such as name, SKU, or total to the product selector.

Enable Bulk Settings: Let CSRs service orders in bulk.

Enable Reason Text: Give CSRs an empty text field to provide a reason for the action that they’re taking.

Process Product Bundles: Let CSRs process product bundles.

Set Discount Tax Type: Configure how taxes are calculated for discounts based on your tax policy.

Even Exchange

Enable Inventory Checks: Reduce out-of-stock errors by showing the inventory of an item on the product detail page.

Enable Omnichannel Inventory: Some flows need additional support before Omnichannel Inventory can work.

Exchange RMA

Set Up a Default Fee: Configure a fee for returns or cancellations.

Enable Inventory Checks: Reduce out-of-stock errors by showing the inventory of an item on the product detail page.

Enable Omnichannel Inventory: Some flows need additional support before Omnichannel Inventory can work.

Enable Reason Text: Give CSRs an empty text field to provide a reason for the action that they’re taking.

Process Product Bundles: Let CSRs process product bundles.

Order on Behalf Of

Enable Inventory Checks: Reduce out-of-stock errors by showing the inventory of an item on the product detail page.

Enable Omnichannel Inventory: Some flows need additional support before Omnichannel Inventory can work.

Process Product Bundles: Let CSRs process product bundles.

Reship

Customize Product Selector Fields: Add fields such as name, SKU, or total to the product selector.

Enable Omnichannel Inventory: Some flows need additional support before Omnichannel Inventory can work.

Process Product Bundles: Let CSRs process product bundles.

Return Items

Allow Multiple Credit Types for Refunds: Configure what credit sources are available for refunds.

Customize Product Selector Fields: Add fields such as name, SKU, or total to the product selector.

Enable Bulk Settings: Let CSRs service orders in bulk.

Enable Reason Text: Give CSRs an empty text field to provide a reason for the action that they’re taking.

Process Product Bundles: Let CSRs process product bundles.

Set Up a Default Fee: Configure a fee for returns or cancellations.

Return Management Authorization (RMA)

Allow Multiple Credit Types for Refunds: Configure what credit sources are available for refunds.

Customize Product Selector Fields: Add fields such as name, SKU, or total to the product selector.

Enable Bulk Settings: Let CSRs service orders in bulk.

Enable Reason Text: Give CSRs an empty text field to provide a reason for the action that they’re taking.

Process Product Bundles: Let CSRs process product bundles.

Set Up a Default Fee: Configure a fee for returns or cancellations.

# Data 360 Connectors for B2B Commerce When you provision Data 360, it's connected to your Salesforce org and has access to data from B2B, D2C Commerce, and Salesforce Order Management. You can use connectors to bring data into Data 360 from other sources, such as Omichannel Inventory or store customer engagement data. ### Required Editions
View supported editions.
This table shows connectors for commerce, the data they bring into Data 360, and links to resources that explain how the data source objects are mapped to data model objects (DMOs) in Data 360. The table also includes a link to a resource that describes how to set up the connector.
Connector Data Source Data Mapping Learn More

Salesforce CRM

(connected during Data 360 provisioning)

  • B2B
  • D2C Commerce
  • Salesforce Order Management
Salesforce Commerce Data Bundle Mapping Salesforce CRM Connector
Omnichannel Inventory
  • Omnichannel Inventory
Omnichannel Inventory Data Mapping Omnichannel Inventory Connector
Experience Cloud Integration
  • Enhanced LWR Site Engagement Events
Event Reference Mapping Connect Experience Cloud to Data 360
You can also expand your data source possibilities using SDKs, the Ingestion API, the MuleSoft Anypoint Connector, or one of our third-party integrations. See [Data 360: Connectors and Integrations](https://help.salesforce.com/s/articleView?id=data.c360_a_sources_targets.htm&language=en_US) for a list of available connectors and their associated documentation. #### See Also - [Set Up Data 360 for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_datacloud_commerce_setup_b2b_d2c.htm&release=264.0.0&type=5 "Integrate B2B Commerce with Data 360 to gain key business insights and unlock valuable analytics, personalization and automation capabilities for your store.") # Data 360 for B2B Commerce By combining the power of Data 360 with B2B Commerce, you can gain key business insights and unlock valuable analytics, personalization, and automation capabilities to provide connected, personalized experiences to your customers. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Data Cloud for commerce introduction](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_data_cloud_intro.png) - **[Data 360 for B2B Commerce Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_considerations.htm&release=264.0.0&type=5)** When you set up Data 360 for B2B, you must have certain permissions and requirements configured. - **[Set Up Data 360 for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_datacloud_commerce_setup_b2b_d2c.htm&release=264.0.0&type=5)** Integrate B2B Commerce with Data 360 to gain key business insights and unlock valuable analytics, personalization and automation capabilities for your store. - **[Data 360 Connectors for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_datacloud_connectors.htm&release=264.0.0&type=5)** When you provision Data 360, it's connected to your Salesforce org and has access to data from B2B, D2C Commerce, and Salesforce Order Management. You can use connectors to bring data into Data 360 from other sources, such as Omichannel Inventory or store customer engagement data. - **[Enable Data Governance Permissions for Data 360 for B2B Objects](https://help.salesforce.com/s/articleView?id=commerce.comm_datacloud_governance.htm&release=264.0.0&type=5)** To use Data 360 Data Governance features for Data 360 for B2B, you need to grant access to the impacted objects according to an access policy. - **[Intelligence Analytics Dashboards Powered by Data 360](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_dashboards.htm&release=264.0.0&type=5)** Intelligence Analytics dashboards display key store performance metrics to help you make data-driven decisions for business agility. Get a comprehensive view of the best performing categories and products within a store, and keep on top of inventory health across your locations and location groups. Explore the Shopper Intelligence dashboard to learn about customer first-time and repeat purchase behavior to drive and retain loyalty. - **[Personalization Powered by Data 360](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_personalization.htm&release=264.0.0&type=5)** Personalize the shopper experience and enhance customer engagement by using Data 360 segments. # Data 360 for B2B Commerce Assets When you install the Commerce data kit in Data 360, all Data 360 assets and data mappings are created. When you install Intelligence Analytics, the data transforms run, ingesting Data 360 data and creating the CRM Analytics dashboards and components. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) The app assets are listed under Resources on the Setup page for your app after successful installation. These include Data 360 data transforms and data model objects (DMO) and CRM Analytics dashboards and components. When you select an asset, it opens in its respective tool for detailed inspection. ![Imagine showing the resources tab of the Commerce Intelligence app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_intel_assets.png) #### See Also - [Refresh Intelligence Analytics Dashboard Data](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_data_refresh.htm&release=264.0.0&type=5 "The Intelligence Analytics dashboards rely on up-to-date data by regularly refreshing the data. The refresh includes running the data transforms and updating the datasets.") # Data 360 for B2B Commerce Considerations When you set up Data 360 for B2B, you must have certain permissions and requirements configured. ### Required Editions [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
Permission Sets Needed
To manage Data 360: Data 360 Admin permission set
To manage Commerce: Commerce User permission set
To install Data 360 for Commerce: Commerce Intelligence Admin permission set
To use Data 360 for Commerce: Commerce Intelligence User permission set
## CRM Analytics The included CRM Analytics apps and templates are available only in English. ## Intelligence Analytics Dashboards To view data in the Intelligence Analytics dashboards, you must have the features associated with the dashboards configured and populated with data. - Dashboard components that display product performance — To include newly launched product data, activate the products and track orders, and then refresh the Commerce data streams and data transforms. See [Data Stream Schedule in Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_data_stream_schedule.htm&language=en_US). - Dashboard components that display searches — Viewing search information requires an active site and some available searches from existing individuals. See [Data Stream Schedule in Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_data_stream_schedule.htm&language=en_US). - Inventory Intelligence dashboards — Upgrade to the latest version of the Commerce data kit to access the Omnichannel Inventory data model objects. After you upgrade the data kit, Data 360 starts to capture inventory data so that you can view inventory changes. - Viewing product variations—The Inventory Intelligence Analytics dashboard includes product variations. See [Add Product Variations and Attributes with Guided Setup](https://help.salesforce.com/s/articleView?id=commerce.comm_var_att_guided_setup.htm&language=en_US). - **[Refresh Intelligence Analytics Dashboard Data](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_data_refresh.htm&release=264.0.0&type=5)** The Intelligence Analytics dashboards rely on up-to-date data by regularly refreshing the data. The refresh includes running the data transforms and updating the datasets. - **[Data 360 for B2B Commerce Assets](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_assets.htm&release=264.0.0&type=5)** When you install the Commerce data kit in Data 360, all Data 360 assets and data mappings are created. When you install Intelligence Analytics, the data transforms run, ingesting Data 360 data and creating the CRM Analytics dashboards and components. # Data API Endpoints for Updating Orders You can now use Data API endpoints to update orders in server-to-server use cases, such as when an order management system or payment provider initiates a change. Use new PUT commands to update the different types of order statuses. - `PUT /sites/_{site_id}_/orders/_{order_no}_/confirmation_status` - `PUT /sites/_{site_id}_/orders/_{order_no}_/export_status` - `PUT /sites/_{site_id}_/orders/_{order_no}_/external_status` - `PUT /sites/_{site_id}_/orders/_{order_no}_/payment_status` - `PUT /sites/_{site_id}_/orders/_{order_no}_/shipping_status` - `PUT /sites/_{site_id}_/orders/_{order_no}_/status` Use a new PUT command to update an order’s shipping address. - `PUT /sites/_{site_id}_/orders/_{order_no}_/shipments/_{shipment_id}_/shipping_address` Use new PATCH commands to update order and payment attributes. - `PATCH /sites/_{site_id}_/orders/_{order_no}_` - `PATCH /sites/_{site_id}_/orders/_{order_no}_/payment_instruments/_{payment_instrument_id}_` - `PATCH /sites/_{site_id}_/orders/_{order_no}_/payment_instruments/_{payment_instrument_id}_/transaction` #### See Also - [OCAPI 20.2 diff since 19.10](https://documentation.demandware.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2FOCAPI%2Fcurrent%2Fv20_2_diff_since_v19_10.html&cp=0_12_1_0) - [OCAPI 20.2 Usage](https://documentation.demandware.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2FOCAPI%2Fcurrent%2Fusage%2FOpenCommerceAPI.html&cp=0_12) # Data Exports with Franchise Attribution All data exports from Point of Sale include franchise attribution. Corporate admins can export reports for all stores and franchise groups. Franchise admins can export reports only for their franchise stores, and exports automatically include their franchise ID. ## Electronic Journal Exports Electronic Journal exports include a franchise ID column. To export EJ data for a specific franchise group, filter the report by franchise ID before you export. ## Transaction Log Exports If your org integrates with downstream systems that consume transaction log data, these fields are available. | tLog Section | Field | Description | | --- | --- | --- | | Header | franchiseId | Franchise identifier at the transaction level | | Store Object | store.franchiseId, store.franchiseName | Franchise ID and name for the store | | Order Activity Log | orderActivityLog.franchiseId | Franchise attribution for order activities | #### See Also - [_Salesforce Help:_ Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5 "Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations.") # Data Expressions for Commerce Cart Components Use these data expressions in any component on the cart page. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
Data Expression Description
Account ID {!Cart.Details.accountId} ID of the cart account.
Cart ID {!Cart.Details.cartId} ID of the cart.
Cart Items {!Cart.Items} Collection of cart item results.
Cart Name {!Cart.Details.name} Name of the cart.
Cart Status {!Cart.Details.status}

Status of the cart. Values are:

  • Active
  • Checkout
  • Closed
  • PendingDelete
  • Processing
Cart Type {!Cart.Details.type} Type of cart. Value is Cart.
Charges {!Cart.Totals.chargeAmount} Total amount for shipping and other charges in the currency of the cart.
Contains Subscriptions {!Cart.Details.containsSubscription} Cart contains items with subscriptions.
Currency ISO Code {!Cart.Details.currencyIsoCode} Three-letter ISO 4217 currency code associated with the cart.
Grand Total {!Cart.Totals.grandTotal} Grand total amount, including shipping and tax, for items in the cart, in the currency of the cart.
Original Total {!Cart.Totals.listPrice} Total list price for the cart.
Product Count {!Cart.Details.totalProductCount} Total count of items in the cart.
Promotions Total {!Cart.Totals.promotionalAdjustmentAmount} Total amount of promotion adjustments.
Store ID {!Cart.Details.webstoreid} ID of the cart’s web store.
Subscription Product Count {!Cart.Details.totalSubscriptionProductCount} Number of cart items that contain subscriptions.
Subtotal {!Cart.Totals.productAmount} Total amount, including discounts, but excluding shipping and tax, for product items in the cart.
Subtotal With Promotions {!Cart.Totals.productAmountAfterAdjustments} Total product amount, including promotions.
Tax Total {!Cart.Totals.taxAmount} Total tax amount for the cart, including tax on shipping, if applicable.
Tax Type {!Cart.Details.taxType}

Tax type of the cart. Values are:

  • Gross
  • Net
Unique Product Count {!Cart.Details.uniqueProductCount} Total count of unique items, or SKUs, in the cart.
# Data Expressions for Commerce Order Components Use these data expressions in any component on the order summary details page of your B2B store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - {!Order.Details.orderSummaryId} - {!Order.Details.status} - {!Order.Details.orderNumber} - {!Order.Details.orderedDate} - {!Order.Details.createdDate} - {!Order.Details.totalAmount} - {!Order.Details.ownerId} - {!Order.Details.currencyIsoCode} {!Order.Details.AccountId.text} - {!Order.Details.ActiveProcessExceptionCount.text} - {!Order.Details.fields.BillingStreet.text} - {!Order.Details.fields.BillingAddress.text} - {!Order.Details.fields.BillingEmailAddress.text} - {!Order.Details.fields.BillingPhoneNumber.text} - {!Order.Details.fields.BusinessModel.text} - {!Order.Details.fields.ChangeOrderId.text} - {!Order.Details.fields.BillingCity.text} - {!Order.Details.fields.CloneSourceId.text} - {!Order.Details.fields.BillToContactId.text} - {!Order.Details.fields.BillingCountry.text} - {!Order.Details.fields.CreatedById.text} - {!Order.Details.fields.CreatedDate.text} - {!Order.Details.fields.CurrencyIsoCode.text} - {!Order.Details.fields.Description.text} - {!Order.Details.fields.ExternalReferenceIdentifier.text} - {!Order.Details.fields.TotalFeeAmount.text} - {!Order.Details.fields.TotalFeeTaxAmount.text} - {!Order.Details.fields.TotalFeeAmountWithTax.text} - {!Order.Details.fields.TotalAdjustedFeeAmount.text} - {!Order.Details.fields.TotalAdjustedFeeTaxAmount.text} - {!Order.Details.fields.BillingGeocodeAccuracy.text} - {!Order.Details.fields.LastModifiedById.text} - {!Order.Details.fieldslastModifiedDate.text} - {!Order.Details.fieldsLastReferencedDate.text} - {!Order.Details.fields.LastViewedDate.text} - {!Order.Details.fields.BillingLattitude.text} - {!Order.Details.fields.BillingLongitutde.text} - {!Order.Details.fields.TotalAdjDistAmount.text} - {!Order.Details.fields.TotalAdjDistTaxAmount.text} - {!Order.Details.fields.TotalAdjDistAmountWithTax.text} - {!Order.Details.fields.TotalFeeAdjDistAmount.text} - {!Order.Details.fields.TotalFeeAdjDistTaxAmount.text} - {!Order.Details.fields.TotalFeeAdjDistAmtWithTax.text} - {!Order.Details.fields.OrderLifeCycleType.text} # Data Expressions for Commerce Product Components Use these data expressions in any component on the product page of your B2B store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
Expression Description
{!Product.Details.id} ID of the product.
{!Product.Details.fields.isActive} Indicates whether the product is active or not.
{!Product.Details.fields.isArchived} Indicates whether the product is archived.
{!Product.Details.fields.CreatedById} ID of the user who created the product.
{!Product.Details.fields.CreatedDate} Date the product was created.
{!Product.Details.fields.CurrencyIsoCode} Three-letter ISO 4217 currency code associated with the product.
{!Product.Details.fields.IsDeleted} Indicates whether the object has been moved to the Recycle Bin or not.
{!Product.Details.fields.DisplayUrl} Display URL of the product.
{!Product.Details.fields.ExternalDataSourceId} External data source ID of the product.
{!Product.Details.fields.ExternalId} External ID of the product.
{!Product.Details.fields.LastModifiedById} ID of the user who last modified the product.
{!Product.Details.fields.LastModifiedDate} Timestamp for when the current user last modified the product.
{!Product.Details.fields.LastReferencedDate} Timestamp for when the current user last viewed a record related to the product.
{!Product.Details.fields.LastViewedDate} Timestamp for when the current user last viewed the product.
{!Product.Details.fields.ProductClass} Product class of the product.
{!Product.Details.fields.ProductCode} Product code of the product.
{!Product.Details.fields.Description} Description of the product.
{!Product.Details.fields.Family} Family of the product.
{!Product.Details.fields.id} ID of the product.
{!Product.Details.fields.Name} Name of the product.
{!Product.Details.fields.StockKeepingUnit} Stock keeping unit of the product.
{!Product.Details.fields.Type}

The type of the product. Values are:

  • Base
  • Null

Values are: Base Null

{!Product.Details.fields.QuantityUnitOfMeasure} Unit of the product, for example, kilograms, liters, or cases.
{!Product.Details.fields.SystemModstamp} ISO 8601 date string indicating when a user or any automated system process, such as a trigger, updated the file.
{!Product.Details.fields.TaxPolicyId} ID of the related tax policy.
{!Product.Details.defaultImage.canViewPrice} Specifies whether the product's price can be viewed (true) or not (false).
{!Product.Details.defaultImage.id} ID of the default image for the product.
{!Product.Details.defaultImage.url} URL for the default image for the product.
{!Product.Details.defaultImage.thumbnailUrl} URL of the thumbnail for product media.
{!Product.Details.defaultImage.title} Title of the product media.
{!Product.Details.defaultImage.alternateText} Alternative text for the product media.
{!Product.Details.defaultImage.sortOrder} Sort order of a media item within a media group.
{!Product.Details.defaultImage.mediaType}

Type of product media. Values are:

  • Document
  • Image
  • Video
{!Product.Details.defaultImage.contentVersionId} ID of the latest published content version if the media is stored as a ContentDocument. If the image is a customer-provided external URL, the value is null.
{!Product.Details.variationParentId} ID of the variation parent.
{!Product.Details.productClass}

Class of the product. Values are:

  • Simple
  • Variation
  • VariationParent
{!Product.Details.variationAttributeSet.id} Variation attribute set for the product.
{!Product.Details.variationAttributeSet.developerName} Unique name of the object in the API.
{!Product.Details.purchaseQuantityRule.minimum} Minimum quantity of a product that can be purchased.
{!Product.Details.purchaseQuantityRule.maximum} Maximum quantity of a product that can be purchased.
{!Product.Details.purchaseQuantityRule.increment} Increment value of the quantity that can be purchased.
{!Product.Pricing.pricebookEntryId} ID of the price book entry for the product.
{!Product.Pricing.listPrice} List price for the product.
{!Product.Pricing.unitPrice} Unit price for the product.
{!Product.Pricing.currencyIsoCode} Three-letter ISO 4217 currency code associated with the product.
{!Product.Pricing.priceAdjustment.id} Price adjustment schedule for the product.
{!Product.Tax.taxLocaleType}

Tax type of the store. Values are:

  • Gross–Prices include tax
  • Net–Prices don’t include tax
{!Product.SelectedVariant.isValid} Indicates if the selected variant is a valid product or not.
{!Product.SelectedVariant.options} Provides options of the selected variant.
# Data Expressions for Commerce Search Components Use these expressions in any component on the Search page of your B2B store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) | Data | Expression | Description | | --- | --- | --- | | Product Cards | {!Search.Results.cardCollection} | The collection of data displayed in a product card in search results. | | Filters | {!Search.Results.filtersPanel} | The data displayed in the filters panel. | | Locale | {!Search.Results.locale} | Locale of the search results. | | Page Size | {!Search.Results.pageSize} | Number of products per page in the search result. | | Total | {!Search.Results.total} | Number of products in the search result across all pages. | | Category Name | {!Search.Results.categoryName} | The selected category name. | | Description | {!Search.Results.description} | The search and category header title based on results data. | | Sort Rules | {!Search.SortRules.rules} | The list of available sort rules. | | Current Sort Rule | {!Search.SortRules.currentSortRuleId} | The selected sort rule. | | Total Pages | {!Search.Pagination.totalPages} | The number of pages in the search result. | | Current Page | {!Search.Pagination.currentPage} | The current page number in the search result. | | Start Index | {!Search.Pagination.startIndex} | The starting index of items displayed in the list. | | End Index | {!Search.Pagination.endIndex} | The last index of items displaying in the list. | # Data Expressions for Commerce User Fields Use these data expressions on any LWR store page. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) | Data | Expression | Description | | --- | --- | --- | | Buyer Groups | {!User.Commerce.BuyerGroups} | List of buyer groups associated with the user. | | Effective Account ID | {!User.Commerce.EffectiveAccount.id} | ID of the buyer account or guest buyer profile. | #### See Also - [Use Expressions to Add Dynamic Data to LWR Sites](https://developer.salesforce.com/docs/atlas.en-us.exp_cloud_lwr.meta/exp_cloud_lwr/advanced_expressions.htm) # Data Retention Has New Limits To comply with Salesforce Commerce Cloud data management and regulation standards, B2C Commerce is implementing a strict 180 days data retention for code and data replications. Replications after 180 days aren’t visible in the Business Manager replications module. Where: This change applies to Business Manager Production, Development, and Staging instances. # Datalogic Scanner Support in Point of Sale The Datalogic Magellan 1500i is a corded barcode scanner that connects to a supported Epson printer's USB port. The USB port passes the scanned data to Point of Sale (POS). ## Prerequisites - Modern POS App Build: 12.3.1 or later - Platform Support: iPhone and iPad - Offline Support: Yes - **[Set Up Datalogic Scanner in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_setup_datalogic_scanner.htm&release=264.0.0&type=5)** Configure the Datalogic Magellan 1500i in Point of Sale CMS. Then connect the scanner through a supported Epson printer's USB port. - **[Program the Datalogic Scanner for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_program_datalogic_scanner.htm&release=264.0.0&type=5)** Scan configuration barcodes from the Datalogic Product Reference Guide to change how the Magellan 1500i formats scans in Point of Sale (POS), or to reset the scanner. - **[Point of Sale Datalogic Scanner Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_datalogic_scanner_troubleshooting.htm&release=264.0.0&type=5)** Resolve common issues with a USB-connected Datalogic Magellan 1500i scanner in Point of Sale (POS). # Deactivate a B2C Commerce Connection Deactivate the B2C Commerce storefront integration or a related feature. Before refreshing or running DBInit on a B2C Commerce instance, deactivate all of its connections. ### Required Editions
View supported editions.
1. From Setup, in the Quick Find box, enter B2C Commerce Connections, and then select **B2C Commerce Connections**. 2. In the Tenant Connections section, find the row containing the connection that you want to deactivate, and click **Edit**. 3. In the Selected Connection Types box, select the types that you want to deactivate, then move them to the Available Connection Types box by clicking the left arrow. To delete web stores used with a deactivated connection, use Apex code or a tool like Postman. You can’t delete web stores in the Salesforce UI. 4. Click **Save**. When a connection is deactivated, it no longer appears in the Tenant Connection List. However, depending on its connection type, it might not deactivate immediately. In that case, it appears in the Tenant Connections List with the status Pending Deactivation until it deactivates. When that happens, a notification is sent to the System Administrator email address. # Deactivate Omnichannel Inventory This process includes steps to deactivate the connection between B2C Commerce and Omnichannel Inventory. Before deactivating a B2C Commerce instance from Omnichannel Inventory, consider these recommendations: - Plan to identify which inventory reservations are made in each system and handle them appropriately. - If you plan to turn on the integration again, maintain the Omnichannel Inventory data import processes. By keeping them active, the data cache is up to date when you reactivate the integration. Deactivate the connection: 1. Log in to Salesforce, and go to Setup. 2. In the Quick Find box, enter B2C Commerce, and then select **B2C Commerce Connections**. 3. In the Tenant Connection for which you want to remove the Omnichannel Inventory connection, click **Edit**. 4. In the Selected Connection Type list, select **Omnichannel Inventory** and move it to the Available Connection Type list. 5. Click **Save**. 6. Confirm that the information is correct, and click **Save**. When a connection is deactivated, it no longer appears in the Tenant Connection List. However, depending on its connection type, it might not deactivate immediately. In that case, it appears in the Tenant Connection List with the status Pending Deactivation until it deactivates. When it’s deactivated, a notification is sent to the System Administrator email address. For information on troubleshooting the integration between B2C Commerce and Omnichannel Inventory, see [Troubleshooting the Omnichannel Inventory Integration](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/inventory/b2c_troubleshooting_omnichannel_inventory_integration.html) in the B2C Commerce Infocenter. # Deactivate Your B2B Commerce Store Deactivating your store makes it inaccessible to customers. Deactivate only when you want to temporarily or permanently bring down the store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**, and then click **Store Activation**. 3. Click **Deactivate**. #### See Also - [Activate Your Store](https://help.salesforce.com/s/articleView?id=commerce.comm_activate_store.htm&release=264.0.0&type=5 "Activating your B2B store makes it available to customers and accessible to external services and online search engines. Activating the store also publishes it.") - [Publication and Activation](https://help.salesforce.com/s/articleView?id=commerce.comm_publish_activate.htm&release=264.0.0&type=5 "When you’ve previewed your pages and are ready to start selling, it’s time to make your B2B Commerce store available to your customers. First, configure a custom domain and CDN. Assign the store a custom URL. Then publish the store and activate it.") # Debug Page Designer Page Caching in the Browser Developer Console Use the Page Designer component’s caching details to find and resolve page caching problems. Access the browser developer console from within Page Designer. For example, if you use Google Chrome, go to View | Developer | Developer Tools | Console. # December 2025 SCAPI Release With B2C Commerce version 26.1: - Added Custom APIs to the [Timeouts API](https://developer.salesforce.com/docs/commerce/commerce-api/references/timeouts?meta=Summary). This allows configuration of request timeouts for Custom API requests up to a maximum of 120 seconds. - New SCAPI APIs and endpoints: - [Customers](https://developer.salesforce.com/docs/commerce/commerce-api/references/customers?meta=Summary) - PUT customer-groups/{customerGroupId}/members - Adds multiple customers to a customer group by their customer numbers in a single batch operation. - DELETE customer-groups/{customerGroupId}/members - Removes multiple customers from a customer group by their customer numbers in a single batch operation. - GET /customer-groups - Retrieves customer groups with support for pagination (offset/limit) and field selection via the select parameter. - [Price Books](https://developer.salesforce.com/docs/commerce/commerce-api/references/price-books?meta=Summary) - POST /price-book-search - Searches for price books using query-based criteria, enabling discovery and filtering of price book configurations. - [Products](https://developer.salesforce.com/docs/commerce/commerce-api/references/products?meta=Summary) - POST /unassigned-product-search - Searches for products that aren't assigned to any catalog. - [SCAPI Schemas](https://developer.salesforce.com/docs/commerce/commerce-api/references/scapi-schemas?meta=Summary) - GET /schemas - Retrieves a list of available SCAPI OAS schemas. - GET /schemas/{apiFamily}/{apiName}/{apiVersion} - Retrieves the OAS schema identified by API family, name, and version. - [Shopper Experience](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-experience?meta=Summary) - GET /contents/{id} - Retrieves a single content asset by ID with optional locale parameter for localized content. - GET /contents - Retrieves multiple content assets by their IDs in a single batch request, supporting locale-based content retrieval. - GET /folders/{id} - Retrieves a content folder by ID with support for hierarchical navigation via the levels parameter and optional locale. - GET /folders - Retrieves multiple content folders by their IDs in batch, with support for hierarchical levels and localization. - GET content-search - Searches content assets using query parameters with support for sorting, pagination (offset/limit), refinements, and locale-specific results. - [Shopper Customers](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-customers?meta=Summary) - GET /product-lists/{listId}/items - Retrieves all items in a product list, for example: wish list and gift registry, with support for expansion parameters to include product details, availability, images, and prices. - [Shopper Payments](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-payments?meta=Summary) - [Shopper Products](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-products) - New expansion shipping\_methods for /products and /products/{id}. Adds shipping method information to product responses, allowing clients to retrieve available shipping options for products. - New expansion set\_products and bundled\_products for /products. Enables retrieval of product set members and bundled product details within product responses. - [Sites](https://developer.salesforce.com/docs/commerce/commerce-api/references/sites?meta=Summary) - POST /site-search - Searches for sites using a query-based search with configurable search criteria in the request body. # December Build Summary (9.6.1) Build summary for Modern POS version 9.6.1, including what new features and changes it contains. 9.5.1 was an internal-only release for work done during a code freeze. Intentionally skipped numbers for public release 9.6.1. Access all new features and enhancements listed in 9.6.1. ## Overview of All Features | Theme | Feature | | --- | --- | | API | [Adyen API Upgrade](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Cart/Checkout | [Linked Products Cart Tracking](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Core Platform | [Product Forms](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | EJ/TLog/JSON Export | [Show Warning Message for CSV / TSV / RetailNext Order Download Export Jobs](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | EJ/TLog/JSON Export | [Void Cart Item Export](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | EJ/TLog/JSON Export | [Order status Is Not Updated in POSlog for In-Store Fulfillment](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Feeds Import / Data Export | [Enhanced Successful Order Report](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Feeds/Import Data | [Feed Validations](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Inventory Management | [Make Shipment ID Searchable and Show on ASN Report](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Inventory Management | [Store-to-Store (STS) and Return to Vendor (RTV) Destination Store lookup](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Inventory Management | "[Inventory Bucket for Mismatch/Damaged Items](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Offline | [Verifone SAF](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Offline | [Offline | Maximum allowances > POS UX improvements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Offline | [Offline | Maximum allowances > Offline | Maximum allowances > CMS UX copy](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Offline | [Offline Network Reachability](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Omnichannel | [Reserve Online, Pick Up in Store (ROPIS)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Receipts | [New Tags for Both Email and Print Receipt Templates](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Reporting | [EJ Report Filter Enhancements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | | Other | [Other Feature Enhancements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_6_1.htm&release=264.0.0&type=5) | ## API ## Adyen API Upgrade on Server (EOL April - 2024) What it does: Ability to trigger an inventory adjustment if there's a sale or a return. How to configure: [https://labs.predictspring.com/cms/custom-api/create/new](https://labs.predictspring.com/cms/custom-api/create/new) SALE\_INVENTORY = This event indicates that an item (or items) has been sold. If this event is triggered, the expectation is that the inventory for the specified item(s) decreases. RETURN\_INVENTORY = This event indicates that an item (or items) has been returned or exchanged. If this event is triggered, the inventory for the specific item(s) increases or adjusts in some manner if it's an exchange. ![See the add-ons associated with a product.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_product_details.png) ![Add-ons are associated with a main product in the cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_add_on_cart.png) ## Cart/Checkout ## Add-On Products What it does: Ability to link sub-products to a parent product in the cart. Common use cases include warranty, embroidery, linked accessories like charms for jewelry, or component furniture add-ons. Available add-ons can be displayed on the Product Detail Page (PDP) with the ability to have them added to the cart. Merchants can also configure Return Policy to permit or forbid refunds for add-ons during the return. Learn how to configure: [Configure Add-On Products in the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_add_on_products_configure.htm&release=264.0.0&type=5 "Configure and implement add-on products on the POS app. Add-ons are specific to a product in the cart. For example, a warranty for jewelry and furniture or an embroidery charge (SKU) linked to an item to be monogrammed are add-ons. Add-ons appear on the product details page (PDP) with an option to add them to the cart. You can also control whether add-ons are eligible for refunds during the return process.") ## Product Forms What it does: Product Forms permit you to link forms to specific products in the POS app, enabling you to obtain product-specific details before a sale. Additionally, these forms can be applied to add-on products like Insurance and Protection Plans. ![An Product Form Window in the POS App, asking you to enter informatin about embroidering.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_prod_forms.png) Learn More: Review [Set Up Product Forms](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_product_forms.htm&release=264.0.0&type=5 "The Point of Sale product forms are designed to link forms with specific products in the POS app, allowing merchants to obtain product-specific details before a sale. Additionally, these forms can be applied to add-on products like insurance and protection plans.") for instructions on how to create a Product Form, linking a form to a product, and how to access reporting. ## EJ/TLog/JSON Export Announcement: Deprecation of CSV / TSV / RetailNext order download formats CSV, TSV, and RetailNext exports are limited subsets of order data and will be deprecated in 2024. For full functionality, use JSON or XML formats. ![The Export File Type, marked as CSV, in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_csv_json_export.png) Learn More: [Configure and Manage Export Jobs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_export_jobs.htm&release=264.0.0&type=5 "Use export jobs to extract data from Point of Sale by using Secure File Transfer Protocol (SFTP). Configure and schedule these jobs in CMS to automate data extraction, and monitor their progress in the Export Logs for timely, efficient data retrieval.") ## Void Cart Item Export What it does: Enhanced export of items in a cart if voided via a webhook API. This provides real-time data you can store and refer to in LP audits, for example. How to configure the webhook: [https://labs.predictspring.com/user/login](https://labs.predictspring.com/user/login) Endpoint Name: VOID\_CART Integration Type: HTTP\_POST Learn More: [Orther webhooks, Void Cart](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#retail-cloud-webhook-summary) ## Order Status Updated in POSLog for In-Store Fulfillment What it does: Real-time JSON/POSLog order posting for Buy Online, Pick up in Store. Ability to create a webhook for the export of a store fulfillment event for Buy Online, Pick up in Store. Learn More: [POS Offline Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_settings_pos_offline_support.htm&release=264.0.0&type=5 "Continue operating the POS app if the device isn't connected to WiFi or Ethernet, or your internet service is down. Sync the POS app data after you're back online.") ## Enhanced Successful Order Report What it does: Ability to filter through a search by FILE/API export status to help you get to a list of relevant orders, faster. ![File Export Status and API Export Status fields in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_successfull_orders_rept.png) Learn More: [Successful Orders in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_successful_orders.htm&release=264.0.0&type=5 "View key sales transaction data such as order date, store ID, gross sales, and external order references in Point of Sale CMS. Monitor and analyze your sales operations.") ## Feeds/Import Data ## Tax Class Column + Validation What it does: Tax Class column is now mandatory in tax feed imports. Enhanced functionality has been added to validate mandatory fields. How to configure: In the field mappings, create a mapping that maps the tax class field onto a Point of Sale product field. Finally, configure the Product Field to read the tax class server setting so that it matches the Point of Sale product field name in the product Field Mappings. Learn More: [Tax Rates Feed & Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_tax_rates.htm&release=264.0.0&type=5 "Point of Sale has the capability of calculating taxes via its tax engine. This tax engine relies on a tax feed that provides information about various taxes and rates that are applicable to products in different locations. If required, the tax engine can also compute the value-added tax (VAT) components out of a product price that already has VAT built into it for print and reporting purposes.") ## Inventory Management ## Make Shipment ID Searchable and Show on ASN Report What it does: Ability to search an ASN report by Shipment ID in CMS and POS app. How to access in CMS: [https://labs.predictspring.com/cms/asn/asns](https://labs.predictspring.com/cms/asn/asns) ![The Search by Shipment ID window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_search_shipment_id.png) Learn More: [View Advanced Shipping Notice Report in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_asns.htm&release=264.0.0&type=5 "View details of received inventory or start the receiving process from different stores. Access the report in Point of Sale CMS or configure a deep link in the POS app.") ## Store-to-Store (STS) and Return to Vendor (RTV) Destination Store ID Lookup What it does: Ability to search for STS Transfer and RTV lists by Store ID in POS app. ![Enhanced RTV and STS transfer list search in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_sts_rtv_id_lookup.png) Learn More About Creating STS Transfers and RTVs: [Manage Store to Store Inventory Transfers in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands.")[Manage Return to Vendor Transfers in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_rtv_transfers.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise from a store back to either a vendor or a warehouse.") ## Tracking Inventory Movement in POS App What it does: This feature provides merchants with access to a product's current availability, allowing them to adjust [inventory buckets](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_adjust_inventory_buckets.htm&release=264.0.0&type=5 "Change the inventory details for a product in Point of Sale CMS.") and designate them as "Not for Sale." Specifically, they can adjust the product's "Floor Demo," "Not for Sale" for Item Adjustments, and "Return" for Return to Vendor (RTV) transfers if an inventory adjustment deep link is configured. These adjustments are exclusively applied at the store level, establishing their relevance to the app's current store. ![The Inventory Movement window in the POS app that shows how much inventory currently exists.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_move_inventory.png) How to configure: Add a deep link to your layout ![The Inventory Bucket Adjustment setting in the Select a Deep Link section of the Retail Cloud CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_inventory_mgmt_bucket_cms.png) Learn More: [Manage Inventory with Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_manage_inventory.htm&release=264.0.0&type=5 "Use the Inventory Movement feature to access a product's current availability and adjust inventory buckets.") ## Offline ## Verifone SAF What it does: Verifone terminals support “Store and Forward” (SAF) processing for offline transactions. In this mode, the terminal provides local transaction approval and denial. This permits the POS app to still be able to perform credit card transactions while network connectivity is lost. Transactions that support this feature include Sales, Returns, and Reset Tenders (voids). How to configure: Configure on your terminal and in CMS ![The Pending Orders screen on the POS app that shows all pending orders and the Force Sync button.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_saf_pos_flow.png) Learn How to set up: [Set Up Verifone Store and Forward (SAF)](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_saf.htm&release=264.0.0&type=5 "Configure Verifone Store and Forward (SAF) so the Point of Sale (POS) app keeps processing credit card transactions if the network isn't working.") ## Maximum allowances What it does: Ability to set a maximum $ amount for transactions and sessions while offline. How to configure: [https://labs.predictspring.com/cms/stores/configuration/offline](https://labs.predictspring.com/cms/stores/configuration/offline) ![The Maximum Allownaces settings in the POS Offline setup section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_max_allowances.png) Learn More and Offline Support: [POS Offline Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_settings_pos_offline_support.htm&release=264.0.0&type=5 "Continue operating the POS app if the device isn't connected to WiFi or Ethernet, or your internet service is down. Sync the POS app data after you're back online.") ## Offline Network Reachability What it does: Ability for stores with short, infrequent network outages to stay online if the system detects if there's a disconnection from the local network. In offline mode, the app switches to Offline even if connected to WiFi/Ethernet if there's a service outage. Turning on this setting can delay the switch to offline. Disabling this setting indicates your POS goes into Offline mode as expected and comes online after five successful health check calls (at 5-second intervals). ![POS Offline Settings Offline Detection in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_offline_detection.png) How to configure: [https://labs.predictspring.com/cms/stores/configuration/offline](https://labs.predictspring.com/cms/stores/configuration/offline) Learn More: [POS Offline Detection](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_pos_offline_detection.htm&release=264.0.0&type=5 "Point of Sale monitors the device network connection to determine connectivity status.") ## Omnichannel ## Reserve Online, Pick Up in Store (ROPIS) What it does: Allows customers to reserve items online at a nearby store for a product trial before making a purchase. This feature is initiated by ecommerce, while POS initiation is reserved for "Try at Store" orders. After you book online, the store gets an order. The items you ordered are given to the store and ready to be delivered. This is like buying online and picking them up in store. After the order is received by the store, the items are allocated and an associate packs the items. After the order is ready for pickup, the customer is sent a notification, and they come to the store to try the items before purchasing. ![The POS app shows the display of the customer phone number and email address.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_fulfill_ropis_pos_3.png) Learn More: [Use Reserve Online, Pick Up In Store (ROPIS)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_ropis.htm&release=264.0.0&type=5 "Point of Sale's Reserve Online, Pick Up In Store (ROPIS) feature lets customers reserve items online for in-store trials before buying. After reserving online, the store gets an order, allocates the items, and prepares them for fulfillment, similar to Buy Online Pick Up In Store (BOPIS). Once the order is ready, the customer receives a notification to try the items in-store before purchase.") ## Receipts ## New Tags for Email and Print Receipt Templates What it does: New tags to show the data are now available in email ‌and print receipt templates: - Shipping Method Type - Sub Omni Fulfillment Type - Delivery Date - Pickup Date - Quote ID (email only) How to configure: Add tags to your template via [https://labs.predictspring.com/cms/layouts](https://labs.predictspring.com/cms/layouts) Learn More about creating and updating layouts: [Receipt Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_receipt.htm&release=264.0.0&type=5 "Customize Point of Sale receipts to enhance customer experiences. Configure store-level print receipts and use templates for order returns. The Receipt Layout editor allows you to tailor headers, footers, and item details. Understand common challenges and best practices for clear and readable receipts, including managing returns and exchanges.") See full list of Tags: [Configure Email Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_email.htm&release=264.0.0&type=5 "Email tags in Point of Sale are placeholders for email and print templates that pull specific information from data that are then shown instead of the actual placeholder.") | [Configure Print Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_print.htm&release=264.0.0&type=5 "Print tags are placeholder strings that dynamically display data in Point of Sale layouts. Add print tags to native or HTML text overlays to display information such as order totals, customer names, or store details. You can also use print tags in certain app-level settings.") ## Reporting ## EJ v2 What it does: Updated Electronic Journal with advanced filtering and search capabilities. EJ v1 lives in parallel with EJ v2 until April 2024. In April of 2024, EJ v1 becomes deprecated. Provide feedback to your Salesforce Customer Success representative if you have any! How to access: [https://labs.predictspring.com/cms/custom-api/create/new](https://labs.predictspring.com/cms/custom-api/create/new) ![The Electronic Journal settings in Retai Cloud CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_ej_config.png) Learn More: [View and Edit Electronic Journal Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Fiscalization (Italy) - Multitender Refund | If the original payment method is multitender, the system allows for a refund to multitender in versions 9.6.1 and later. | [Fiscalization Requirements for Italy](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_requirements_for_italy.htm&release=264.0.0&type=5 "Set up Epson FP90III RT model printer and configure Point of Sale CMS to gain fiscalization compliance in Italy.") | | Only apply to Order Search Layout to Order History | Revision to have Order Search Layout only apply to Order History where previously it applied to Returns and Exchanges. | [View Order History on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_process_view_history.htm&release=264.0.0&type=5 "The POS app allows store associates to query the order history to list orders. Store associates may choose from several filters to narrow down the search. This screen may be accessed through a deep link. This article will go over the configuration needed to implement this feature as well as an overview of the app flow.") | | iOS 17 Support | Point of Sale's application has been tested and approved for use with iOS 17. | N/A | | Eliminate long default query on audit log page | Act to search Audit Logs before results populate where previously all load as default. | N/A | | Italy: QR code for lottery | Ability to print QR Lottery Code on receipts for Italy's merchants. | [Fiscalization Requirements for Italy](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_requirements_for_italy.htm&release=264.0.0&type=5 "Set up Epson FP90III RT model printer and configure Point of Sale CMS to gain fiscalization compliance in Italy.") | | BOPIS + BOFIS Event Posting | Ability for merchants to post details of a BOFIS and BOPIS order through file export or webhook. | [Manage Buy Online, Pickup In Store (BOPIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bopis.htm&release=264.0.0&type=5 "Configure and process Buy Online, Pickup In Store (BOPIS) orders in the POS app.") [Manage Buy Online, Fulfill In Store (BOFIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bofis.htm&release=264.0.0&type=5 "Process Buy Online, Fulfill In Store (BOFIS) orders in the POS app. Store associates pack, ship, and manage orders fulfilled from the store.") | | Firebase event tracking | Firebase is a set of Backend cloud computing services and application development platforms provided by Google. Salesforce supports this integration, allowing merchants to receive debugging and logging information. | N/A | | New Till Nouns for Voice Command | Enhanced capability to create, reconcile, and get summary of tills with Speech Recognition beta. | [Configure Speech Recognition (Beta) in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_speech_recognition_beta.htm&release=264.0.0&type=5 "Turn on speech recognition in the POS app to streamline workflows. With voice commands, users can efficiently access features, turning on hands-free operation, and enhancing accessibility. Configure custom voice commands and deep links in CMS to tailor the experience for different languages and actions within the app.") | | GiveX as Gift Card Provider | Expanded functionality with POS to accept GiveX gift card payments. | [Integrate Givex Gift Cards](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_gift_card_givex.htm&release=264.0.0&type=5 "Point of Sale's POS supports gift card integration with Givex. Learn how to configure a Givex account with the supported functionality.") | # Deep Link Values Get details of the deep link values for various destinations in the Point of Sale app. Each URI ensures users can navigate directly to key destinations, streamlining their workflow and enhancing productivity. In each, you need the URI provided by Salesforce.
Destination URL Value
Open homepage Value (IOS): [URI]://
Open a product

Value: [URI]://product/[Product ID]

Tip
Tip Product IDs are listed in the List Products page in the Mobile Workbench.
Open products Value: [URI]://products/[Product ID1],[Product ID2]
Open product search

Value: [URI]://search?productQuery=[Query String]&showControls=[true/false]&sort=[Sort Order]&listStyle=[grid/list]&preselectedVariantOptions=Color&filter=MerchantCategoryComponents%3A[Category]

Example: com.shopnow.mobile://search?productQuery=*&showControls=true&sort=&listStyle=grid&preselectedVariantOptions=Color&filter=MerchantCategoryComponents%3AFirst%20Ascent%20%3E%20Gear

Query String: This is a search criteria as would be entered in the search box within the app. The string must be URL encoded. To not apply a search query enter *.

Sort Order: The sort order for the search result items. Possible values are blank (which sorts by relevance), SALES_PRICE_ASC, or SALES_PRICE_DESC.

Category: This is the category filter to apply to the search results. Subcategories should be entered as Category > Sub Category. This string must be URL encoded.

Open a layout page

Value: [URI]://layout/[Layout ID]?title=Shoes

Title: The title of the layout page. This will be displayed in the center of the top nav.

Tip
Tip Layout ID can be found in your browser address bar when viewing a layout in the Mobile Workbench.

Layout ID highlighted in the URL of a Mobile Workbench Page.

Open an Instagram page Value: [URI]://instagram
# Default Import Records for a B2B Store When you create a store, several required records are created by default. The only default record that you can delete is the category. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - Catalog—Each store has a default catalog named after the store. For example, if your store is named MyStore, your default catalog is MyStore Catalog. The default catalog includes one default category, Products. When you import data, you can select which catalog and category to assign to a product. - Buyer group—Each store has a default buyer group, which is a collection of accounts that have common access to specific entitlements. You can’t use import to assign products to a buyer group. - Entitlement policy—Each store has a default entitlement policy, which defines the products and product-related information that shoppers can see based on their buyer group membership. B2B stores can have multiple entitlement policies in addition to the default. When you import data, you can assign products to entitlement policies. - Store price book—Each store has a default price book and a default strikethrough price book named after the store. For example, if your store is named MyStore, your default price book is MyStore Price Book. The default strikethrough price book is MyStore Strikethrough Price Book. When you import data, you can select the price books to assign to the products. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Each Salesforce org has a global standard price book that contains all your products. The standard price book isn’t associated with a specific store. It applies across all your stores. A product must be listed in your standard price book before it can be listed in any other price book. When you import data, specify two prices for each product—one for your store’s price book, and one for your store’s strikethrough price book. The import process updates the associated price books and uses the first price specified in the row to update the standard price book. For example, if the first column in the row specifies a price for the store’s strikethrough price book, that price is used to update the standard price book. - CMS workspace—When you create a store, the creation process creates a CMS workspace for the store and a public channel to the workspace. You must use this workspace when importing to the store. You can't specify that the import process use a different workspace. To use content in the store from another workspace, assign the store's public channel to that workspace. The content from all workspaces assigned to the store's public channel is available to the store. The default language for the CMS workspace is set to the default language of the org. If Translation Workbench is enabled and there are supported languages configured for Translation Workbench, the default language of the CMS is set to the first supported language. You can add other languages to the CMS workspace, but you can’t change the default language after the workspace is created. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Before you activate your store, we recommend that you use the Digital Experiences app to change the domain for the public channel associated with the store's CMS workspace. Make the domain match the domain that you configure for your store. For instructions on configuring a custom domain for your store, see [Configure a Custom Domain and CDN](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_cdn_and_custom_domains.htm&release=264.0.0&type=5 "For B2B stores created with the LWR template, if you prefer a branded URL or a URL without my.site.com, connect your store to a domain. Connecting the store to a domain automatically enables the Salesforce content delivery network (CDN) partner. You can use a single custom domain for multiple Commerce stores. A Salesforce admin typically configures the custom domain."). For instructions on using the Digital Experiences app to configure the domain for a CMS public channel, see [Configure Salessforce CDN for Digital Experiences in Salesforce CMS.](https://help.salesforce.com/s/articleView?id=xcloud.cms_channel_enable_cdn.htm&type=5&language=en_US) #### See Also - [Import and Export Commerce Data](https://help.salesforce.com/s/articleView?id=commerce.comm_data_import.htm&release=264.0.0&type=5 "Import data, including products, product variations, and images, by uploading a CSV file. Perform other tasks while the import runs asynchronously. You can import up to 10,000 products with nine images each per session, though import times may increase with more images. We recommend using the CSV file import process, but for large imports, use Data Loader. You can also export data for up to 300,000 products to a CSV file.") # Default Object CRUD Permissions for B2B Commerce You can perform Create, Read, Update, and Delete (CRUD) operations on objects in your org depending on your permissions. Users assigned to preconfigured permission sets receive CRUD permissions according to their persona’s required functionality. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) You can customize permission sets by cloning them and modifying the object settings. However, the CRUD permissions that are editable in a cloned permission set can differ from the permissions granted in the preconfigured permission set. In such cases, this table lists both the default and editable CRUD permissions.
Entity Buyer (B2B stores only) Buyer Manager (B2B stores only) Shopper (D2C stores only) Merchandiser Commerce Admin
Account R R R CRUD CRUD
BackgroundOperation — R R
  • Default: —
  • Editable: R
  • Default: —
  • Editable: R
BuyerAccount R R — CRUD CRUD
BuyerGroup — — — CRUD CRUD
BuyerGroupPricebook — — — CRUD CRUD
CardPaymentMethod — R — R R
CommerceEntitlementPolicy — — — CRUD CRUD
ConsumptionSchedule R R — — —
Contact RU CRUD RU CRUD CRUD
ContactPointAddress CRUD CRUD CRUD CRUD CRUD
Coupon — — — CRUD CRUD
ElectronicMediaGroup R R R CRUD CRUD
Image R R R — —
Individual R R R R R
Location R R R CRUD CRUD
Order CRUD CRUD R R R
OrderDeliveryMethod R R R CRUD CRUD
OrderSummary R R R R R
PaymentAuthorization — R — R R
PaymentGateway — — — CRUD CRUD
PaymentGatewayLog — — — R R
PaymentGroup — — — R R
PriceAdjustmentSchedule — — — CRUD CRUD
Pricebook2 (Label: Price Books) R R R CRUD CRUD
Product2 (Label: Products) R R R CRUD CRUD
ProductCatalog (Label: Catalogs) R R R CRUD CRUD
ProductCategory (Label: Categories) R R R CRUD CRUD
ProductCategoryProduct R R R CRUD CRUD
Promotion — — — CRUD CRUD
PromotionMarketSegment — — — CRUD CRUD
PromotionQualifier — — — CRUD CRUD
PromotionSegment — — — CRUD CRUD
PromotionTarget — — — CRUD CRUD
PromotionTier — — — CRUD CRUD
UserExternalCredential — — CRUD
  • Default: —
  • Editable: CRUD
  • Default: —
  • Editable: CRUD
WebCart (Label: Carts) CRUD CRUD R R R
WebStore (Label: Stores) R R R RU CRUD
WebStoreBuyerGroup (Label: Store Buyer Groups) — — — CRUD CRUD
WebStoreCatalog (Label: Store Catalogs) R R R CRUD CRUD
WebStorePricebook (Label: Store Pricebooks) — — — CRUD CRUD
Wishlist CRUD CRUD CRUD CRUD CRUD
#### See Also - [B2B Commerce Permission Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_perm_sets.htm&release=264.0.0&type=5 "Permissions determine the information users can access and the actions they can take when configuring or shopping at a store. Salesforce provides preconfigured permission sets, which define multiple permissions for internal and external users.") - [Preconfigured Permission Sets for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_preconfigured_perm_sets.htm&release=264.0.0&type=5 "Preconfigured permission sets provide B2B users, from customers to admins, with access to required features and functionality. An admin can customize a preconfigured permission set by cloning it and then modifying the individual permissions in the permission set.") # Define a Discount for a B2B Store from Within the Guided Workflow Set a target type and an adjustment type, and specify the amount to discount. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before beginning these steps - Complete the steps in [Create a Promotion Using the Guided Workflow](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_template.htm&release=264.0.0&type=5 "Draft a promotion with products and categories from your B2B store.") or [Create a Promotion Using the Guided Workflow with Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_smart.htm&release=264.0.0&type=5 "Draft a promotion for your B2B store with just a few clicks by using Einstein and Commerce data. Quickly create basic and advanced promotions using natural language instructions and generative AI."). - Make sure that the correct quantity rule is set. If quantity rules are enabled, the specified increment is treated as 1 unit. For example, if you receive a US$1 discount for every 1 unit of something and the quantity rule is set to 10, you receive a $1 discount for every 10 units. See [Create a Purchase Quantity Rule for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_products_qr_create_assign.htm&language=en_US). 1. In the promotion’s guided workflow, next to the discount section, click **Add**. 2. Select a target type to specify what you want to apply the discount to. - Product—Apply a discount to individual products. You can discount up to 25 products. You can discount all variations or later use variation attributes to restrict the discount to specific variations of the variation base products. - Category—Apply a discount to a set of products in a catalog. You can discount up to 25 categories. You can discount all variations or later use variation attributes to restrict the discount to specific variations of the variation base products. - Transaction—Apply a discount to the total order amount. - Shipping—Apply a discount to all shipping methods on the order. A shipping promotion is applied to all the shipping methods that the customer is eligible for. To use a shipping promotion, your store must have the Cart Calculate API enabled. See [Enable and Disable the Cart Calculate API for a Webstore](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html#enable-and-disable-the-cart-calculate-api-for-a-webstore). - Shipping Rate—Apply a discount to an individual shipping method on the order. You can discount up to 25 shipping rates. To use a shipping rate promotion, your store must have the Cart Calculate API enabled. See [Enable and Disable the Cart Calculate API for a Webstore](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html#enable-and-disable-the-cart-calculate-api-for-a-webstore). 3. Select an adjustment type to specify which method to use for the discount. - Fixed Amount Off Line Item Total—Deducts an amount off a product or cost shipping line item. - Fixed Amount Off Transaction—Deducts a monetary amount off the entire product amount for a transaction. This option is available only when you use the Transaction target type. - Fixed Amount Off Unit Price—Deducts an amount off each quantity of a product line item. - Fixed Price—Specifies a promotional price for a product, product category, shipping, or shipping rate. - Percentage Discount—Deducts a specified percent from the price of a product, product category, transaction, shipping, or shipping rate. - Total Fixed Price—Specifies a promotional price for a set of products or product categories. - Bonus Product—Specifies a bonus product to add to an order at no additional cost. You can target only one simple or variation product. The product can be purchasable or non-purchasable. 4. Enter the amount of the adjustment. If you enter a monetary amount and your account is multicurrency, choose a currency. 5. (Optional) Enter a quantity limit to restrict the number of products that can receive the discount. The default is unlimited. You can’t set a quantity limit for shipping or shipping rates. 6. (Optional) To require that a minimum number of items be purchased to qualify, select **Minimum Items**. If Minimum Items isn’t selected, the promotion is applied until the specified quantity limit is reached. 7. (Optional) To add more conditions to the discount, select **Apply Rules**. You can’t apply rules for shipping or shipping rates. - Any Condition Is Met—The promotion is applied if any condition is met. For instance, to create a discount for shoes or pants, add two discount target types with the respective targets. If the customer’s cart has either shoes or pants, the discount is applied. - All Conditions Are Met—The promotion is applied only if all conditions are met. For instance, to create a discount for shoes and pants, add two discount target types with the respective targets. If the customer’s cart has both products, the discount is applied. Adding only the shoes or pants doesn’t trigger the discount. 8. Click **Add Rule**. - Target Type–The type of item to apply the discount to. For instance, to apply a discount to shoes, select Product as the rule’s target type. If the main target type is a parent product or a category, you can select an attribute as the rule’s target type. - Operator Type–The condition that determines which item within the target type is or isn’t eligible for a discount. For instance, to apply a discount to shoes, select Product as the rule’s target type, select **Is** as the operator type, and choose shoes as the target. - Target–The specific item or attribute value to apply the discount to‌. For example, if you select Product as the rule’s target type, you can enter shoes as the target. If the target type is an attribute, such as color, you can select a value, such as red, as the target. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Product search supports only product names. Searching by SKU, product ID, or custom attributes isn't supported. 9. Save your work. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example To encourage your US customers to stock up on healthy snacks, you want to provide a 10% discount on all energy bars in your store. - For Target Type, select **Product**. - For Target, select **Energy Bar**. - For Adjustment Type, select **Percentage Discount**. - For Currency ISO Code, select **USD - U.S. Dollar**. - For Adjustment Percent, enter **10**. # Define an Alternative Payment Method for Order Management You can define a payment method other than a credit card or digital wallet. 1. Create a record type for the alternative payment method object that represents the payment method, for example, Square. For more information, see [Create Record Types](https://help.salesforce.com/s/articleView?id=platform.creating_record_types.htm&type=5&language=en_US). 2. Create a [GtwyProvPaymentMethodType](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_gtwyprovpaymentmethodtype.htm) record. You can’t create a GtwyProvPaymentMethodType record using the UI. Insert the record using a tool, such as Postman, or Apex code. The API name of the object is GtwyProvPaymentMethodType, at the URL /services/data/version/sobjects/GtwyProvPaymentMethodType. 3. Set the GtwyProvPaymentMethodType fields.
CommentsDescription optional.
Developer NameThe unique API name of the record.
Master LabelA human-readable name for the record.
Gateway Provider Payment Method TypeThe name of the payment method in the storefront. This value must exactly match the payment method ID used in B2C Commerce.
Payment Gateway Provider IDThe name of the payment method in the storefront. This value must exactly match the payment method ID used in B2C Commerce.
 A reference to the payment gateway provider record associated with the payment processor for the payment method.
Payment Method TypeSelect AlternativePaymentMethod. To use an alternative payment method, first create a corresponding Record Type record.
Record Type IDFor an alternative payment method, this value is a reference to the record type record.
``` { "DeveloperName" : "BankTransfer" "MasterLabel" : "Bank Transfer", "GtwyProviderPaymentMethodType" : "directBanking", "PaymentGatewayProviderId" : "0cJaa0000000001E67", "PaymentMethodType" : "AlternativePaymentMethod", “RecordTypeId” : "012aa000000008A34F" } ``` Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid affecting customer implementations. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Define An SMTP Server For Customer and Platform Email Delivery With the 21.8 Release, you can now use a third-party mail server to send emails from Commerce Cloud to your shoppers and site administrators. Why: Use this feature to manage the commerce cloud emails from any of your existing SMTP mail services. How: You can set the configuration to use the server for customer and platform email or customer email only. #### See Also - [Business Manager Email Configurator](https://documentation.b2c.commercecloud.salesforce.com/DOC2/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_business_manager_email_configurator.html) # Define Export Orders Field Mappings Review the available field names and descriptions for Point of Sale export order field mappings. Use this information to understand the purpose of each field and how it relates to your exported order data. Knowing the available fields allows you to create effective and accurate export mappings for your retail operations. No fields are required. For more information on exports, see [Transaction Log (TLog) Export](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog.htm&language=en_US). For CSV and TSV TLog exports, [Field Mappings](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5 "Set Field Mappings in Point of Sale to transform data from external sources into the format that Point of Sale uses. Field mappings use transformations and regular expressions. When you import data feeds, the field mappings ensure that your data is accurate and consistent. This consistency helps to streamline your retail operations.") are required to be set up in order to export properly. If not set up, the Order Export job will fail. To set up the field mappings for Export Order: 1. In CMS, go to **Feeds** | **Field Mappings** | **Export Orders**. 2. Map the fields.
Field NameDescription
Order_OrderIDThe ID of the order.
Order_EmailIDThe email of the order.
Order_SubTotalThe subtotal of the order.
Order_TaxThe tax applied to the order.
Order_TaxRateThe tax rate applied to the order.
Order_TotalThe total of the order.
OrderPaymentDetails_CaptureTokenThe capture token of the payment details.
OrderPaymentDetails_RequestIdThe request ID of the payment details.
OrderPaymentDetails_FirstNameThe first name of the payment details.
OrderPaymentDetails_LastNameThe last name of the payment details.
OrderPaymentDetails_AddressLine1The first line address of the payment details.
OrderPaymentDetails_AddressLine2The second line address of the payment details.
OrderPaymentDetails_CityThe address city of the payment details.
OrderPaymentDetails_StateThe address state of the payment details.
OrderPaymentDetails_PostalCodeThe postal code of the payment details.
Order_PhoneNumberThe phone number of the order.
OrderDetail_FirstNameThe customer's first name.
OrderDetail_LastNameThe customer's last name.
OrderDetail_AddressLine1The customer's line 1 address.
OrderDetail_AddressLine2The customer's line 2 address.
OrderDetail_CityThe customer's address city.
OrderDetail_StateThe customer's address state.
OrderDetail_PostalCodeThe customer's postal code.
OrderDetail_CountryThe customer's country.
OrderDetail_ProductIDThe ID of the product in the order.
OrderDetail_QuantityThe quantity of the items in the order.
OrderDetail_PriceThe price of the order.
OrderDetail_ItemDiscountThe item discount of the order.
OrderDetail_ItemSubTotalThe item subtotal of the order.
OrderDetail_ItemTaxRateThe item tax rate of the order.
OrderDetail_ItemTaxThe item tax of the order.
Order_OrderDateThe date of the order.
OrderDetail_TlogCustomProductAttributesThe TLog custom product attributes.
Order_StoreIDThe store ID where the order was placed.
OrderDetail_ProductNameThe product's name in the order.
OrderDetail_SizeThe size of the product.
Order_PaymentSourceThe payment source.
OrderPaymentDetails_PaymentMethodThe payment method.
Order_StatusThe order status.
Order_TransactionDiscountReasonCodeThe reason code of the order level transaction discount.
OrderDetail_PriceOverrideReasonCodeThe reason code for item level transaction discount.
Order_StoreAssociateIDThe ID of the store associate.
OrderPaymentDetails_CardNumberThe card number used for payment.
OrderPaymentDetails_CardTypeThe card type used for payment (VISA, Master, etc.)
OrderDetail_GTINThe GTIN number of the order.
OrderDetail_SerialNumberThe serial number of the order.
OrderDetail_OrderItemIDThe product ID in the order.
OrderDetail_VariantGroupIDThe variant group ID of the product in the order.
Order_NoReceiptReturnsProxy order is created as part as no receipt returns where the original order is not available.
OrderDetail_ItemStatusThe item status.
OrderRefund_ReturnedDateThe item return date.
OrderPaymentDetails_AmountAuthorizedThe amount authorized at the time of payment.
OrderPaymentDetails_AuthorizationDateThe authorization date at the time of payment.
OrderPaymentDetails_TransactionIDThe transaction ID.
OrderPaymentDetails_PaymentIDThe payment ID.
OrderPaymentDetails_TotalAmountCarriedOverForExchangeThe total amount carried over during exchange.
OrderPaymentDetails_TotalRefundedAmountThe total refunded amount.
OrderPaymentDetails_CopiedFromOrderIDIn case of an exchange, this field will have a reference to the original order ID from which this particular payment was applied.
TaxExemptionThe tax exemption.
TaxExemptionCardNumberThe card number used for tax exemption.
TaxExemptionCustomerNameThe customer's name for tax exemption.
TaxExemptionNotesThe tax exemption notes.
3. Click **Save**. # Define Users to Receive Security Emails Keep your organization secure by defining contact users for security emails. Assigned users receive an email whenever a partner account with administrative permissions is added to your organization. Partner accounts with admin permissions receive admin permissions for all organizations they're part of. For security reasons, we recommend creating a new, non-admin account for users with existing admin permissions. **Where:** Account Manager **Who:** Account Manager administrators **How:** For information on setting up security email lists, see [Select Users for Security Notification Emails](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_maintain_security_contact_email.htm&type=5&language=en_US) in the Infocenter. For information on removing partner accounts, see [Manage Access of Partner Accounts](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_manage_partner_access.htm&type=5&language=en_US) in the Infocenter. # Delegate User Management with the User Administrator Role Secure your organization by granting the new User Administrator role to support staff who manage user accounts. This role permits users to add, invite, and delete users, reset passwords, and manage organization assignments without full administrative access. This least-privilege approach improves security and compliance by only giving users the permissions necessary for their specific duties. **Where:** This change applies to Account Manager for B2C Commerce. **How:** In Account Manager, assign the User Administrator role to users who manage user accounts and organization assignments. #### See Also - [_Salesforce Help_: Edit a User Account in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_edit_user.htm&language=en_US) - [_Salesforce Help_: Roles Managed in Account Manager](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_roles.htm&language=en_US) # Delete a Black Book Remove a preferred customer list in the POS app 1. Tap the **Black Book deep link** in the app. 2. Tap on a black book. 3. Tap the trash icon and then confirm. ![A popup window in the POS app asking you to confirm that you want to delete the black book.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_delete_black_book.png) # Delete a Location Use the Omnichannel Inventory Console to delete a fulfillment location when you no longer use it to fulfill orders. When you delete a location or location group, its inventory reservations are also deleted. ### Required Editions
View supported editions.
User Permissions Needed
To delete a location. Delete on Locations
1. From the Navigation bar, open the Locations list view page. 2. For the location that you want to remove, click ![Down arrow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/inv_omnichannel_inventory/images/inv_arrow.png) and select **Delete**. 3. Click **Delete**. 4. Commit your changes. #### See Also - [Manage Locations](https://help.salesforce.com/s/articleView?id=commerce.inv_locations.htm&release=264.0.0&type=5 "Locations represent physical locations—distribution centers, warehouses, or retail stores—where you have inventory available for fulfilling orders. Manage them using the Omnichannel Inventory Console.") # Delete a Location Group Use the Omnichannel Inventory Console to delete a location group if you no longer use the location group to aggregate inventory availability. When you delete a location or location group, its inventory reservations are also deleted. ### Required Editions
View supported editions.
User Permissions Needed
To delete a location group. Delete on Location Groups
1. From the Navigation bar, open the Location Groups list view page. 2. For the location group that you want to remove, click ![Down arrow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/inv_omnichannel_inventory/images/inv_arrow.png) and select **Delete**. 3. Click **Delete**. 4. Commit your changes. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_important.png) Important Don’t upload inventory availability data while committed changes are pending. Before uploading availability data, verify that no location group changes are in progress by checking the async operation logs. #### See Also - [Manage Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_location_groups.htm&release=264.0.0&type=5 "Location groups represent sets of related locations. Assign locations to a location group. A location group provides an aggregate view of inventory availability across the locations in the group. Manage them using the Omnichannel Inventory Console.") # Delete an Entitlement Policy Disable or delete an entitlement policy through the Commerce app. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Disable an Entitlement Policy You can disable the default entitlement policy or any additional entitlement policies that you created. 1. In the App launcher, find and select **Entitlement Policies**. 2. On the Entitlement Policies page, select an entitlement policy from the list. 3. Under Policy Details, click any ![Edit icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_pencilicon.png). 4. Deselect the **Active** checkbox. 5. Save your changes. 6. Update the search index. Changes appear in the store after the search index rebuild. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&language=en_US). ## Delete an Entitlement Policy You canʼt delete the default entitlement policy, but you can delete any additional entitlement policies that you created. 1. In the App Launcher, find and select **Entitlement Policies**. 2. On the Entitlement Policies page, select an entitlement policy from the list. 3. Click **Delete**. Deleting an entitlement policy also deletes the associated products and buyer groups. 4. Confirm that you want to delete the entitlement policy. 5. Update the search index. Changes appear in the store after the search index rebuild. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&language=en_US). #### See Also - [View Your Store’s Buyer Groups and Entitlement Policies](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups_b2c.htm&release=264.0.0&type=5 "Make sure that your customers have access to the correct products in your store by checking your buyer groups and associated entitlement policies. A B2B store can have multiple buyer groups and markets. You can also assign products to multiple entitlement policies and associate the policies to different buyer groups to determine which customers can access the products in the store.") # Delete Point of Sale CMS Users Delete users directly within Point of Sale CMS. Non-CMS Admin roles can be deleted directly within the CMS. For CMS Admin roles, you can either contact Customer Support or change the user's role to another role to proceed with deletion. Users with non-CMS Admin roles can be deleted directly within the CMS. However, deleting users with a CMS Admin role requires a different process. To delete a non-CMS Admin user: 1. Go to the **Users** list page. 2. Search for the user by their username, time zone, or role. 3. Select **delete** next to the user. You’ll be asked to confirm the deletion. To delete a CMS Admin user, you can either: - Reach out to your CSM to submit a request for user deletion through our internal system. - Switch the user’s role from CMS Admin to another role, after which the user can be deleted. # Deleted Impex and Temp Files No Longer Being Retained in Trash Folders for 30 Days As previously announced, updated file retention rules are applied to files in the /Logs, /Securitylogs, /Impex, and /Temp folders. During the transition period to these new rules, some instances used /Impex/\_trash and /Temp/\_trash folders to retain deleted files for 30 days. The transition period ends with the 21.2 release for POD sandbox and primary instances. /Impex and /Temp files are now deleted without first being moved to the \_trash folders. New retention policies: - /Logs: Files are compressed and moved into a subfolder log\_archive after three days. Files are deleted after 30 days. - /Securitylogs: Files are deleted after 90 days. - /Impex and /Temp: Files are deleted after 30 days. Use the space in these folders carefully. Delete unnecessary files as soon as possible. To avoid performance and stability issues, you can’t store more than 100,000 files in a folder. If there are more than 100,000 files in a folder, files are deleted starting with the oldest first. Files are deleted even if the files are newer than the retention period for the folder. The 100,000 limit applies to files in a single folder, not across subfolders. #### See Also - [Log File Types](https://documentation.b2c.commercecloud.salesforce.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2Fcontent%2Fb2c_commerce%2Ftopics%2Fsite_development%2Fb2c_understanding_log_files.html) # Deleting Information from Restricted Data Fields Because some restricted fields can contain customer personal information, they’re subject to data privacy and protection policies. Compliance can require a user with appropriate permissions to mask or delete their values. Only a Salesforce admin or a user with the Edit Activated Orders permission can modify the restricted fields. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Order Management automates financial field changes to ensure that users don’t make changes that have a legal impact on bookings or invoices. You can’t manually change financial fields, such as tax or amount, on records related to managed orders, regardless of permissions or order status.
Object Restricted Fields

Fulfillment Order Product

  • Description

Order Adjustment Group Summary

  • Description

Order Delivery Group Summary

  • Deliver To Address
  • Delivery Instructions
  • Description
  • Email Address
  • Gift Message
  • Name
  • Phone Number

Order Payment Summary

  • Full Name
  • Last Payment Gateway Message

Order Product Adjustment Line Item Summary

  • Description

Order Product Summary

  • Description

Order Summary

  • Billing Address
  • Billing Email Address
  • Billing Phone Number
  • Description
  • Order Summary Number
#### See Also - [Data Protection and Privacy](https://help.salesforce.com/articleView?id=data_protection_and_privacy.htm&language=en_US) - [Considerations for Deleting Order Management Records](https://help.salesforce.com/s/articleView?id=commerce.om_considerations_deleting_order_management_records.htm&release=264.0.0&type=5 "Data protection and privacy policies can require deletion of records used in Order Management. Because many records share complex relationships, the order in which you delete them is important. If you delete a record before deleting another record that references it, the reference can cause errors.") # Deleting Order Management Records Certain situations require that you delete Order Management records. For example, some records can contain customer personal information and are subject to data protection and privacy regulations. To maintain data integrity, before you delete records consider their dependencies and access restrictions on some of their data. - **[Considerations for Deleting Order Management Records](https://help.salesforce.com/s/articleView?id=commerce.om_considerations_deleting_order_management_records.htm&release=264.0.0&type=5)** Data protection and privacy policies can require deletion of records used in Order Management. Because many records share complex relationships, the order in which you delete them is important. If you delete a record before deleting another record that references it, the reference can cause errors. - **[Deleting Information from Restricted Data Fields](https://help.salesforce.com/s/articleView?id=commerce.om_deleting_information_restricted_data_fields.htm&release=264.0.0&type=5)** Because some restricted fields can contain customer personal information, they’re subject to data privacy and protection policies. Compliance can require a user with appropriate permissions to mask or delete their values. Only a Salesforce admin or a user with the Edit Activated Orders permission can modify the restricted fields. # Delivery Estimation Prerequisites After you install, configure, and turn on both Order Management and Omnichannel Inventory, there are a few prerequisites for Delivery Estimations. ### Required Editions
View supported editions.
- Set up at least one sales channel or store and location group. - Align the external references of your locations and shipping methods across products. For example, if your location’s external reference is SF1 in Order Management, set it to SF1 in both Commerce Delivery Services and B2C Commerce. - Add time zone and country code information to location objects. - [Set up](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_set_up_shipping.htm&release=264.0.0&type=5 "Order Management supports both managed and static shipping carriers. The managed shipping carriers are Canadian Post, FedEx, Royal Mail, UPS, and USPS. A shipping carrier method is a specific method that transports a product or order to its destination. For example, an org that uses the shipping carrier FedEx has the shipping carrier methods FedEx Overnight, FedEx Priority, and FedEx Ground.") at least one managed shipping carrier and method. - Assign at least one of these permission sets to each user. - Order Management Operations Manager—Complete access to objects and APIs. - Order Management Agent—View access only. - Order Management Shopper—API access only. - Turn on **Delivery Estimation Service** at **Setup** | **Feature Settings** | **Order Management** | **Setup**. - (Optional) On the setup page, in the quick find box, go to **Order Management** | **Sharing Settings**. Set Delivery Estimation Setup to Public Read/Write for both Default Internal and Default External access. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note This step lets users sync a delivery estimation that they didn’t create. Without this step, only a system admin or the user who created the delivery estimation can sync it. - (Optional) On the setup page, in the quick find box, go to **Omnichannel Inventory** and enable Omnichannel Inventory. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note This step lets users select a routing logic other than static. Next step: [Configure Commerce Delivery Service for B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_configure_commerce_delivery_service.htm&release=264.0.0&type=5 "Configure the Commerce Delivery Service (CDS) Commerce App to forecast delivery dates using your fulfillment locations, real-time inventory, processing and cutoff times, and carrier transit times. The estimated delivery dates appear on the Checkout and Product Detail pages on your Storefront Next site.") (B2C Commerce only) #### See Also - [Delivery Estimations for Order Management Overview](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_overview.htm&release=264.0.0&type=5 "Provide customers with accurate delivery times by showing delivery dates on your store’s product detail and checkout pages.") # Delivery Estimations for Order Management Overview Provide customers with accurate delivery times by showing delivery dates on your store’s product detail and checkout pages. Delivery Estimations work with B2C Commerce only. To use Delivery Estimations, you need an Order Management Growth license and the Omnichannel Inventory license. Order Management supports Canadian Post, FedEx, Royal Mail, UPS, and USPS as managed shipping carriers, which get shipping information directly from the carrier. This direct shipping information is available only in the USA, UK, and Canada. For other shipping carriers and countries, Order Management uses manually entered, static shipping times. Order Management gathers shipping data through one of two methods. It can use the static delivery data that is entered directly into your org during setup or it can use standard routing. Standard routing uses live data sent from supported shipping carriers. When processing data through standard routing, Order Management uses approximate postal or ZIP codes. A single postal code is used to represent itself and all adjacent codes. This ensures accurate estimations while maintaining acceptable processing speeds. - **[Delivery Estimation Prerequisites](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_prereqs.htm&release=264.0.0&type=5)** After you install, configure, and turn on both Order Management and Omnichannel Inventory, there are a few prerequisites for Delivery Estimations. - **[Configure Commerce Delivery Service for B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_configure_commerce_delivery_service.htm&release=264.0.0&type=5)** Configure the Commerce Delivery Service (CDS) Commerce App to forecast delivery dates using your fulfillment locations, real-time inventory, processing and cutoff times, and carrier transit times. The estimated delivery dates appear on the Checkout and Product Detail pages on your Storefront Next site. - **[Set Up a Delivery Estimation](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_create_estimation.htm&release=264.0.0&type=5)** A delivery estimation contains information about a store and sales channel, including hours, processing times, and whether the store or sales channel support Buy Online Pickup In Store (BOPIS). The delivery estimation sets processing and store hour information for an entire location group. You can change this information for individual locations on the Location Assignment tab. - **[Enable Buy Online Pick Up in Store (BOPIS)](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_enable_bopis.htm&release=264.0.0&type=5)** The Buy Online Pick up In Store (BOPIS) feature increases flexibility and gives shoppers an option to get orders sooner. - **[Connect the Delivery Estimation Service to B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_connect_to_commerce.htm&release=264.0.0&type=5)** Create a B2C Commerce connection with Order Management so that the B2C instance can communicate with the Commerce Delivery Service. - **[Configure Delivery Estimation for a B2C Store](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_config_for_b2c_store.htm&release=264.0.0&type=5)** Connect the Commerce Delivery Service to your B2C store and implement the delivery estimation service for checkout. Use this section as a guideline only. Your configuration may differ. - **[Enable and Sync a Delivery Estimation](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_sync_to_cds.htm&release=264.0.0&type=5)** After you’ve configured estimations and shipping, and you’ve connected Commerce Delivery Services to B2C Commerce as necessary, enable your delivery estimation. - **[Configure Processing Times for Order Management Delivery Estimations](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_processing_time.htm&release=264.0.0&type=5)** Fulfillment times can vary depending on the product and the location fulfilling the order. Define processing times at the location level, category level, item level, or a combination. This granular level of processing data provides more accurate delivery estimates. - **[Preview a Delivery Estimation](https://help.salesforce.com/s/articleView?id=commerce.om_de_preview.htm&release=264.0.0&type=5)** After you configure your delivery estimations, use the preview function to see how long it could take to ship and fulfill various items across your org. You can also preview when an order will arrive when a shopper creates an Buy Online Pickup in Store (BOPIS) order. #### See Also - [Preview a Delivery Estimation](https://help.salesforce.com/s/articleView?id=commerce.om_de_preview.htm&release=264.0.0&type=5 "After you configure your delivery estimations, use the preview function to see how long it could take to ship and fulfill various items across your org. You can also preview when an order will arrive when a shopper creates an Buy Online Pickup in Store (BOPIS) order.") - [Commerce Delivery Service and Order Fulfillment](https://help.salesforce.com/s/articleView?id=commerce.om_cds_overview.htm&release=264.0.0&type=5 "Configure fulfillment from start to finish by using Commerce Delivery Service (CDS).") # Deploy PWA Kit Storefronts with the Managed Runtime The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don’t have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. **Where:** Available to all Salesforce B2C Commerce customers. **When:** November 2021 **Why:** Features of Managed Runtime 21.11 include: - Redirect Management: Redirects can now be managed per environment via the [Runtime Admin](https://runtime.commercecloud.com/) site, enabling non-technical team members to create, manage, and deploy URL redirects. - Legacy Mobify Project Management: Legacy projects can now be managed via the [Runtime Admin](https://runtime.commercecloud.com/) tool, providing a single place to manage Commerce Cloud PWA Kit and Mobify PWA projects. **How:** Users must have either the Commerce Runtime Manager User or Commerce Runtime Manager Admin role in Account Manager. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide) site. # Deploy PWA Kit Storefronts with the Managed Runtime The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don't have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. **Where:** Available to all Salesforce B2C Commerce customers. **When:** November 2022 **Why:** Features of Managed Runtime 22.11 include: **Log Tailing via the Command Line** Developers can now view logs for a given environment in real time. Now you can more quickly investigate issues that only appear during server-side rendering when your application is deployed to Managed Runtime. Log Tailing is available via the [pwa-kit-dev](https://www.npmjs.com/package/pwa-kit-dev) module, starting with version 2.4.0 of PWA Kit, either as part of a PWA Kit project or as a standalone command. Get started by viewing the log tailing help: `npx pwa-kit-dev tail-logs --help` See the [developer docs](https://b2c-commerce.herokuapp.com/docs/commerce/pwa-kit-managed-runtime/guide/debugging.html#tail-logs-on-managed-runtime) for more information on using the log tailing commands. **Trust Status Updates** Managed Runtime is now included in the [B2C Commerce Status](https://status.salesforce.com/products/B2C_Commerce_Cloud) site, where you can see any active or historical incident for the admin or storefront regions of Managed Runtime. Upcoming maintenance windows for Managed Runtime are now communicated via the B2C Commerce Status site. **Client-Side Redirect Access** Any redirects configured for an environment within Managed Runtime can now be accessed as a JSON representation via the `/mobify/redirects//FROM_URL` path of any environment. The JSON representation of the redirect will allow the parsing of redirects for a given `FROM_URL` so that client-side logic can execute redirects based on the same rules that drive server-side redirects. **Increased Deployment Bundle Size** The maximum allowed size of deployment bundles is increased from 150 MB to 400 MB, enabling projects with larger assets to be successfully deployed. For more details on deployment bundle limits, see the [developer docs](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/pushing-and-deploying-bundles.html). **Node 12 Deprecation** Deployment bundles that are using Node 12 can no longer be deployed because Node 12 no longer receives security updates. To continue deploying your project, you must migrate it to Node 14.17 or later. Uploading bundles are now aware of Node deprecations and will: - Prevent uploading of bundles using a deprecated version of Node. - Warn when uploading bundles using a version of Node with an upcoming deprecation date. # Deploy PWA Kit Storefronts with the Managed Runtime The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don’t have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. **Where:** Available to all Salesforce B2C Commerce customers. **When:** April 2022 **Why:** Features of Managed Runtime 22.4 include: **Organization Environment Quotas** Customer and Partner organizations in Managed Runtime have a soft quota introduced to limit deployment failures due to resource contention. Customers will start with 100 overall environments, of which 10 can be set as Production environments. Partners will start with 10 overall environments. These soft quotas can be raised via submitting a [support case](https://help.salesforce.com/s/?language=en_US). When your organization gets close to either quota, a warning is shown when creating or updating environments. When the environment quota is reached, your team can’t create new environments until either the quota is raised or older environments are deleted. **Runtime Admin: Managing Project Users** Adding users to projects in [Runtime Admin](https://runtime.commercecloud.com/) has been streamlined to prevent common errors. When looking for users to add to a given project, a typeahead search is now available to get a list of users from the current organization to add to a project. Multiple users can now be added at the same time, allowing project admins to add users faster when managing project permissions. **Runtime Admin: Last Used Organization** Runtime Admin will now land you on the organization you last used, saving valuable clicks for customers and partners who are part of multiple organizations. **Regional Access Restrictions** In accordance with US export controls and Salesforce policies [highlighted on our trust site](https://trust.salesforce.com/en/blocked/), access to Managed Runtime and storefronts deployed to Managed Runtime are restricted for certain regions. # Deploy PWA Kit Storefronts with the Managed Runtime The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don't have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. **Where:** Available to all Salesforce B2C Commerce customers. **When:** August 2022 **Why:** Features of Managed Runtime 22.8 include: **Production Environments** Teams can now use the [Managed Runtime API](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references?meta=managed-runtime-api:projects_target_partial_update) or [Runtime Admin](https://runtime.commercecloud.com/) to mark any environment as production, enabling additional monitoring, proactive alerts, and deletion prevention. (Environments can be marked as production as long as the organization limit for production environments hasn’t been reached.) **Node 16 Support** Managed Runtime now supports the deployment of applications based on Node 16. Based on the [Node LTS support schedule](https://nodejs.org/en/about/releases/), we recommend that customers currently running Node 12 apps upgrade to Node 16. **Runtime Admin: Last Used Organization** Runtime Admin lands you on the organization you last used, saving valuable clicks for customers and partners who are part of multiple organizations. **HIPAA Compliance** Managed Runtime is now [HIPAA](https://compliance.salesforce.com/en/hipaa) compliant and can be used by customers looking to deploy healthcare applications. # Deploy PWA Kit Storefronts with the Managed Runtime (Generally Available) The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don’t have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. **Where:** Available to all Salesforce B2C Commerce customers. **When:** September 2021 **How:** Users must have either the Commerce Runtime Manager User or Commerce Runtime Manager Admin role in Account Manager. To get started, see the documentation on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide) site. The monitored quota is 200 million page views per year across all projects on the Managed Runtime. You can have up to 100 active environments. To request more than 100 environments, contact support. The underlying APIs don’t allow public clients, like PWA Kit, to reset passwords and look up orders for guest shoppers. Projects must use a custom API to handle guest password reset verification logic and email sending and guest order lookup. # Design a Store in the Commerce Website Design Workspace Use the Website Design workspace to add basic design elements to your store without leaving the Commerce app. Add your logo and set fonts, colors, and button styles. You can also modify the text, images, and header layout. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Website Design**. To do more advanced design changes, such as configuring store components, pages, or navigation, click **Experience Builder** (1). ![Experience Builder button in website design workspace](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/webdesign_exp_builder.png) 3. On the Styles tab, make your changes. The changes that you make in Styles affect all pages in the store. - To import the colors and styles from an existing site, click **Add Your Brand**. - To adjust the look of your store manually, click a style option. The CMS Workspace shows the workspace where image files, including the logo file, are stored. When you create a store, a CMS workspace and a public channel to that workspace are created. If that workspace is the only one associated with your store, that workspace is shown in the CMS Workspace section and you can’t change it. If you have other CMS workspaces associated with the store, you can select which one to use from the dropdown. 4. To change the text or images on a page, use the dropdown to select the page, and then on the Content tab, select a page section and make your changes. 5. To change the header layout, click **Header**, and then click **Change Layout**. 6. To preview your store, click **Save**, and then click **Preview**. 7. To publish your store, go back to the Website Design, and click **Publish**. 8. To leave the Website Design workspace, click **Exit**. #### See Also - [Use Experience Builder to Design a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_experience_builder.htm&release=264.0.0&type=5 "Use Experience Builder for advanced design tasks, such as configuring store components, pages, or navigation. With Experience Builder, you can make the Commerce Store template yours by dragging components onto your page and customizing properties. Use the Commerce Store template to create B2B stores. You can add images and styles to your stores to create a unique experience for your customers. You can also add markup to the head of every page.") # Design Layouts in Point of Sale CMS Customize the POS experience by creating app configs, managing layouts, and applying layout templates. You can also configure receipts by using metadata, create deep links to key actions, and personalize the in-store experience with quizzes and UX rules. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In 2024, Salesforce acquired PredictSpring, a provider of modern retail point-of-sale (POS) software built natively in the cloud. PredictSpring was renamed Retail Cloud and is now called Point of Sale. You may still see references to PredictSpring or Retail Cloud in the Point of Sale app and in our documentation. - **[Create App Configs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs.htm&release=264.0.0&type=5)** Tailor POS appearance and behavior for diverse retail scenarios. App Configs enable custom configurations for different use cases or segments. Retailers gain flexibility and control to optimize user experience and operational efficiency across devices, roles, and locations. - **[Copy App Configs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_copy.htm&release=264.0.0&type=5)** Copy and compare Point of Sale artifacts and app configurations. - **[Manage Layouts in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage.htm&release=264.0.0&type=5)** Layouts offer flexible and modular design options, allowing customers to seamlessly customize their digital experiences for various needs. Easily manage and customize your layout with powerful editing tools to add, insert, resize, and delete rows and cells. Enhance user experience with features like pagination, app config overrides, and snap-to-grid alignment for tailored and efficient solutions. - **[Implement Layout Templates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates.htm&release=264.0.0&type=5)** Tailor Point of Sale chat, clienteling, and review layouts to enhance user interaction and gather valuable feedback. Retail professionals can also personalize email templates, login screens, order confirmations, and product display pages to create a seamless and branded customer journey. Streamline processes like password recovery and new customer sign-ups, ultimately boosting customer satisfaction and loyalty. - **[Customize Layout Settings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings.htm&release=264.0.0&type=5)** Explore settings to tailor your Point of Sale experience. Discover how to adjust accessibility, configure apps and layouts for different segments, and efficiently manage communication templates. Learn to streamline POS operations by copying special forms and setting up barcode scanning. Enhance the customer experience through countdown timers, customized receipts, engaging media, and optimized product and list page layouts. - **[Create Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links.htm&release=264.0.0&type=5)** Quickly navigate Point of Sale with a detailed list of deep links and their supported uses, empowering users to access specific features and streamline retail tasks. By using these direct links, retailers can enhance efficiency and provide customers with faster access to key functionalities within their accounts. Explore how each link simplifies navigation and improves the overall user experience. - **[Configure Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts.htm&release=264.0.0&type=5)** Customize your customer's checkout experience by setting up various receipt layouts, including alterations and SKU-level gift receipts in Point of Sale. Efficiently manage invoice documents and meet specific Mexico requirements for order receipts. This flexible configuration process allows you to present essential transaction details clearly and even brand your receipts with a logo image, enhancing customer satisfaction and streamlining record-keeping. - **[Use Metadata for Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags.htm&release=264.0.0&type=5)** Point of Sale print and email tags are placeholders that display dynamic data in layouts, print templates, and email templates. They pull specific information from data, which is shown instead of the placeholder, so you can customize your output. Configure print tags in layouts with native or HTML text overlays, and use email tags for email and print templates. Grouped lists print a series of data points for each given tag. - **[Quizzes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes.htm&release=264.0.0&type=5)** Use Point of Sale quizzes to gather customer preferences and valuable data. Create engaging quizzes, forms, or polls to capture user feedback and information. Add surveys after successful checkouts and include mandatory questions to ensure you get the data you need. You can also create quizzes where users see real-time poll results after submitting their answer. - **[Personalize User Experience (UX)](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_personalization.htm&release=264.0.0&type=5)** Personalize the POS app using CMS to configure custom fonts and launch images. Extend your brand to the POS app by uploading fonts that match your company's brand guidelines. Launch images configured in the CMS provide a fresh look without requiring a new build, so you can quickly update the application's appearance and keep it current. Using appropriately sized and formatted digital assets also helps you maintain the visual appeal and functionality of your POS interface. # Design the Cart Page in a B2B Commerce Store The Cart page is where customers can review their order before checking out in a B2B store. In Experience Builder, you can customize the page to show line item details, total costs, and savings. You can also style the checkout button and add a field for customers to enter coupon codes. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note For stores created after Spring ‘25, when cart item quantities are updated, the Cart page clears to recalculate. As a result, customers see a blank page with a loading spinner before the Cart page reloads. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, go to the Cart page. 4. Customize the Cart component. The Cart component contains the Cart Items component, along with an empty state that shows when the customer has no items in their cart. 5. Customize the Cart Items component. The Cart Items component shows the products in the cart, along with the related details that you want to include. If your store was created before Winter ’25, pagination doesn’t show on a live storefront. If you encounter this issue, replace the Cart Items component with the new component. 1. To add a button so that customers can delete a line item from their cart, select **Show remove item option**. 2. To show the total price for each line item, select **Show line item total**. 3. To customize how customers navigate multiple cart line items, select a Cart Item Pagination option. The Scroll option presents an accessibility limitation. For keyboard users, there isn’t a link to exit the cart items list. To exit the list, keyboard users must continue through the list to get to the bottom, or backtrack to the top of the list. 4. In the Product Details section, select which information to show for each line item. 5. In the Price Per Unit section, select whether to show the price per unit and customize the style. 6. In the Original Price and Actual Price sections, select which prices to show and customize the style. The original price is the base price from the store’s price book. The actual price is the final price for the current customer. If the original price is higher than the actual price, it’s crossed out. 7. In the Promotion Details section, select whether to show the available promotions for a line item and customize the style. 8. In the Quantity Selector section, select whether to show the quantity selector and label. Edit the text for the quantity selector rules. Quantity rules apply only in B2B stores. 6. Customize the Cart Summary component. The Cart Summary component shows a list of total costs and savings in the cart. The subtotal line includes the total for all cart items and any item-level promotions applied to individual products. The promotions field includes only cart-level promotions applied to the total transaction. All promotions are displayed below the cart summary. 1. In the Cart Summary properties, select which information you want to show. 2. If your store tax type is Gross, select whether to show a note that tax is included. 3. In the Style section, edit the design properties. 7. To show a coupon field and a list of applied promotions, customize the Coupons and Applied Promotions components. These components are contained in the Promotions component. 8. (Optional) If you want to show approaching discount alerts, add the Approaching Discounts component. 9. Customize the Checkout Button component. By default, the Checkout Button component is inside a Sticky Container component, so the checkout button remains on screen during mobile scrolling. 10. (Optional) If you have Salesforce Payments and you want to provide digital wallet payment options, add the Express Checkout component. If your store uses Omnichannel Inventory or a third-party inventory service, orders placed using express payment options fail. Express Checkout payment options don’t support inventory checks. Express Checkout supports Apple Pay, Amazon Pay, Google Pay, PayPal, and Venmo. In the component properties panel, enter a payment method set key, and make other customizations as needed. Express Checkout doesn’t support split shipping or subscriptions. 11. Preview and publish your changes. To show a cart preview and enable checkout from other pages in your store, customize the Cart Badge component. See [Enable Cart Preview and Checkout from the Cart Icon in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_cart_badge_mini_cart.htm&release=264.0.0&type=5 "Let customers go to the Cart page, preview their cart, or complete their purchase on any page in your B2B store by including a mini cart display. In Experience Builder, customize the Cart Badge component to add these features."). #### See Also - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&language=en_US) - [Customize the Payment Section of Checkout in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_customize_payments.htm&language=en_US) # Design the Checkout Page in a Commerce Store Use a preset layout and customize its components, or design a layout using sections and components to guide customers through the checkout process in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) If your B2B store was created with the Aura template, use flows to edit checkout. See [B2B Commerce Checkout Flow](https://developer.salesforce.com/docs/atlas.en-us.b2b_b2c_comm_dev.meta/b2b_b2c_comm_dev/b2b_b2c_comm_setup_checkout_flow.htm). 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, select the **Checkout** page. If you have a new D2C store, the checkout page displays the Checkout Layout: Salesforce component. This component is locked, and you can’t customize it. To design your own page, first remove this layout. If you have an existing store without a Salesforce Payments license, your checkout page might be blank. Go to the next step to add layouts or components. If you have a store created before the Winter ’24 release, you can replace legacy components. Legacy components are still supported, but they don’t support new Commerce features. When you replace legacy components, you can’t add them back. If you have a B2B store with Guest Checkout enabled, you must replace the legacy components. Otherwise, email verification fails at checkout. 4. Add a preset layout. The checkout layouts include the necessary components for an optimized checkout experience. If you prefer to design your own layout, use sections. The Checkout Section component contains a heading, an Action button, and content space for components. You can add and remove sections, and add or remove components within a section. You can’t add a promotion section to a custom layout. 1. From the component menu, drag a checkout layout onto your page. The one-page layout displays all checkout sections and forms on a single page. The accordion layout contains sections that expand and collapse as a customer completes the checkout steps. To change the navigation button label for each section, customize the Action Button component. 2. If your store was created before the Winter ’24 release, add the Place Order Button and Checkout Error Notification components to your layout component. The Checkout Notification component is required to show errors to customers during checkout. Add only one Checkout Notification component to the page regardless of any error configurations you’ve made to any checkout sections in your store. If you have more than one component on the page, customers see multiple windows for notifications. 3. To show Promotions and the option to enter coupons in Cart Summary, on the layout component, select **Show the checkout summary column**. 5. If you're using the One-Page layout or Accordion layout, enable the Checkout Summary component. 1. To open your layout's component settings, click the **Checkout Layout: One-Page** or **Checkout Layout: Accordion** component on your page. 2. To show a summary of cart information including price, promotions, and cart items that pins to the right side of the screen, select **Show the checkout summary column**. 3. To show a collapsible list of cart items for mobile checkout, select **Show expandable cart items by default**. 4. Edit the Expandable Summary Heading for Mobile label. #### See Also - [Customize the Payment Section of Checkout in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_customize_payments.htm&release=264.0.0&type=5 "After you set up your payment service provider, use Experience Builder to customize how you collect payment and billing details from your customers during checkout in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page.") - [Customize the Shipping Section of Checkout in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_customize_shipping.htm&release=264.0.0&type=5 "After you set up your shipping calculation service, use Experience Builder to customize how you collect shipping details from your customers during checkout in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") # Detailed Sales Report Use the Detailed Sales report to see details related to sales, refunds, registers, and safes on the POS app. Prereuisites: - Modern POS App Build: 8.0.1 or later - Platform Support: iPhone & iPad - Offline Support: No ## View Detail Sales Reports in the POS App View sales data, filter reports by order type, and change the data range for data to see in the Point of Sale (POS) app. ### Configure and Setup Point of Sale CMS for Reports 1. Edit a layout or [hamburger menu](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_hamburger_menu.htm&release=264.0.0&type=5 "Configure a hamburger menu in the POS app to access a wide range of features without cluttering the screen. This setup streamlines navigation, making it easier for users to find and use essential functions quickly."). This deep link can't be configured as one of the tabs on the Home Page on CMS. 2. Using the deep link picker on the right menu, go to **Reporting > Detailed Sales Report**. 3. Set and save your changes. ### POS App Flow for Viewing Reports The store associate can view the Detailed Sales Report data by selecting the deep link configured in CMS. The report will show details related to sales, refunds, registers, and safes. For a comprehensive list of all sales-related terminology, see [Sales Reporting Glossary of Terms](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_sales_reporting_glossary.htm&release=264.0.0&type=5 "To understand sales data, use this glossary of terms commonly seen in sales and app reports in Point of Sale."). By default, the app shows the data for the current day. However, the store associate can change the date range using the filter at the bottom of the screen. For app builds 10.5.1 or greater, the report can be filtered by order type: - **In Store**: filters sales metrics for in-store purchases and refunds for in-store returns - **Endless Aisle**: filters sales metrics for endless aisle purchases and refunds for returns from endless aisle orders. - **Mixed Cart**: filters sales metrics for mixed cart purchases and refunds for mixed cart returns - **Web (BORIS)**: Filters refunds for items returned in-store that were originally purchased online The data can be printed on the receipt by tapping Print Report at the bottom of the screen. The app will print the receipt on the printer connected to the POS app. ### Known Issues and Restrictions - A4 printing of sales report is not supported on the POS app. - Sales Report receipt is not supported for Fiscal printers. # Determine Whether a Customer Has an External Profile If your client application authenticates customers through an external Identification Provider (IDP) such as Google or Facebook, each customer needs an external profile. You can now make a GET call to the Shop API customers/ext\_profile endpoint to determine whether customer has an external profile. How: Include the `authentication_provider_id` and `external_id` in the URL. For example, `GET https://hostname:port/dw/shop/v21_2/customers/ext_profile?external_id=user123&authentication_provider_id=Google` # Digital Wallet Fields The Digital Wallet object represents a digital payment method. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Digital Wallet object.
Field Label Description
Account The account of the customer who owns the digital wallet.
Audit Email The email address of the digital wallet owner.
Comments Comments about the digital wallet.
Company Name The company name of the digital wallet owner.
Customer ID The customer name of the digital wallet owner.
Gateway Token The unique token ID generated by the payment gateway to represent the digital wallet payment method for future transactions. This version isn’t encrypted.
Gateway Token Details Information about the gateway token.
Gateway Token Encrypted The encrypted version of the unique token ID generated by the payment gateway to represent the digital wallet payment method for future transactions.
IP Address The IP address of the digital wallet owner.
MAC Address The MAC address of the user who initiated the payment.
Nickname The nickname for the digital wallet.
Payment Gateway The payment gateway used with transactions for the digital wallet.
Payment Method Address Part of the address for the payment method.
Phone The phone number of the digital wallet owner.
Processing Mode

Indicates whether the digital wallet is used for transactions made inside or outside the payment platform.

Possible values are:

  • External—Transaction occurred outside of the Salesforce payment platform.
  • Salesforce—Salesforce made and recorded an external call to the payment platform.
Registered Email The email address of the digital wallet owner.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Disable High-Scale Integration with B2C Commerce Confirm that your org has a functioning Create Order Summary flow. 1. Pause the B2C Commerce integration. 1. Log into B2C Commerce Business Manager. 2. Navigate to **Administration** | **Global Preferences** | **Salesforce Order Management Integration Administration.** 3. Change the Integration State from **active** to **paused** and save your changes. 2. Log in to Salesforce as an administrator. 3. If you don’t plan on using the High Scale Orders feature again, remove the Pending Order Summaries related lists from the page layouts that you added it to. Usually, it’s on the Account and Contact page layouts. If you plan to reactivate the feature, don’t remove the Pending Order Summaries related lists. 1. From Setup, in the Quick Find box, enter Object Manager, and then select **Object Manager**. 2. Select the object whose layout you want to edit, and then select **Page Layouts** | **Object Name Layout**. 3. In the layout section, select **Related Lists**, and then drag **Pending Order Summaries** to the Related Lists section. 4. From Setup, in the Quick Find box, enter Order Management, and then select **Order Management**. 5. Turn off High Scale for B2C Integration. B2C Commerce orders currently pending ingestion are placed in Sending (Pushed) status, which triggers automatic retries when the standard integration is activated. 6. Prepare your Create Order Summary flow to process orders ingested by the standard B2C Commerce integration. When it’s ready, activate it. 7. Set the B2C Commerce integration state back to active 1. Log into B2C Commerce Business Manager. 2. Navigate to **Administration** | **Global Preferences** | **Salesforce Order Management Integration Administration.** 3. Change the Integration State from **paused** to **active** and save your changes. The standard integration now ingests pending and new orders. To verify that it’s working, search for new order summaries in Salesforce. #### See Also - [Enable High-Scale Integration for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_hi_scale.htm&release=264.0.0&type=5 "Salesforce orgs use high-scale order ingestion (HSOI) to create order summaries. HSOI can handle 5,000 orders placed per minute and 2,500 orders processed per minute for approximately 50 locations. Each order can have up to 2,000 lines.") # Disable Inactive Users by Default To improve security, new Account Manager organizations now disable inactive user accounts after 90 days by default. You can turn this setting off or adjust the number of inactive days before an account is disabled in Account Manager Organization settings. **Where:** This change applies to Account Manager for B2C Commerce. #### See Also - [_Salesforce Help_: Edit an Organization in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_edit_organization.htm&language=en_US) # Disable Shipping for a B2B Store If you’re using managed checkout or native Salesforce shipping for custom checkout, you can turn off shipping for stores that don’t ship physical products. Turn off shipping for stores offering digital goods, service subscriptions, or in-store pickups. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Settings** | **Checkout**. 3. Disable shipping. - If you’re using managed checkout, under Shipping, turn off Shipping Enabled. - If you’re using custom checkout, go to the Shipping tab and turn off Shipping Enabled. #### See Also - [Manage Shipping Zones and Rates for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_manage_shipping.htm&release=264.0.0&type=5 "Whether you’re using managed or custom checkout, you can organize countries with similar shipping costs into shipping zones. A zone can include countries with different currencies. For each zone, you can set shipping rates based on the monetary value of the order or by weight.") - [Set Up Salesforce Native Shipping for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_native_shipping.htm&release=264.0.0&type=5 "Provide customers accurate shipping methods, including default free shipping, flat rates, and custom rates with the Salesforce native shipping service for your B2B store.. You can use the shipping service with custom checkout or managed checkout, but if you configure your store using custom checkout, you must add the shipping service manually. You can create custom shipping zones and turn off shipping if you don’t sell physical goods.") # Disable the Deprecated Storefront Toolkit To enhance security and the user experience, we now disable the deprecated Storefront Toolkit by default for new sites and imported sites. For existing sites, the behavior remains unchanged, but we recommend transitioning to the new Storefront Toolkit for enhanced functionality and support. **Why:** The deprecated Storefront Toolkit is no longer supported and may pose security risks. By disabling it, you ensure your site remains secure and up-to-date with the latest features and improvements. **How:** In Business Manager, select **Apps selector** | **Site** | **Site Preferences** | **Deprecated Storefront Toolkit**. Enable or disable the toolkit as needed. # Disable the Welcome Email for Your B2B Commerce Store When you activate your store, all members of the site receive a welcome email. You can turn off this feature before you activate so that the email isn’t sent. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter **Digital Experiences** and select **All Sites**. 3. For your store, click **Workspaces**. 4. Click the Administration tile. 5. Click **Emails**. 6. Deselect **Send welcome email**. 7. Save your changes. #### See Also - [Publication and Activation](https://help.salesforce.com/s/articleView?id=commerce.comm_publish_activate.htm&release=264.0.0&type=5 "When you’ve previewed your pages and are ready to start selling, it’s time to make your B2B Commerce store available to your customers. First, configure a custom domain and CDN. Assign the store a custom URL. Then publish the store and activate it.") # Discontinued Cloudflare Auto-Minification The auto-minification feature offered through Cloudflare CDN is no longer available. With the discontinuation of auto-minification, removing empty lines from HTML documents is now automated. This update, released with 24.8, offers a refined approach to page optimization for performance and search visibility. Investigate performing minification at build time. # Discount an Order Item You can process a discount or price adjustment for one or more order items either before they’re allocated or after they’re fulfilled. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Salesforce D2C Commerce doesn’t include this discount functionality. 1. From the Navigation bar, open the Order Summaries list view page. 2. Select the order number that contains the items to discount, and open the corresponding order summary record. You can also open the order summary directly from the customer’s account in the Service Console. 3. From the Actions & Recommendations list, select **Discount Items**. 4. On the Discount Items page, select the items to discount, and click **Next**. Only eligible items are listed. 5. For each item selected, enter the required information. Or, to discount items in bulk, use the Apply to All Items row. If you select **Amount** for the discount type, the discount applied is the amount that you enter. For example, if you enter 10 and the item total is $100, the discount amount is $10. If you select **Percent**, the discount is calculated by multiplying the item total by a percentage equal to the value. For example, if you enter 12 and the item total is $125, then the discount amount is $15. 6. Click **Next**. 7. Review the discount information, and submit the discount. 8. Click **Finish**. If all the discounted items aren’t yet fulfilled or if all are fulfilled, a change order is created. If both fulfilled and unfulfilled items are being discounted, two change orders are created: one for the fulfilled items, and one for the unfulfilled items. The totals on the order summary are updated accordingly. #### See Also - [Order Servicing](https://help.salesforce.com/s/articleView?id=commerce.om_service.htm&release=264.0.0&type=5 "Order servicing lets your customer service representatives (CSR) provide shoppers with order-related services, such as returns, exchanges, and cancellations. Order Management uses flow templates to help automate the these tasks. A Salesforce Admin can copy and customize these templates and then make the process flows available in the Actions & Recommendations section on the Order Summary page. Service agents can then quickly respond to requests for cancellations, reshipments, discounts, exchanges, and returns.") # Display Alert Messages in Business Manager Display alerts as a persistent banner on the top of every Business Manager page. Alerts can relate to Business Manager modules and are only visible to users with permissions to access the module. Salesforce might also use the enhanced alerting framework to display critical system messages to Business Manager users. **How:** In Business Manager, select **Administration** | **Operations** | **Notification Settings**. Select the Banner alert type banner. ![Business Manager Alert Setting](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/24_3/business_manager_ui.png) #### See Also - [Access Alerts for Your B2C Commerce Site](https://help.salesforce.com/s/articleView?id=cc.b2c_access_alerts_for_your_site.htm&language=en_US) - [Configure B2C Commerce Alerts in Business Manager and Slack](https://help.salesforce.com/s/articleView?id=cc.b2c_configure_alerts_for_your_site.htm&language=en_US) - [Edit Alert Settings for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_edit_alert_settings.htm&language=en_US) # Display Failed and Pending Order Statuses in Order History Enable your B2B store to show pending and failed orders in Order History. Pending and failed orders prior to Winter '27 aren't included in Order History. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note The cart date source provides information about pending and failed orders. If you delete pending or failed carts, then the information about the orders related to those carts isn't listed in the Order History and Order Summary pages, and the OrderSummaryCollection and OrderSummaryLookup APIs don't return information about these orders. 1. In the navigation sidebar, click **Experience Builder**. 2. Click **Components**. 3. Drag and drop the Order List component on the Order Summary List page in your store. 4. In the component settings, select **Show Pending and Failed Orders**. All pending and failed orders created after the setting is enabled are listed in Order History. 5. (Optional) In Experience Builder, go to the Order Summary List page. In the Order Summary components setting, under tooltip, enable Show tooltip, and add a tooltip message to display when the order is pending or has failed. 6. In Experience Builder, open the Order Summary Details page. 7. Remove the Shipment Tracking component and add it back in. If you've customized the Shipment Tracking component and want to retain your customizations, click the Text Box in the Shipment Tracking component, and in the settings, change the value of Text or Expression to Details.fields.Status.text. 8. (Optional) In the Shipment Tracking component settings, under the Tooltip section, enable Show Tooltip, and add a tooltip message for when the order is pending or has failed. 9. Preview your page to make sure that everything looks correct, and then publish your changes. # Display Printer Name for Store Associates Easily find and select printers in the Point of Sale (POS) app at stores that maintain a 1-to-Many topology. ## Printer Naming You can set your printers to have names that are easy for people to understand. However, depending on your printer model, these names can't be found in the POS application. Due to this being unreliable, it is recommended you provide printer names via the CMS. Any provided printer names will override manufacture settings and provide a better name within the Retail Cloud POS. If a printer name isn't provided via the CMS, the printer's Mac Address will be shown. ## CMS Setting ![Printer names showing in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_cms_printer_setting.jpg) ## Mac Address ![Mac addresses showing in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_printers_mac_address.png) ## CMS - Configuration & Setup Printer name to Mac address mappings are configured via the CMS. For more information about the store data feed and expected data format specifications, see [Store Device Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_store_device.htm&release=264.0.0&type=5 "The Point of Sale store device feed is used to load all printer MAC addresses and device names that are used in a store."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If uploading a store device feed, any existing uploaded devices are lost. ## Feed Mappings Within the CMS, go to **Feeds > Field Mapping > Store Device**. ![Printer Feed Mappings in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_printer_feed_mappings.png) ## Manual Upload Within the CMS, go to **Feeds > Manual Upload > Stores > Store Device**. ![Upload button for adding a printer to Point of Sale CMS manually.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_manual_printer_upload.png) ## Scheduled Upload Within the CMS, go to **Feeds > Scheduled Upload > + > Store Device**. ![The Store Device setting in the New Schedule section](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_scheduled_uploads.png) # Display the Site Merch Order Point of Sale support two options for adding merchandising sort order to the product feed. 1. First option is you can add an additional column that defines the global rank order (integer) for each product. Search results in the app can be sorted by this rank value in ascending or descending order. Any products in the search result set that have identical rank orders will be ordered by relevance relative to each other. See ProductRank field in attached feed sample. 2. Second option is you can support category based ranking by including a field of comma-separated rank values with the number of rankings matching the number of categories that the product is assigned to. As an example, taking the categories of the first product in your latest product feed Example of field mapping and expected format for the product feed fields:![A screenshot shows field mapping to product type.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_site_merch_order1.png)![A screenshot shows field mapping to category sort order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_site_merch_order2.png) # Displayable Fields for B2B Stores Displayable fields help to decrease page load times and retrieve product data faster on search, product, cart, and checkout pages. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Set Up Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_displayable_fields.htm&release=264.0.0&type=5)** Set up the category, custom, and standard product fields that you want to enable as displayable on your search, product, cart, and checkout pages for B2B Commerce stores. - **[Configure Product Fields for Search Results in a B2B Commerce Store (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_product_fields_for_search_results.htm&release=264.0.0&type=5)** Configure the standard product fields that you want to display in the search results on your search, product, cart, and checkout pages. - **[Enable Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_displayable_fields.htm&release=264.0.0&type=5)** Enable displayable fields to decrease page load times and retrieve product data faster on search, product, cart, and checkout pages for B2B Commerce stores. - **[Configure Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_displayable_fields.htm&release=264.0.0&type=5)** Before you enable displayable fields for your B2B Commerce org, you must set up displayable fields in the Commerce App and configure product fields in Experience Builder for all of your stores. You can complete steps 1 and 2 in either order, but the product fields that you configure in Experience Builder must be set up as displayable before you enable displayable fields to see improvements on your search, product, cart and checkout pages. # Distinguish Between OCAPI and SCAPI Requests Use the new method added to the `dw.system.Request` object to identify the SCAPI context. You can now distinguish between OCAPI and SCAPI requests in extension points (hooks). Direct access to the `'_sfdc_mercury'` header has been deprecated. # Distinguish Business Manager Instances with Color-Coded Headers and Footers You can now identify production, developer, and sandbox environments at a glance by color in the Business Manager UI. # Distribute, Activate, and Deploy Point of Sale App Distribute the Point of Sale (POS) app to testers or the store through production custom apps, UAT via TestFlight, or production enterprise IPA. The recommended method of distribution is the “custom app” using the Apple Business Manager. The main reasons for recommending the custom app route are: - Apple has limited the new enterprise developer accounts being provided to enterprises. - Apple also made it much easier to obtain Apple Business Manager accounts for enterprises. - A new enterprise developer account requires a minimum of 100 employees and can take anywhere from a few weeks to months. ## User Acceptance Testing for POS App Distribute the Point of Sale (POS) app in stores or corporate offices via User Assitance Testing (UAT) and Early UAT builds. UAT. ### UAT via TestFlight The engineering team manages TestFlight invitations. Customer Success team is required to: - Gather emails from the Merchant - Create a Jira to add the email IDs to the UAT distribution Engineering maintains a single distribution list and all the UAT ready builds are shared with this distribution group. This means if a merchant doesn't want to do UAT, they will ignore the notification from TestFlight. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: Using multiple devices on a single Apple ID in TestFlight isn't recommended. The app will appear on all devices with the same Apple ID, but if one device stops testing, the app will be removed from all devices linked to that Apple ID. ### Early UAT Release In some cases there's a need to share the build before the QA signs off on the release. This should be a rare occurrence. Engineering releases build monthly. Engineering's recommendation for early release is to be a few days before the final UAT date (This is usually around the 20th of each month). Both Early UAT and UAT builds go through the same TestFlight sharing. It's important that Early UAT and UAT TestFlight builds are never used in stores for production use. This can cause money loss because of bugs that haven't been tested. ### UAT IPA (For Penentration Testing) For merchants who want to sign the IPAs with their own information before giving them to their security teams for testing, see this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_production_testflight_ipas.htm&release=264.0.0&type=5 "Sign IPAs with your own credentials in Point of Sale before distributing them to stores. Use an MDM provider to share the application or use TestFlight to test with both internal and external users."). ## Distribute POS App in Production Environment Build the POS app, archive it to TestFlight, and share it with customer testers. After customer approval, submit the app to Apple for distribution. ### Prerequisites Merchant's Apple Business Manager ID and the registered corporation name. ### Obtain ID and Name from Merchant's Apple Business Manager Account The screenshot shows the business ID and name.![The business and ID name in the Apple Business Manager account](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_abm_id_pos_app.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: Make sure the "Custom Apps" is set to enabled. ### Configure ID and Name in Point of Sale's Apple Developer Portal The screen shows the configuration done in the Apple developer portal.![The Point of Sale configuration in Apple's development portal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_id_dev_portal.png) After the app is approved by Apple for distribution. The merchant will be able to see the app on their Business Manager screen. ### See the App in Apple's Business Manager After the organization ID and organization name are configured for the Apple-approved application, the IT administrator will see the IPA on their Apple Business Manager screen.![the POS app configured in Apple Business Manager](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_in_abm.png) The app can then be distributed via a choice of Mobile Device Management (MDM) systems to store on POS supported device. ### Troubleshooting Apple Business Manager - PS POS app isn't visible in Apple Business Manager. - Resolution: Custom Apps is not enabled in the enrollment information screen.![Custom Apps are diabled in Apple Business Manager](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_not_abm.png) - Meraki MDM fails to distribute the PS POS to iPads. In this scenario, Admin one bought 200 volume licenses. If Admin two logged in and configured the tags to distribute the app, the iPad can’t install the app. - It turns out the 200 licenses bought by Admin one aren’t redeemable by Admin two. Admin two bought 200 more and was able to deploy the app. ### Production Enterprise IPA An enterprise IPA is built if the customer provides: - Access to the enterprise developer account to download the profile and the signing certificate. - Provides “admin” level access so we can generate the profile and signing certificate.![Enterprise distribution method selected in Apple Business Manager for POS App](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_enterprise_ipa.png) After selecting this method, the archive utility allows the selection of the credentials as shown:![Automatically manage signing option selected for POS app Enterprise distribution](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pick_pos_credentials.png) After the signing details are chosen, the archive tool creates a file for business distribution. This file can be shared directly through the customer's MDM provider. ## Activate Modern POS App Get the POS app to get bootstrapped with merchant credentials. | **Installation Type** | **Activation Type** | | --- | --- | | TestFlight Invite | QR Code | | PS POS Custom App | QR Code | | PS POS Custom App re-signed with merchant bundle Identifier | Automatic | | Enterprise IPA | Automatic | ### Automatic Activation In this mode, the app upon launch automatically configures the merchant ID and other credentials required to connect to the PS Cloud systems. There's no extra step required in this mode. ### Activation via QR Code This method requires the store associate or the tester of the Modern POS app to obtain a QR code from their help desk. These steps will assist the CMS user to obtain the Activation QR Code: 1. Log in to Point of Sale CMS. 2. Select **Store Management > Activate App**. 3. For Staging and Dev, you'll notice that there are two QR Codes (for Prod, there's only one regardless of app version). If your app version is older (8.1.1 or older) you'll need to scan a different QR Code than if your app version is greater than 8.1.1 (for example 8.4.1). Carefully read the labels before scanning.![Pick a QR code, legacy or modern, to scan for POS app activiation](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_legacy_app_qr_code.png) To activate the Modern POS app, install the app on your iPhone or iPad. After it’s installed, open the application. If the application isn't automatically activated, you see this screen upon launch:![A screen that notifies you to activate the POS App](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_scan_active_qr_code.png) After launching the app, touch the scan QR Code CTA. ![The scan QR code CTA](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_scan_code_cta.png) After the Modern POS is activated, the login screen is shown:![The POS login screen on an iPhone](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_modern_pos_app_login_screen.png) ### Live Deployment After the app version is distributed and activated, we recommend that the store performs these steps: 1. Install the released build on one of the iPads in the store. 2. Run a full set of use cases and make sure the results are matching the expectations. 3. Complete the POS live testing for 1–7 days. 4. On the seventh day, roll out the new version to all the POS iPads. ### Modern POS Deactivation Use these steps to turn off the app: 1. If you are logged in, select **Menu > Sign Out**. 2. Close the app. 3. Relaunch the app. 4. On the login screen top right, tap a few times. A menu shows to reset the app.![The reset app menu for the POS App on an iPhone](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_reset_app_menu.png) 5. Select **Reset POS App**. 6. Close the app and now you're ready to activate the Modern POS app again. # Distributed Order Management Order Management includes tools for distributing orders across your fulfillment network based on custom business logic. If you use Salesforce Omnichannel Inventory, you can also incorporate its availability features into your order routing process. - **[Routing via Flows](https://help.salesforce.com/s/articleView?id=commerce.om_routing_flows_dom.htm&release=264.0.0&type=5)** A series of automated routing flows picks up order summaries, determines which fulfillment locations can most efficiently handle the order's items, and routes its inventory reservations to those locations. When the automated process has trouble with an order, it creates a process exception to notify users of the issue. An included screen flow allows a user to manually create fulfillment orders for that order. Then, a special automated flow picks up those fulfillment orders and inserts them back into the main process. # DKIM Support for Google and Yahoo Email Spam Reduction To ensure Google and Yahoo's announcements regarding reducing spam mails don’t disrupt your business operations, Salesforce B2C Commerce is making the following changes to our Commerce Cloud mail service: - Offer Support for DKIM authentication - In Business Manager customers can specify a private key to be used for DKIM **How:** To use DKIM, you download a private key and configure Business Manager for DKIM. In Business Manager, select **Administration** | **Operations** | **Private Key and Certificates** and import the private key for the DKIM. See [Private Keys and Certificates in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_certificates_and_private_keys.htm&type=5&language=en_US) In Business Manager, select **Administration** | **Operations** | **Email Settings**. - Check Enable DKIM. - To use as the private DKIM key, select the RSA key. - Define a selector. A selector must be set. The public key is stored as a TXT record on the relevant DNS entry. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The domain can’t be manually configured. The domain is the one used to send email. For example `noreply@notifications.example.com`. The default DKIM location is `&selector>._domainkey.notifications.example.com`. ![Email settings](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/24_1/rn_b2c_support_for_dkim_image.png) #### See Also - [Support for DKIM Authentication](https://help.salesforce.com/s/articleView?id=cc.b2c_support_for_dkim_authentication.htm&language=en_US) # Do More with Components in Page Designer You can now copy up to 10 components to a clipboard from the component’s action dropdown menu. You can paste the components in the same or other page or across browser tabs from a region’s Add action in the Page Structure panel. You can now also target components to specific locales, in addition to customer groups and campaigns. Additionally, pages loaded in Page Designer are responsive before all referenced images, external resources, or client-side scripts have completed loading, cutting down on wait time. #### See Also - [Manage Component Visibility on Product List and Product Detail Template Page Designer Pages](https://help.salesforce.com/s/articleView?id=cc.b2c_manage_component_visibility_dyn_pages.htm&type=5&language=en_US) # Do More with VAT Calculation Method for Taxation B2C Commerce now supports tax calculation and rounding based on tax groups. You can now calculate tax and use rounding based on tax groups. The calculation method uses a new Tax Rounding Level site preference called Group. The tax groups are exposed via OCAPI and Script API to support customization. The update includes: - A new tax rounding level site preference called Group. - The tax groups are exposed via OCAPI and Script API to support customization. - If an order was created with price rounding `Policy = Group`, the grouped taxation shows on the Business Manager order details page. How: To enable rounding per grouped tax rate, in Business Manager Site Preferences, set the Order Item Price Rounding Policy to GROUP. To ensure a tax rate of zero for promotion line items, in Business Manager select **Merchant Tools** | **Site Preferences** | **Pricing and Promotions** and set the Discount Taxation to Tax Products and Shipping Only Based on Adjusted Price. # Domain Registration for Apple Pay, Google Pay, and Link To accept Apple Pay, Google Pay, or Link (Stripe only) as payment methods, register your store’s domain name with Stripe or Adyen. Register your domain for each Salesforce Payments merchant account that accepts one of these payment methods. For example, to support Apple Pay on 25 merchant accounts, register 25 times. ### Required Editions
View supported editions.
If your Payments merchant accounts are linked to Stripe, see Stripe's instructions [Register domains for payment methods](https://docs.stripe.com/payments/payment-methods/pmd-registration). If your Payments merchant accounts are linked to Adyen, see Adyen's instructions [Add payment methods to your account](https://docs.adyen.com/payment-methods/add-payment-methods/). Register all domains individually, including subdomains. For example, if you register the domain mysite.com, the methods don't automatically work for the subdomain mybrand.mysite.com. #### See Also - [Prepare Your Org for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&language=en_US) # Donations with Adyen Giving Configure the Point of Sale (POS) app to capture information about donations made with Adyen terminals. Customize donation options, secure payment processing, fee coverage, comprehensive reporting, and integrate into existing systems. ## Supported Features By leveraging Adyen's Giving feature, you can access a range of supported features that include: - Offer your customers the choice to donate to a preselected charity at the end of every transaction via the Adyen terminal - Adyen makes sure that all fees are covered, guaranteeing that 100% of the donation goes directly to your chosen charity - Adyen handles all contracts and manages payouts - Access reports and records conveniently in Adyen's Customer Area - Provide three configurable donation amounts for customers to select from, including one option that allows them to enter a custom donation amount - Limit one donation per transaction - Supported payment methods include: - Credit and debit cards: American Express, Bancontact, Cartes Bancaires, Diners, Discover, JCB, Mastercard, UnionPay, Visa, Visa Debit - Wallets: Apple Pay and Google Pay - Gift Cards: Not supported - Donations can only be accepted if online - Ability to customize the timeout duration of the donation screen on the terminal - Give customers the option to select "Not Now" if they select not to donate - Adyen provides comprehensive reporting on donations directly through the customer portal ## Supported Terminals This is a list of terminals that support Adyen Giving and are certified by Point of Sale: - AMS1 - M400 - M450 (WiFi) - P400 Plus - V400m - V400c - SFO1 ## Enable Donations on Adyen Console To turn on new Giving campaigns, you can do so through the Campaign Manager. Detailed information can be found in [Donations using Giving | Adyen Docs](https://docs.adyen.com/point-of-sale/donations-using-giving). ## Adyen Terminal Flow After a customer completes their order transactions on the Adyen terminal, they'll be prompted with the screenshot.![The Ayden Terminal Donation Approval message.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_terminal_flow.png) The customer can either select a preconfigured or custom amount. They also have the option to opt out. If a customer does donate, the terminal will initiate a new transaction and they will have to enter their form of payment to complete the transaction on the terminal. The terminal will confirm a successful transaction by displaying the Donation Confirmation message.![The Ayden Terminal donation confirmation message](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_donation_confirmed.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Customers will see two separate charges on their bank statement, one for the payment and one for the donation. ## Resources - [Adyen Giving Overview](https://docs.adyen.com/point-of-sale/donations-using-giving) - [Adyen Giving Technical Requirements](https://docs.adyen.com/point-of-sale/donations-using-giving) # Download Inventory Reports Retrieve reports in Point of Sale CMS about how many of a specific product you have in stock. To download the report, select **Download** below the search filters. After the report is ready, you will receive an email that is used to log into CMS with a download link, which will expire after seven days. The report can also be viewed and downloaded in CMS by navigating to **Reporting** and **Analytics > Downloaded Center**. # DRO for Order Management Prerequisites Before you can use DRO with Order Management, enable the feature, clone the necessary flows, and set up Revenue Cloud DRO. ### Required Editions
View supported editions.
Make sure you have the necessary licenses enabled: - Order Management Growth license - Revenue Cloud RevenueLifecycleManagementAddOn license - DROAddOn license Navigate to **Setup** | **Feature Settings** | **Dynamic Revenue Orchestrator** | **Dynamic Revenue Orchestrator Settings**. Enable **Dynamic Revenue Orchestrator** and **In-flight Amendments**. [Assign permission sets](https://help.salesforce.com/s/articleView?id=ind.dro_permission_sets_in_dynamic_revenue_orchestrator.htm&type=5&language=en_US) based on personas. [Clone and activate](https://help.salesforce.com/s/articleView?id=commerce.om_flow_copy.htm&type=5&language=en_US) these flows: - Decomposition Flow - Freeze Orchestration Plan Flow - Unfreeze Plan Flow - DRO Cancel Item - DRO Return Item - DRO Return Item RMA If you have already cloned these flows and made any modifications, the new clone won’t contain your customizations. Navigate to **Setup** | **Object Manager**. Make the following additions: - Order Item Summary: Add QuantityOrchestrated and QuantitySubmittedForDro. - Order Summary Object: Add OrchestrationSbmsStatus and FulfillmentPlan. - Order Summary Page Layout: Add the Decomposition Viewer LWC component. Set up DRO for Revenue Cloud. - [Create Custom Context Definition and Map Business Objects](https://help.salesforce.com/s/articleView?id=ind.dro_create_custom_context_definition_and_map_business_objects.htm&type=5&language=en_US) - [Map Custom Context Definition with Sales Transaction](https://help.salesforce.com/s/articleView?id=ind.dro_associate_custom_context_definition_with_sales_transaction_attribute.htm&type=5&language=en_US) - [Configure Procedure Plan Definition for Business Process Orchestration](https://help.salesforce.com/s/articleView?id=ind.dro_configure_procedure_plan_definition_for_business_process_orchestration.htm&type=5&language=en_US) [Configure DRO to pause at status changes](https://help.salesforce.com/s/articleView?id=commerce.om_configure_dro_pause_steps.htm&release=264.0.0&type=5 "Coordinate fulfillment between Dynamic Revenue Orchestrator (DRO) and Order Management by configuring pause steps that wait for specific Order Management milestones. For example, pause fulfillment until all ordered items are delivered."). - Configure optional DRO setup. - [Design Your Order Decomposition](https://help.salesforce.com/s/articleView?id=ind.dro_design_time_decomposition.htm&type=5&language=en_US) - [Design Your Order Orchestration](https://help.salesforce.com/s/articleView?id=ind.dro_design_time_orchestration.htm&type=5&language=en_US) #### See Also - [Dynamic Revenue Orchestration with Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_dro_order_management.htm&release=264.0.0&type=5 "Use the Dynamic Revenue Orchestrator (DRO) with Order Management to manage orders containing both physical products and digital services. With DRO and Order Management, customer service reps (CSRs) can see physical logistics and digital orchestration in one order summary, without switching between systems.") # Dynamic Currency Conversion Select the currency to use for completing credit card transactions, either the local currency or the card’s billing currency. Configure Dynamic Currency Conversion (DCC) keys in Point of Sale CMS to print on physical receipts. DCC is only available to the customer if the transaction isn't in the same currency as the credit card’s billing currency. If a customer chooses to pay in their billing currency, their account is charged at the Exchange rate offered by the merchant's bank. ## Prerequisites Modern POS App Build: - Adyen: 5.10.3 or greater\* - Elavon: 5.12.2 or greater - Verifone: 9.9.1 or greater (only supported by the payment processor Fiserv, which is currently not supported by Chase PaymentTech) Platform Support: iPad only Offline Support: no Technical Prerequisites: - This feature requires a 3rd party integration. - This feature requires a new build. - This feature doesn't require a change in the CMS. - This feature doesn't require a change in the backend. \* Adyen SF01 terminals are supported for app builds 11.6.1 or greater. AMS1 and M450 terminals are supported for app builds 10.5.1 or greater. ## DCC Field Support |   | Amount in Selected Currency | Exchange Rate Used | Markup | Source of Exchange Rate | | --- | --- | --- | --- | --- | | Adyen | Yes | Yes | Yes | Yes | | Elavon | Yes | Yes | Yes | Yes | | Verifone | Yes | Yes | Yes\* | No | \* Will only be printed if the markup is nonzero ## DCC Field to Receipt Line Keys Mapping in Point of Sale CMS Configure DCC keys to be printed on a physical receipt. 1. In CMS, go to **Layouts > Layout Templates > Print Receipts**. 2. Edit a layout. If none exists, create a layout. 3. Select the payment tender cell in the layout. 4. On the right toolbar, select **Receipt Components > Payment Tenders**. 5. Under **Receipt line Keys**, select **\+ Add** to enter DCC keys. Refer to the table and corresponding screenshot for an example. | Amount in Selected Currency | Receipt Line Key | | --- | --- | | Amount in Selected Currency | dccshopperamount | | Exchange Rate Used | dccrate | | Markup | dccmarkup | | Source of Exchange Rate | dccsource | ![The Edit Receipt Section with Receipt Line Keys filled out.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_edit_receipt_dcc.png) ## Terminal - Configuration & Setup To access DCC on your Adyen terminal, you'll need to verify the terminal's configuration is up-to-date. To download the latest configuration, tap 9 and then O on the keypad. After entering your pin, tap the Configuration button on the main menu and then select Update as shown. ![The Config button on an Ayden payment terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_dcc_setup_config.png)![The Update option in the Config section of the Ayden Payment Terminal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_dcc_update.png) ## Terminal Flow Adyen After a customer uses a card to pay for a transaction that is in a different currency than the card's billing currency, they'll see a menu on the terminal to select the currency to be used in processing the transaction. This is an example of what this menu looks like for a card with a USD billing currency that is used for a transaction in Euros.![The DCC flow in the Ayden Payment Terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_dcc_flow_ayden.png) Elavon Example![The DCC flow in the Elavon terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_elavon_dcc_flow.png) Verifone Example![Select Application in the Verifone Payment Terminal to start the DCC process](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_dcc_flow_verifone_1.png)![Select whether to pay in US Dollars or Euros in the Verifone Payment Terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_dcc_flow_verifone_2.png) ## Receipt Examples With DCC If you select a currency that is not the local currency, the information appears on all receipts (both email and paper) as shown. - Exchange rate used - Source of the Exchange rate - Markup - Amount in the selected currency![A receipt from a DCC purchase.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_dcc_receipt.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Not all fields will be present based on the previous table on DCC fields supported. # Dynamic Revenue Orchestration with Order Management Use the Dynamic Revenue Orchestrator (DRO) with Order Management to manage orders containing both physical products and digital services. With DRO and Order Management, customer service reps (CSRs) can see physical logistics and digital orchestration in one order summary, without switching between systems. ### Required Editions
View supported editions.
To use DRO with Order Management, you need: - Order Management Growth license - Revenue Cloud RevenueLifecycleManagementAddOn license - DROAddOn license DRO with Order Management doesn’t support bundles. DRO provides two services, decomposition, which is optional, and orchestration, which is necessary. Decomposition splits SKUs that contain both physical and digital purchases, such as a phone bundle that contains a phone, charger, anti-virus, and warranty. Orchestration handles the fulfillment of the components of the order, while Order Management handles the physical products. If you’ve set up a decomposition plan, use the isDecomposable flag to tell the system which items require orchestration. - **Items with isDecomposable = true**: If an item isn’t shipped, it requires orchestration, which DRO handles. - **Items with isDecomposable = false**: If an item is shipped, it’s fulfilled through Order Management’s standard fulfillment processing. A CSR can change in-progress, or in-flight, orders. The integration supports these in-flight modifications: - **Cancellations**: Freeze the DRO fulfillment plan, cancel unfulfilled digital line items, reconcile the plan, and unfreeze it to continue processing remaining items. - **Returns**: Process returns of physical items through Order Management while keeping the DRO fulfillment plan intact for digital services. - **Plan reconciliation**: After in-flight changes, automatically reconcile the fulfillment plan by removing previous fulfillment order line items and creating updated ones. The freeze and cancel steps are separate by design to avoid timeouts and give you flexibility in how to combine them into your business processes. DRO and Order Management use several mechanisms to keep both systems synchronized: - **DRO triggers Order Management routing**: DRO can initiate routing for physical items by creating an OrderSummaryRoutingSchedule record through an AutoTask step in the orchestration plan. - **Order Management signals fulfillment completion**: When a physical item is fulfilled, Order Management publishes a FulfillmentSourceChangeEvent that signals DRO. This event resumes any pause steps in the plan that need physical fulfillment before proceeding with digital provisioning. - **Fulfillment order status management**: For digital order item summaries, DRO manages fulfillment order status transitions. When an [expression set](https://help.salesforce.com/s/articleView?id=ind.dro_configure_es_mapping.htm&type=5&language=en_US) evaluates context data, it considers only the order item summaries that are directly related to the given step. The expression set establishes this relationship through the FulfillmentStepSource junction record rather than by scanning every order item summary on the order. The factors determine which order item summaries are linked to a step are: - The scope defined in the step definition - The product fulfillment scenario configuration Dynamic Revenue Orchestrator creates these FulfillmentStepSource associations during the plan composition stage, when you submit the order summary. If your context definition doesn't return the expected order item summary data, check these associations before you assume that there's a mapping issue. - **[DRO for Order Management Prerequisites](https://help.salesforce.com/s/articleView?id=commerce.om_dro_prereqs.htm&release=264.0.0&type=5)** Before you can use DRO with Order Management, enable the feature, clone the necessary flows, and set up Revenue Cloud DRO. - **[Configure Dynamic Revenue Orchestrator to Pause Status Changes](https://help.salesforce.com/s/articleView?id=commerce.om_configure_dro_pause_steps.htm&release=264.0.0&type=5)** Coordinate fulfillment between Dynamic Revenue Orchestrator (DRO) and Order Management by configuring pause steps that wait for specific Order Management milestones. For example, pause fulfillment until all ordered items are delivered. #### See Also - [DRO for Order Management Prerequisites](https://help.salesforce.com/s/articleView?id=commerce.om_dro_prereqs.htm&release=264.0.0&type=5 "Before you can use DRO with Order Management, enable the feature, clone the necessary flows, and set up Revenue Cloud DRO.") # Dynamically Assign Buyer Groups by Using Apex Logics Dynamically assign guest and authenticated buyers to buyer groups for a B2B store by using custom Apex logics. When buyers visit the store pages, the Apex logic adds them to a buyer group based on the defined criteria. Assigning buyers dynamically when they visit a storefront ensures timely, personalized shopping experiences including targeted product visibility, pricing, and promotions, without manual intervention. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important For D2C stores, this feature works only if you've configured a custom checkout experience. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**. 3. Click the **Buyer Access** tab. 4. Enable Buyer Group Extension. 5. In the Buyer Group Extension tile, click **Select Provider**. Choose a provider and select your custom Apex class. 6. Click **Next** and then confirm your selection. 7. To change or remove the provider, use the dropdown menu on the extension tile. The Apex logic runs each time a shopper visits a page in your store and assigns them to a buyer group based on the criteria you’ve defined. #### See Also - [BuyerGroupEvaluationService Class](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_CommerceBuyGrp_BuyerGroupEvaluationService.htm) - [Considerations for Buyer Group Extension](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_group_extensibility_considerations.htm&release=264.0.0&type=5 "As you turn on buyer group extension, keep these considerations in mind.") - [Add Accounts to a Buyer Group for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_add_buyer_accounts_to_buyer_group.htm&release=264.0.0&type=5 "To give multiple accounts access to the same store, price books, and entitlements, create a buyer group and add the accounts.") - [Associate a Buyer Group with a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups.htm&release=264.0.0&type=5 "Product prices and the products that buyers can access depend on the price books and the entitlement policies assigned to the buyer group. When you create a store, a default buyer group is assigned to the store.") - [Shopper Buyer Groups and Accounts Data Limits Groups](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-b2c-comm-data-model-shopper-buyer-groups-accounts-limits.html) - [Considerations for Market and Buyer Group Setup for B2B Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_market_considerations.htm&release=264.0.0&type=5 "As you set up your market and buyer groups, keep these considerations in mind.") - [Configure Custom Checkout for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_checkout.htm&release=264.0.0&type=5 "Custom checkout gives you more control over your store’s checkout configuration. You can use third-party apps instead of Salesforce’s native merchant services for payments, tax, and shipping. Or, you can extend native merchant services using custom checkout. You can design your own checkout page in Experience Builder with preset layouts, custom sections, and components. For B2B stores, custom checkout is the only option for configuring checkout.") - [Considerations for the Salesforce CDN](https://help.salesforce.com/s/articleView?id=platform.community_builder_cdn_considerations.htm&language=en_US) - [Considerations for Salesforce Edge Network](https://help.salesforce.com/s/articleView?id=xcloud.domain_name_edge_network_considerations.htm&language=en_US) # Easily See If Preview Setting Are Selected Page Designer now provides a visual cue to let you know when preview settings are configured. What: When you create a page in the Page Designer visual editor, you can preview a page for certain customers or on certain dates, or using particular source code. For dynamic pages, you can also preview the page for a particular category or product. With this release, it’s easy to tell when preview settings are configured. A small green circle is displayed near the preview icon. ![Preview icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_7/preview_icon.png) #### See Also - [Preview Page Designer Pages](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_preview_pd_page_task.html) # Easily View and Download Files Use the new folder browser feature in Business Manager instead of a WebDAV client to view and download files such as log files. The folder browser lets you quickly and easily view and download files that you have WebDAV permissions for. How: Go to **Administration** | **Site Development** | **Development Setup**. Click the **Folder Browser** tab. See folders that you have WebDAV permission for. You can browse the folders or filter the list of folders and files by name. Click a file to open it, or click **Download**. #### See Also - [Access WebDAV](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_access_files_webdav.html) # eCDN Review the new B2C Commerce eCDN feature in the 20.1 release. - **[Changes to eCDN WAF Log Updates](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_w69051053_ecdn_waf_log.htm&release=264.0.0&type=5)** The eCDN WAF log delivers more comprehensive data to provide additional insights into WAF rules that are triggered. We added fields about the firewall type and any actions performed by WAF and removed fields made obsolete. The new WAF fields enable you to self-diagnose your environment and investigate the reason a WAF rule triggered. In addition, we added a field that indicates whether assets were cached on the eCDN. # eCDN Review the new B2C Commerce eCDN feature in the 20.2 release. - **[Proxy Zone DNS CNAME Format Changes](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_w6694727_proxy_zone_dns_cname_mb.htm&release=264.0.0&type=5)** For new Proxy Zones, the DNS CNAME format now ensures that each generated CNAME is unique. # eCDN Review the new B2C Commerce eCDN feature in the 20.3 release. - **[Changes to eCDN WAF Log Updates](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_w7208821_ecdn_waf_log_mb.htm&release=264.0.0&type=5)** We modified the eCDN WAF log in the 20.1 B2C Commerce release to deliver more comprehensive data and provide added insights into WAF rules that are triggered. We provided a legacy and a new version of the eCDN-WAF log. In this release, we phased out access to the legacy eCDN-WAF Log version. # Edit a Coupon for a B2B Store Create a coupon code that customers can manually enter to redeem a promotion. Control the coupon usage by setting redemption limits and specifying the start and end dates. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Only manual promotions use coupons. To set a promotion to manual, deselect **Automatic**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note For subscription products, coupon codes apply only to new purchases. They don't apply to amendments or renewals. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Promotions**, and select the promotion. 3. On the Coupons tab, click **New**. 4. Enter a coupon code. This code is what customers use to redeem the promotion. A customer can add up to five coupons per cart. 5. Enter an optional description that customers don’t see. 6. Use the Status field to set the coupon as active or inactive. 7. (Optional) Enter a redemption limit per buyer and the maximum number of uses across all buyers up to 1000 for both fields. When the coupon meets your specified limit, it’s no longer valid. When you specify an all-buyer coupon limit, the limit per buyer can’t exceed it. After you create the coupon, you can’t decrease the redemption limit. If you create the coupon without a limit, any change to the redemption limit is considered a decrease. To change the limit, delete and recreate the coupon. 8. (Optional) Enter the start and end dates and time for the coupon. 9. Save your changes. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example With your Black Friday promotion, you want to create a coupon code called 20OFF that a limited number of customers can redeem days prior and through the biggest shopping day of the year. - Enter 20OFF for the Coupon Code and Black Friday as the associated promotion. - Set the status to **Active**. - Enter 100 as the redemption limit for all buyers and 3 as the redemption limit per buyer. - Enter 11/15/2023 at 12:00 AM as the start date and time and 11/25/23 at 12:00 AM as the end date and time. ![The Coupon page, showing fields for entering the coupon information and setting it to Active](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_coupons.png) #### See Also - [Commerce Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_create_manage.htm&release=264.0.0&type=5 "Enhance your B2B store by adding customized promotions. Create segments, discounts, qualifiers, and coupons for the right customers to receive the right deals. Highlight promotions for eligible customers on store pages and during checkout to boost engagement and sales.") # Edit a Location Use the Omnichannel Inventory Console to change existing fulfillment location details. ### Required Editions
View supported editions.
User Permissions Needed
To edit a location. Edit on Locations
1. From the Navigation bar, open the Locations list view page. 2. For the location you want to edit, click ![Down arrow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/inv_omnichannel_inventory/images/inv_arrow.png) and select **Edit**. 3. Make your changes, and save. 4. Commit your changes. #### See Also - [Manage Locations](https://help.salesforce.com/s/articleView?id=commerce.inv_locations.htm&release=264.0.0&type=5 "Locations represent physical locations—distribution centers, warehouses, or retail stores—where you have inventory available for fulfilling orders. Manage them using the Omnichannel Inventory Console.") # Edit a Location Group Use the Omnichannel Inventory Console to change existing fulfillment location group details. ### Required Editions
View supported editions.
User Permissions Needed
To edit a location group. Edit on Location Groups
1. From the Navigation bar, open the Location Groups list view page. 2. For the location group you want to edit, click ![Down arrow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/inv_omnichannel_inventory/images/inv_arrow.png) and select **Edit**. 3. Edit the fields on the Edit Location Group page. 4. Save your changes. 5. Commit your changes. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_important.png) Important Don’t upload inventory availability data while committed changes are pending. Before uploading availability data, verify that no location group changes are in progress by checking the async operation logs. #### See Also - [Manage Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_location_groups.htm&release=264.0.0&type=5 "Location groups represent sets of related locations. Assign locations to a location group. A location group provides an aggregate view of inventory availability across the locations in the group. Manage them using the Omnichannel Inventory Console.") # Edit a Promotion Discount for a B2B Store Modify a promotion discount to better meet your business goals and customer needs by adjusting the target audience, discount type, and amount. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before setting up the discount, make sure that the correct quantity rule is set. If quantity rules are enabled, the specified increment is treated as 1 unit. For example, if you receive a US$1 discount for every 1 unit of something and the quantity rule is set to 10, you receive a $1 discount for every 10 units. See [Create a Purchase Quantity Rule for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_products_qr_create_assign.htm&language=en_US). 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Promotions**, and select the promotion you want to edit. 3. On the Discounts tab, select an existing discount or click **New**. 4. (Optional) Add a promotion tier. See [Add a Promotion Tier](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_add_tier.htm&release=264.0.0&type=5 "Use tiers to create progressive discounts for a promotion. You can add tiers only to a promotion that was created as a tiered promotion. All discounts within a tier must be of the same type. You can create up to 10 tiers per promotion."). 5. Select a target type to specify which part of the purchase to apply the discount to. - Product–Apply the discount to individual products. You can discount up to 25 products. You can discount all variations or later use variation attributes to restrict the discount to specific variations of the variation base products. - Category–Apply a discount to a set of products in a catalog. You can discount up to 25 categories. You can discount all variations or later use variation attributes to restrict the discount to specific variations of the variation base products. - Transaction–Apply a discount to the total order amount. - Shipping–Apply a discount to all shipping methods on the order. A shipping promotion is applied to all the shipping methods that the customer is eligible for. To use a shipping promotion, your store must have the Cart Calculate API enabled. See [Enable and Disable the Cart Calculate API for a Webstore](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html#enable-and-disable-the-cart-calculate-api-for-a-webstore). - Shipping Rate–Apply a discount to an individual shipping method on the order. You can discount up to 25 shipping rates. To use a shipping rate promotion, your store must have the Cart Calculate API enabled. See [Enable and Disable the Cart Calculate API for a Webstore](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html#enable-and-disable-the-cart-calculate-api-for-a-webstore). 6. For the Product, Product Category, and shipping rate target types, select a target that matches the target type that you’re selecting. A promotion can have multiple product discounts as long as they have the same target type. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Product search supports only product names. Searching by SKU, product ID, or custom attributes isn't supported. 7. (Optional) For the Category target type, select **Apply to sub-categories** to apply the discount to the selected category and all its subcategories. The discount applies across the entire category hierarchy, including subcategories that you add later. If you leave this field blank, the discount applies only to the selected category, and not to its subcategories. 8. For subscription products, select a product selling model to which the promotion applies. To apply the promotion to term-defined or evergreen subscription products, select the appropriate product selling model. If you leave this field blank, the promotion applies only to non-subscription products. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Promotions that target a product category apply to all product selling models for subscription products in that category. 9. If you have a multicurrency store, select a currency ISO code. This field is available only in multicurrency stores. 10. Select an adjustment type to specify which method to use for the discount. - Fixed Amount Off Line Item Total—Deducts an amount off a product or cost shipping line item. - Fixed Amount Off Transaction—Deducts a monetary amount off the entire product amount for a transaction. This option is available only when you use the Transaction target type. - Fixed Amount Off Unit Price—Deducts an amount off each quantity of a product line item. - Fixed Price—Specifies a promotional price for a product, product category, shipping, or shipping rate. - Percentage Discount—Deducts a specified percent from the price of a product, product category, transaction, shipping, or shipping rate. - Total Fixed Price—Specifies a promotional price for a set of products or product categories. - Bonus Product—Specifies a bonus product to add to an order at no additional cost. You can target only one simple or variation product. The product can be purchasable or non-purchasable. 11. Enter the amount or percent of the adjustment. 12. (Optional) To restrict the number of products that can receive the discount, enter a quantity limit. The default is unlimited. You can’t set a quantity limit for shipping or shipping rates. 13. Select a target operator. - None—None of the possible values apply. If the target type is Transaction or Shipping, select **None**. - Equal to—The qualifying product or item in the qualifying category must be in the cart. - Not Equal to—The qualifying product or item in the qualifying category isn’t required to be in the cart. 14. (Optional) To require the customer to meet the limit to be eligible for the promotion, select **Apply discount only when a cart reaches the quantity limit**. 15. Save your changes. 16. (Optional) To add more conditions for a discount to be applied, click the promotion target name and then click **Edit** under Promotion Rules. You can’t apply rules for shipping or shipping rates. - Any Condition Is Met—The promotion is applied if any condition is met. For instance, to create a discount for shoes or pants, add two discount target types with the respective targets. If the customer’s cart has either shoes or pants, the discount is applied. - All Conditions Are Met—The promotion is applied only if all conditions are met. For instance, to create a discount for shoes and pants, add two discount target types with the respective targets. If the customer’s cart has both products, the discount is applied. Adding only the shoes or pants doesn’t trigger the discount. 17. Click **Add Condition**. - Target Type–The type of item to apply the discount to. For instance, to apply a discount to shoes, select Product as the rule’s target type. If the main target type is a parent product or a category, you can select an attribute as the rule’s target type. - Operator Type–The condition that determines which item within the target type is or isn’t eligible for a discount. For instance, to apply a discount to shoes, select Product as the rule’s target type, select **Is** as the operator type, and select shoes as the target. - Target–The specific item or attribute value to apply the discount to‌. For example, if you select Product as the rule’s target type, you can enter shoes as the target. If the target type is an attribute, such as color, you can select a value, such as red, as the target. 18. Save your changes. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example To encourage your U.S. customers to stock up on healthy snacks, you want to provide a 10% discount on all energy bars in your store. When you create a promotion target: - For Target, select **Energy Bars**. - For Target Type, select **Product Category**. - For Adjustment Type, select **Percentage Discount**. - For Currency ISO Code, select **USD - U.S. Dollar**. - For Adjustment Percent, enter **10**. ![The target for the promotion discount.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_promotions_discounts.jpg) #### See Also - [Commerce Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_create_manage.htm&release=264.0.0&type=5 "Enhance your B2B store by adding customized promotions. Create segments, discounts, qualifiers, and coupons for the right customers to receive the right deals. Highlight promotions for eligible customers on store pages and during checkout to boost engagement and sales.") # Edit a Promotion for a B2B Store Manage promotions by configuring a promotion record. You can edit a promotion’s details, such as the discount type, qualifying conditions, and duration, in the promotion record. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Add a Promotion Tier for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_add_tier.htm&release=264.0.0&type=5)** Use tiers to create progressive discounts for a promotion. You can add tiers only to a promotion that was created as a tiered promotion. All discounts within a tier must be of the same type. You can create up to 10 tiers per promotion. - **[Edit a Promotion Discount for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_discounts.htm&release=264.0.0&type=5)** Modify a promotion discount to better meet your business goals and customer needs by adjusting the target audience, discount type, and amount. - **[Edit What Qualifies for a Promotion for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_qualifiers.htm&release=264.0.0&type=5)** Use a qualifier to set specific requirements for a discount to be added to a promotion. For example, you can require customers to spend a minimum amount to qualify for a percentage discount on a particular product. - **[Edit a Coupon for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_coupons.htm&release=264.0.0&type=5)** Create a coupon code that customers can manually enter to redeem a promotion. Control the coupon usage by setting redemption limits and specifying the start and end dates. - **[Target Customers with a Promotion Segment](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_assign.htm&release=264.0.0&type=5)** Use segments to associate your promotion with specific stores or buyer groups. Then only customers who are a member of the store or buyer group can see the promotion. You can apply one promotion segment at a time to a store. A promotion segment can have up to 50 automatic and 50 manual active promotions. - **[Localize Promotion Data](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_localize.htm&release=264.0.0&type=5)** You can manually enter translated text for promotion names, display names, and terms and conditions if you have Data Translation enabled. # Edit an Inventory SKU in the Omnichannel Inventory Console You can edit up to 100 SKUs at a time. ### Required Editions
View supported editions.
1. In the Omnichannel Inventory console, go to the Inventory Lookup tab. 2. Enter a SKU and select a location group. 3. Click **Get Inventory Data**. 4. Click the field that you want to edit and update the inventory availability. 5. Select **Save**. # Edit Layout Settings in the Layout Editor Customize layout settings in the Point of Sale Layout Editor to enhance user experience and control. Enable features such as Paginate for full-screen cell views, override app config settings for tailored UI options, and use Snap to Grid for precise overlay alignment. The Advanced tab contains layout settings. ## Paginate The paginate setting causes each cell in the layout to occupy the entire view area. The user can swipe up or down to move between cells. 1. Go to the ADVANCED tab of the toolbar. 2. Expand UX. 3. Enable Paginate. ![Example of the POS app shows a paginated cell.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_editor_layout_settings_paginate.png) ## Override App Config Settings Layouts inherit settings from the production app config (**Apps** | **your app config** | **Edit, UI** | **UI Options**), but these settings can be overridden. To override app config settings: 1. Go to the ADVANCED tab of the toolbar. 2. Expand UX. 3. Enable Override App Config Settings which reveals additional configuration fields. ![A screenshot shows the toolbar with the override app config settings highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_editor_layout_settings_override.png) ## Switch App Configs The Layout Editor preview uses the iOS production config for default layout settings, such as background color and margin (**Apps** | **your app config** | **Edit, UI** | **UI Options**). To preview the layout settings from another app config: 1. Go to the ADVANCED tab of the toolbar. 2. Expand MORE. 3. Click **Set App Config**. 4. Select an app config and click **SET**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If you reload the page the layout previews revert to using the iOS production config for layout settings. ## Carousel Settings 1. Go to the ADVANCED tab of the toolbar. 2. Expand Carousel Settings. 3. When Auto Scroll is enabled, the carousel automatically cycles through images without the user having to swipe. ## Replacing Fonts in Text Overlays When a layout has multiple text overlays, it can be tedious to change all the fonts. There's a utility that performs this task automatically. 1. Go to the ADVANCED tab of the toolbar. 2. Expand MORE. 3. Click Replace Fonts. 4. Select a font from the dropdown or enter a font in the input field and click SELECT. ## Snap to Grid When there are multiple overlays that need to be aligned, you can use the Snap to Grid feature. 1. Go to the ADVANCED tab of the toolbar. 2. Expand GUIDES. 3. Enable Snap to Grid. 4. (Optional) Enable Grid to view the actual grid in the layout. 5. (Optional) Change Grid Size for fine-tuning the snap placement of an overlay. # Edit or Delete a Sort Rule You can edit a sort rule and change where it appears in the sorting menu of your B2B Commerce store. To remove a sort rule from the sorting menu, delete the rule. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Search**. 3. Click **Sort Rules**. 4. For the sort rule that you want to edit, click the actions dropdown menu in the rightmost column of the table. 5. Click **Edit**. In the Edit sort option window, you can change these parameters. | Parameter | Description | | --- | --- | | Product Field Name | Product or attribute value to use for the sort rule. | | Sort Order | Choice of Ascending or Descending. | | Sort Order Label | Optional label to help clarify how sorting occurs. For example, alphabetically, numerically, by cost, the size of a product, and so on. | | Sort Menu Order | Numerical position where the sort option appears in the menu. | 6. For the sort rule that you want to delete, click the actions dropdown menu in the rightmost column of the table, and select **Delete**. 7. Click **Save**. 8. Update the search index. #### See Also - [Enable or Disable Sort for Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_options_enable.htm&release=264.0.0&type=5 "Sorting is enabled for search and category pages in B2B Commerce stores by default. However, you can control whether customers can see the sorting menu that appears on these pages with the Results Layout component. You can change the sorting properties on any page that uses the Results Layout component.") - [Add a Sort Rule](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_rule_add.htm&release=264.0.0&type=5 "Create a sort rule based on available products and product attributes to let customers arrange results in search and category pages for B2B Commerce stores.") # Edit or Delete a Synonym Rule in B2B Store Modify existing synonym rules or remove rules that no longer apply to your current catalog. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Synonym Rules**. 3. Locate the rule you want to edit or delete. Search for specific terms in the search box, or use the filter to narrow results by rule type or locale. 4. To edit a rule, click ![Action button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_edit_action_arrow.png) and select **Edit**. To delete a rule, click ![Action button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_edit_action_arrow.png) and select **Delete**. 5. Make your changes and click **Save**, or confirm the deletion. #### See Also - [Synonym Rules for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_search_synonym_rules_for_b2b_stores.htm&release=264.0.0&type=5 "Synonym rules define relationships between different search terms that buyers use to describe the same product. Buyers often search using everyday language rather than your exact catalog terms. By mapping alternate words to your catalog terminology, synonym rules ensure searches return relevant results and make products easier to discover. Configure one-way rules for targeted mappings or two-way rules for fully interchangeable terms. For example, a one-way rule allows a search for “sofa” to return products named “couch”, while a two-way rule ensures searches for either term return results for both.") - [Create a Synonym Rule for B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_create_synonym_rules.htm&release=264.0.0&type=5 "Define one-way or two-way relationships to map buyer search words to your catalog data. Connect alternate phrasing, informal words, or regional terms to your exact product names to make sure that buyers find relevant products even when they use search terms that don’t exactly match your catalog.") - [Activate or Deactivate a Synonym Rule in B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_activate_synonym_rules.htm&release=264.0.0&type=5 "Turn synonym rules on or off temporarily to adjust the search behavior without deleting them.") # Edit Orders on POS App With the POS app, you can change an order after it's placed but before it's fulfilled. Update quantities, remove items, or apply discounts to meet your customers' changing needs. Quickly adapt to requests and ensure order accuracy, leading to increased customer satisfaction and efficient service. - Modern POS App Build: 5.6.0 or above - Platform Support: iPad - Offline Support: No 1. In CMS, go to **Store Management** | **Store Settings** | **OMS**. 2. Expand Advanced. 3. Enable these flags to allow orders to be modified on the app: 1. Allow Editing of Order (allowEditOrder) 2. Treat Each Item As Separate Line Item (treatEachItemInCartAsSeparateLineItem)![The advanced store setting options.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_store%20settings.png) 4. Save your changes. ## Control Flow ![A flow chart shows the edit order process.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_control_flow.png) ## POS Behavior This feature allows the associate to make changes to an existing order if the order is yet to be fulfilled. The associate can access and modify the orders using the Order History option in the hamburger menu. ### Search Orders Go to the order history screens and search for the particular order using the filter options.![A POS screen shows a search for an order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_search_orders.png) ### Select an Order to Modify View the orders and select an order. Click the EDIT ORDER button at the bottom to start editing the order. Note, for merchants utilizing the [Order SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#order-spis), the edit order flow in the app leverages the same `GET` order endpoint as other app areas, successfully retrieving and displaying orders. Both the edit and create flows use the `GET` order endpoint to retrieve orders, while the `POST` sale order endpoint is used to post updates to the order.![A POS screen shows the selection of an order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_select_orders_1.png)![A POS screen shows a selected order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_select_orders_2.png) ### Add Items to the Order New items can be added to be part of the existing order to share the same shipping address, delivery dates, and order number. The associate can use the product look up option in the cart or the scanner to scan and add the new product into the order.![A POS screen shows a checkout cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_add_items_1.png)![A POS screen shows a checkout cart with an item added.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_add_items_2.png) ### Remove Items from the Order Some or all products from the Modifying Order screen can be cancelled and/or replaced with new products. The Delete button in the cart on the item level can be used to remove the product from the order. The Checkout button confirms the removal and returns the refund if available. ![A POS screen shows a checkout cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_remove_items_1.png)![A POS screen shows the dialog to confirm the removal of a cart item.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_remove_items_2.png) ### Remove Items in Bulk/Cancel Order Items can be removed or canceled altogether in the cart screen using the **Cancel Entire Order** button. ![A POS screen shows the cancel entire order button.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_cancel_order_1.png) On click of the **Cancel** button, the app will show a confirmation message to cancel the entire order. ![A POS screen shows the cancel order confirmation dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_cancel_order_2.png) If some of the items are eligible for cancellation and some are not, then the app will show the below error message with confirmation to cancel open items. ![A POS app screen shows the warning message that some items cannot be canceled,](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_cancel_order_3.png) Once the associate confirms the cancellation, all items in the cart will be switched to the canceled state and the cart summary will update to reflect the updated total/refund amount. ![A POS screen shows cancel order items and updated amount.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_cancel_order_4.png) The associate can trigger the refund flow using the **Process Refund** button at the bottom. ![A POS screen shows the process refund dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_cancel_order_5.png) ### Change Fulfillment Type, Shipping Address, Pickup/Delivery Dates Fulfillment type can be changed to any of the three modes such as Pick Up / Delivery / Take With. The user can change the shipping name and address as well as the pick up or delivery dates for the already placed order.![A POS app screen shows the options to change receipt mechanism.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_change_misc_1.png)![A POS app screen shows the addresses for a delivery option.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_change_misc_2.png) ### Apply Product Level and Transaction Discount Product level discounts can be provided for the existing items in the order as well as newly added items to the order. Overall cart level discount can also be provided using the transaction discount option.![A POS screen shows the options for discount type.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_discount_1.png)![A POS screen shows the entry of a percentage discount.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_discount_2.png) ### Refund/Pay for the Edited Order The summary section shows the paid amount as well as the balance available with respect to the modifying order. A negative balance indicates an available refund. The associate is provided options to choose the available mode of refund(cash/card/gift card) and the amount is refunded to the chosen tender. If there is a balance to be paid by the customer, the checkout option transfers the user to the Multi Tender screen to complete the payment. #### No Refund Changes to the fulfillment type and pick-up / delivery dates usually will not require any additional charges.![A POS screen showed no refund details.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_no_refund.png) #### Refund for Edited Order An existing item is removed/canceled from the order. The amount paid corresponding to that item will be issued as a refund. ![A POS screen shows a refund for an order with edited items.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_refund_edited.png) #### Pay for Edited Order New items are added to the order and hence, the customer is required to pay the remaining balance,![A POS screen shows an additional payment needed for an edited order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_pay_edited.png) #### Complete the Payment ![A POS screen shows the completion of a payment for an edited order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_pay_complete.png) ### Cancel / Void Edit Order If the customer decides to not proceed with the modification at any time before opting for checkout, the associate can choose the Void Cart option on the cart screen to cancel the modification. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Point of Sale's Void Cart Webhook can send real-time details when a cart is voided to an external system. For more information, see [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html). ![A POS screen shows the option to cancel an order edit.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_edit_pos_cancel_edited.png) ## Known Issues and Restrictions - Edit order payment is processed in the multi-tender UI. The app disables cash and credit card options on the cart screen - Not all orders are editable. Depending on its fulfillment status, each order will be allowed to be modified. - Edit order is transactional, only one associate can edit at any given time. - Point of Sale services clean the status of an edit order in 15 minutes if the editing register has not made any communication to the Point of Sale services the order is not placed. All the changes made and not committed will be lost. - A fulfilled order will have to be canceled/exchanged through the returns and exchanges flow. - The current edit order implementation doesn’t support the UI on iPhone and iPod screens. - If the edit order contains a previously made deposit, associates can choose to add an additional deposit via multi-tender. - Associate can choose to complete the edit order with any charges due without any additional tender. - Once cancel entire order flow is started, any new items will not be added to the edit cart. The app will show the error message that "Adding more items are not allowed". - If a promotion or discount is applied to an order, it will be retained when the order is edited. However, new promotions cannot be applied during the edit. Users can only apply manual discounts—not promotions—when editing an order. # Edit Quizzes Point of Sale quizzes consist of layouts, questions, and customer attributes. Understanding these components helps you to effectively create quizzes. Knowing these components also enables you to avoid errors while editing quizzes. Leverage this knowledge to build effective quizzes in Point of Sale. #### See Also - [_Salesforce Help:_ Create a Quiz](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_create.htm&release=264.0.0&type=5 "Use quizzes in Point of Sale to understand your customers' preferences and gather valuable data. Create engaging quizzes, forms, or polls to capture user feedback and information. Add surveys after successful checkouts and include mandatory questions to ensure you get the data you need. You can create quizzes that will allow users to answer a question and see the results of the poll in real-time after submitting their answer.") - [_Salesforce Help:_ Use Quiz Styles](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_styles.htm&release=264.0.0&type=5 "Customize the look and feel of inline Point of Sale quiz deep links.") ## Quiz Layouts Quiz layouts are configured out of the box when you complete the quiz create workflow. However, if you start to tinker with these layouts it is important to understand the elements that make up these layouts and the relationships between the different elements. To access quiz layouts: 1. In CMS, go to **Layouts** > **Personalization** > **Quiz Layouts**. 2. Click EDIT on a layout. ### Multiple-Choice Questions Multiple-choice questions display rows of possible answers with two answers per row (this was achieved with a vertical split). Each answer is configured as a "Quiz Answer" cell which can be edited by double-clicking on it. ![The quiz answer dialogue configuring a multiple-choice question.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_quizzes_edit_layouts_multi_choice.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Once a user has taken the quiz and chosen an answer, you cannot edit the question or answer option for that quiz answer cell. You can, however, still, edit the "Selected" and "Not Selected" images. ### Text Answers A quiz answer can be a free-form text input for (1) short answer questions and for (2) multiple-choice questions that have the "Other" option enabled. These types of questions are configured as a Form Element. To edit a text field or inspect its properties, double-click on it. ![A text field opened for editing.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_quizzes_edit_layouts_text.png) ### Next Button In a multi-page quiz workflow, all but the last layout will contain a NEXT button that takes the user to the subsequent page. The next button is configured as a Form Element. You can edit the button or inspect its properties by double-clicking on it. ### Save Button On the last page, a SAVE button submits the answers and specifies where the user should be taken. If you include an "Answer Summary" layout then the user will be taken to this Layout. Otherwise, the user is taken to the home page by default. To edit this button or to inspect its properties double-click on it. ### Answer Summary Layout The "Answer Summary" layout can be optionally generated when creating a Quiz. It displays the user’s answers to each question. Additionally, if you include "Edit Answer" layouts then each question will also include a deep link to a layout where the user can edit each individual question. Below is an example of an "Answer Summary" layout that includes "Edit Answer" layouts. ![An "Answer Summary" layout that includes "Edit Answer" layouts.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_quizzes_edit_layouts_summary_layout.png) On this layout, the inline quiz deep links are used to show answers after the user has taken the quiz. You can edit the inline deep link or inspect its properties by double-clicking on it. ![The deep link dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_quizzes_edit_layouts_deep_link.png) ## Customer Attributes & Quiz Questions When a quiz is created, the customer attributes and quiz questions are created behind the scenes. 1. To view or edit customer attributes: 1. Go to **Personalization** | **Quiz Elements** | **Customer Attributes**. 2. (To Add) Click on the blue + sign in the top right corner. 3. (To Delete) Click on the red trash icon to the left of the attribute. 2. To view, add, or edit quiz questions: 1. Go to **Personalization** | **Quiz Elements** | **Quiz Questions**. 2. (To Add) Click on the + icon. 3. (To Edit) Click on the kebab menu (three vertical dots) in the top right corner of the question. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Each question must be associated with a customer attribute. Please note that if you edit a question, the corresponding layouts will need to be updated as well. ## Quiz Exit Layout When a user departs the quiz without answering all questions, the user experience can be customized through a Quiz Exit layout. It's important to note that the quiz will not automatically save, even if the customer leaves or the app times out. 1. Inside of a new quiz layout: 1. Create a STAY call to action that uses a Back deep link. 1. Create an EXIT button that is a form element with a Quiz Submit button action and a deep link (usually to the home layout). 2. Next, assign the layout to the app config: 1. Go to your app config and click EDIT. 2. Go to **UI** | **QUIZ LAYOUTS**. 3. Select the Quiz Exit Layout from the dropdown. 4. Click **SAVE**. ![A quiz exit layout, showing the options to stay in the quiz or exit.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_quizzes_edit_exit_layout.png) # Edit Rows and Cells in the Layout Editor Easily manage your Point of Sale layout by adding, inserting, resizing, and deleting rows and cells. Customize cell padding and split cells horizontally or vertically for precise control, enhancing your design flexibility and efficiency. If you've used a spreadsheet application, such as Microsoft Excel or Google Sheets, you can think of a layout like a spreadsheet. A layout has to have at least one row. and you can add as many additional rows as you like. Initially, a row contains one cell. Each cell can be split one or more times. Rows and cells can be resized, copied, and deleted. A row takes up the entire width of the app screen and has a specified height. The cell takes up the entire space inside of the row. A blank layout starts as one row with one cell inside it. ![A blank layout shows one row containing one cell.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_editor_cells_rows_cell.png) Each cell can be split one or more times. You can split a cell vertically or horizontally. When you perform a split, each cell takes up half of the space, but you drag the space separating the two cells to change how much space each cell takes up. ![Example shows a cell split horizontally and vertically.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_editor_cells_rows_split_cells.png) ## Add a Row Click **\+ ADD TOP ROW** or **\+ ADD BOTTOM ROW** above the layout preview. ![Screenshot shows the editor options for adding a row.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_editor_cells_rows_add.png) ## Insert a Row 1. Select any cell in the row. 2. Click **Insert Above** or **Insert Below** from the toolbar. ![A screenshot shows the editor toolbar options for inserting a row.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_editor_cells_rows_insert.png) ## Set a Row's Height You can drag the bottom of the row to adjust its height. 1. Hover over the bottom edge of the row. 2. Click and drag up or down to adjust the row's height. Alternatively, you can manually enter the row's height. 1. Select any cell in the row. 2. Expand Cell Operations in the toolbar 3. In the field, Set Row Height, enter the height in pixels. 4. Hit Enter or click the Save icon. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important For the alternative method, even though you selected a cell, the resize operation is performed on the entire row. ## Delete a Row 1. Hover over the row. 2. Click the Delete icon in the bottom right ## Copy a Row You can copy a row by clicking the row's Copy icon. 1. Hover over the row. 2. Click the Copy icon in the bottom left. 3. Hover over another row. 4. Click the Paste icon in the bottom left. ![A screenshot highlight the icons for copying and pasting a row.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_editor_cells_rows_copy.png) Alternatively, you can use hotkeys to perform a row copy. 1. Select any cell in the row. 2. Press cmd + shift + c. 3. Select any cell in another row. 4. Press cmd + v. ## Split a Cell You can split a cell by using the icons in the top right of the cell. 1. Hover over the cell. 2. Click the Horizontal Split or Vertical Split icon in the top right. ![A screenshot shows the icons for horizontally and vertically splitting a cell.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_editor_cells_rows_split.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important If a cell is too small, the icons don't appear when hovering over the cell. Alternatively, right-click a cell and use the menu, or use the toolbar to the right of the layout preview to perform a cell split. 1. Select a cell. 2. Expand Cell Operations in the toolbar. 3. Click **Horizontal Split** or **Vertical Split**. ## Resize Split Cells Split cells can be resized by hovering over the space between the cells. A blue outline appears around the cells to be resized. 1. Hover over the split. 2. Click and drag the blue line to perform the resize ## Adjust Cell Padding Cells can have their padding adjusted using the layout editor. 1. Select a cell. 2. On the layout editor, go to **Cell Operations** | **Cell Padding**. 3. Customize the padding in pixels for the top, bottom, left, and right. ![A screenshot shows the settings for cell padding.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_manage_editor_cells_rows_padding.png) ## Clear a Cell 1. Select the cell. 2. Press backspace/delete. ## Delete a Cell 1. Select the cell. 2. Hover over the cell and click the Delete icon in the bottom right OR press cmd + backspace/delete. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note To undo deleting or clearing a cell, simply press cmd + z on your keyboard. ## Copy a Cell 1. Select the cell. 2. Press cmd + c. 3. Select another cell. 4. Press cmd + v. ## Layout Editor Hotkeys | Action | Hot Keys | | --- | --- | | Undo | Ctrl + Z | | Copy cell | Ctrl + C | | Copy row | Ctrl + Shift + C | | If a cell was copied, paste cell | Ctrl + V | | If a row was copied, paste row | Ctrl + V | | Cut cell or text overlay | Ctrl + X | | Cut row | Ctrl + Shift + X | | Empty cell | Delete | | Delete cell | Ctrl + Delete | | Delete row | Ctrl + Shift + Delete | # Edit What Qualifies for a Promotion for a B2B Store Use a qualifier to set specific requirements for a discount to be added to a promotion. For example, you can require customers to spend a minimum amount to qualify for a percentage discount on a particular product.  ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Promotions**, and select the promotion you want to edit. 3. On the Qualifiers tab, select the qualifier to edit or click **New**. 4. To find a specific product or product category, select **Category** or **Product** in the Qualifier field dropdown and then search for the product or category. - To base your qualifier on a specific product, from the Qualifier dropdown, select **Product**. You can have up to 200 product qualifiers. You can qualify all variants or later use variation attributes to restrict the qualifier to specific variants of the variation base products. - To base your qualifier on a subsection of products in a catalog, from the Qualifier dropdown, select **Category**. You can add up to 25 category qualifiers. You can qualify all variants or later use variation attributes to restrict the qualifier to specific variants of the variation base products. - To base the qualifier on only the transaction total, leave the Qualifier field empty. You can add one transaction total qualifier per promotion. Select this qualifier if you’re creating a promotion with an approaching discount alert. 5. Choose a qualifier type that matches the qualifier that you selected. If the Qualifier field is empty, select **Transaction Total**. 6. Limit your promotion with either a quantity or price minimum. Quantity minimums support decimal amounts up to four places. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note When a promotion rule qualifies on a subscription product, use a quantity minimum. Qualifying by price or amount isn’t supported for subscription products. 7. If you have a multicurrency store, select a currency ISO code. 8. (Optional) Enter an approaching discount threshold value. This field is available only to promotions that target shipping, shipping rates, or transactions. This value determines when a customer sees an alert that their cart is approaching a discount. For example, if you set a qualifier amount at $100 and a threshold value at 70, customers see a message that their cart is approaching a discount when they have spent $70. 9. Save your work. 10. (Optional) To add more conditions to the qualifier, click on the promotion qualifier name and then click **Edit** under Promotion Rules. - Any Condition Is Met—The promotion is applied if any condition is met. For instance, the promotion offers a 10% discount on the entire order if the customer buys either red or purple shoes. The customer receives the 10% discount on the total purchase as long as they have either red or purple shoes in their cart. - All Conditions Are Met—Each condition in the promotion is evaluated separately and must be fulfilled. For example, a promotion offers a discount if a customer buys 2 red shoes and spends $100. The cart must include the 2 shoes and at least $100 more, over and above the value of those shoes. 11. Click **Add Condition**. - Target Type–The type of item to apply the discount to. For instance, to apply a discount to shoes, select Product as the rule’s target type. If the main target type is a parent product or a category, you can select an attribute as the rule’s target type. - Operator Type–The condition that determines which item within the target type is or isn’t eligible for a discount. For instance, to apply a discount to shoes, select Product as the rule’s target type, select **Is** as the operator type, and choose shoes as the target. - Target–The specific item or attribute value to apply the discount to‌. For example, if you select Product as the rule’s target type, you can enter shoes as the target. If the target type is an attribute, such as color, you can select a value, such as red, as the target. 12. Save your work. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_example.png) Example To encourage larger purchases, you want to discount all orders over $100, no matter what’s in the order. When you create a promotion qualifier: - Leave the Qualifier field empty. - Under Qualifier Type, select **Transaction Total**. - For Currency ISO Code, select **USD - U.S. Dollar**. - Under Minimum Amount, enter 100. ![The Promotion Qualifier page, showing options for choosing the type of qualifier and amount details](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_promotion_qualifier_example.png) #### See Also - [Commerce Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_create_manage.htm&release=264.0.0&type=5 "Enhance your B2B store by adding customized promotions. Create segments, discounts, qualifiers, and coupons for the right customers to receive the right deals. Highlight promotions for eligible customers on store pages and during checkout to boost engagement and sales.") # EFSTA Cloud EFR for Point of Sale EFSTA (Electronic Fiscal Standards Association) Cloud EFR (Electronic Fiscal Register) is a cloud-hosted fiscal register that records, signs, and reports every Point of Sale transaction. A Cloud EFR ensures that each transaction meets local tax authority requirements in France, Germany, and Austria. Point of Sale connects to EFSTA Cloud EFR using an API key and secret that you get from EFSTA. For authentication details, see the [EFSTA documentation](https://docs.efsta.eu/efr/). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Only EFSTA employees create Cloud EFRs. To order a Cloud EFR, contact your EFSTA Anypoint Partner Manager. Before you configure EFSTA Cloud EFR in Point of Sale CMS, gather this information: - EFSTA Cloud API Key: Issued for Cloud EFR access, found in the EFSTA Portal under country-specific company properties. - EFSTA Cloud API Secret: The OAuth authentication credential that EFSTA provides with the API key. - Tax ID: Your tax identification number, such as a VAT number, SIRET, or Steuernummer. France, Germany, and Austria each have additional requirements beyond the API key, secret, and tax ID. | Country | Additional Requirements | | --- | --- | | France | A 14-digit SIRET establishment identifier and a NAF business activity classification code. | | Germany | Confirm with EFSTA that Fiskaly TSE (Technical Security Element) is active on the Cloud EFR. Fiskaly TSE assigns automatically to a new POS terminal or register the first time it sends a transaction to EFR. | | Austria | Confirm with EFSTA that PrimeSign/A-Trust signing and FinanzOnline registration are in place on the Cloud EFR before cutover. | ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important If you're moving from a Salesforce-hosted EFR instance to EFSTA Cloud EFR in Austria, work with EFSTA to review existing stores and terminals registered with FinanzOnline. The same store and terminal numbers send data to Cloud EFR. EFSTA Cloud EFR uses the OAuth 2.0 client credentials flow for authentication. For authentication details, see the [EFSTA documentation](https://docs.efsta.eu/efr/). Complete organization and company setup on the [EFSTA Portal](https://portal.efsta.net/), with help from the EFSTA team if needed. Choose an organization structure that fits your business. **Parent Organization, Child Organization, and Company Structure** ![Diagram of a parent organization with a child organization and a company beneath it.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_cloud_efr_parentsorg.png) **Flatter Company Structure** ![Diagram of a flatter company structure with companies directly under a single organization.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_cloud_efr_flatterorg.png) - **[Set Up EFSTA Cloud EFR in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_efsta_cloud_efr_setup.htm&release=264.0.0&type=5)** Configure Point of Sale CMS to connect to EFSTA (Electronic Fiscal Standards Association) Cloud EFR (Electronic Fiscal Register) with the credentials EFSTA provides. Then verify the connection with a test transaction. - **[EFSTA Cloud EFR Resources for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_efsta_cloud_efr_resources.htm&release=264.0.0&type=5)** This table provides links to the EFSTA (Electronic Fiscal Standards Association) portal, country-specific documentation, downloads, and support contacts for setting up and maintaining EFSTA Cloud EFR (Electronic Fiscal Register). # EFSTA Cloud EFR Resources for Point of Sale This table provides links to the EFSTA (Electronic Fiscal Standards Association) portal, country-specific documentation, downloads, and support contacts for setting up and maintaining EFSTA Cloud EFR (Electronic Fiscal Register). | Resource | Description | | --- | --- | | [EFSTA Portal](https://portal.efsta.net/) | Information to help you set up your organization, companies, and locations, and manage the credentials that connect Point of Sale to Cloud EFR. | | [EFSTA Documentation](https://docs.efsta.eu/efr/) | Overview of the EFSTA fiscal compliance middleware, including deployment options and supported countries. | | [EFSTA France Documentation](https://docs.efsta.eu/efr/FR/) | Quick-start guide for France: EFSTA Portal setup, installation, connecting the EFR, and proof-of-compliance requirements. | | [EFSTA Germany Documentation](https://docs.efsta.eu/efr/DE/) | Quick-start guide for Germany: EFSTA Portal setup, installation, and TSE signature device setup for KassenSichV compliance. | | [EFSTA Austria Documentation](https://docs.efsta.eu/efr/AT/) | Quick-start guide for Austria: EFSTA Portal setup, installation, and RKSV fiscal reporting through FinanzOnline. | | [EFSTA Downloads](https://public.efsta.net/efr) | Country-specific EFR installers, changelogs, and release archives. | | EFSTA Support | Contact EFSTA for account or technical support at ticket@efsta.eu. | | [Support Fiscalization](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_support_fiscalization.htm&release=264.0.0&type=5 "Ensure sales transactions meet goernment-specific requirements and provide EFSTA access in Point of Sale CMS.") | Configure fiscalization support and EFSTA access in Point of Sale CMS. | # Einstein and Data Usage in B2B Commerce As an Einstein customer, it’s important for you to know what data is being used by B2B Commerce products. This table lists the data that is used by each B2B Commerce feature. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) The table lists the customer data that’s submitted by the Customer to Salesforce Services as defined in the [Main Services Agreement (MSA)](https://www.salesforce.com/content/dam/web/en_us/www/documents/legal/Salesforce_MSA.pdf). The table also indicates which features use global models trained on Customer Data and the usage data that is used, which is data relating to users interactions with Salesforce. Data submitted to an Einstein feature may be used to train AI models, to improve your services and features, or to develop new features that you will have access to without additional cost. These models look for aggregated trends across multiple Salesforce Customers. If an Einstein feature uses a global model, the Customer can opt out of the global model and have control over whether their data contributes to global models. The Customer has control over whether their data contributes to global models. Contact our [Commerce Support](https://help.salesforce.com/s/articleView?id=000383522&language=en_US&type=1&mode=1) team to manage how your data is used. Global model types for Commerce - Catalog Global Model - Machine learning model that works across catalogs of different customers. It pools together catalogs to better classify products or attributes of the products. This model uses the fields in the product catalogs (including name, description, primary category, category list, price, and custom attributes) and assets that are linked to in the product catalog, such as images. - This model is trained across customers that have not opted out of global modeling of catalogs. The Catalog Global Model will be used for customers that have opted out, but their data will not be used to train the model. - Merchant Global Model - Machine learning model that shares merchant activity and settings between customers, for example, search dictionaries. Einstein suggests synonyms for generic product names based on cross-merchant search activity. So, for instance, when a user searches for "couch" they also see "sofa". The Customer has control over whether their data contributes to global models. Contact our [Commerce Support](https://help.salesforce.com/s/articleView?id=000383522&language=en_US&type=1&mode=1) team to manage how your data is used. | B2B Commerce Feature | Customer Data and Salesforce Objects Used | Uses Catalog Global Model | Uses Merchant Global Model | | --- | --- | --- | --- | | Einstein Product Recommendations | Shopper activity tracking and catalog data | Yes\* | No | | Einstein Semantic Search | Shopper activity tracking and catalog data | Yes | No | | Catalog Recommendations | Catalog data | No | No | ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note \* Not all recommendation strategies use the Catalog Global Model. This applies to the Einstein Product Recommendations for B2B Commerce. # Einstein Complete the Set Recommender The Einstein Complete the Set Recommender is now generally available (GA). Complete the Set is a new recommender type in the Einstein Configurator that creates recommendations for complementary products. Sets are a quick and easy way for shoppers to find items that go well together. Einstein reviews shopper storefront activities to understand the types of products most often purchased together, and then applies intelligence around product categories to create a “Set” or a “Look.” You can also preview the recommendations and choose to enable or disable them by category. Einstein automatically creates sets of products without extra feeds or integrations. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The Complete the Set recommender is supported for apparel and accessories only. # Einstein Complete the Set Recommender Extended to Cosmetics and Skincare (Beta) Support for Cosmetics and Skincare is now available for the Einstein Complete the Set Recommender as a Beta offering. #### See Also - [Einstein Complete the Set Recommender](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/einstein/b2c_einstein_site_recommendations.html) # Einstein Dashboard Improvements As of March 31, 2020, Commerce Cloud Einstein will no longer email the _CC Einstein Recommendations Performance Report_. The self-service Einstein Dashboard tab in the [New Reports and Dashboards](https://ccac.analytics.demandware.com/einstein) (requires login) replaced the CSV file used when generating the _CC Einstein Recommendations Performance Report_. For more information, see the [Einstein Dashboard FAQ](https://success.salesforce.com/0D53A00004oPFBh). # Einstein Generative AI for Order Management Enhance your Order Management experience with Einstein generative AI, and deliver smarter service to your customers. - **[Return Insights Overview](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5)** Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them. - **[Considerations for Return Insights](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights_considerations.htm&release=264.0.0&type=5)** To create Return Insights with Einstein Generative AI, consider supported functionality, usage, limitations and allowances, limits, and other issues. - **[Return Insights Setup](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights_setup.htm&release=264.0.0&type=5)** You can complete most of the initial Einstein configuration using the Data 360 Setup Guide. - **[Analyze Product Return Reasons](https://help.salesforce.com/s/articleView?id=commerce.om_analyze_product_return_reasons.htm&release=264.0.0&type=5)** Use Einstein to gather, analyze, and sort return data. # Einstein Prompts for Creating Promotions When creating promotions with Einstein, use natural language text to describe the promotion. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
User Permissions Needed
To create promotions with Einstein: Smart Commerce Promotions and Recommendations
Include specific words and phrases in your instructions. | Words and Phrases | Example | | --- | --- | | To identify a category or product, use the term “category” or “product” and put the item in single quotes. | Get 25% off the product ‘tennis shoes’. | | For a buy-one-get-one promotion, use “BOGO” in the instructions. | BOGO deal: Buy an ‘Alpine Energy Drink’ and get $5 USD off the second one. | Use the exact adjustment type name in your instructions. | Adjustment Type | Example | | --- | --- | | Fixed amount off unit price | Enjoy this summer promotion! Get a fixed $25 USD off the unit price on the product ‘Tennis Shoes’. | | Fixed amount off transaction | Special loyal customer promotion! Get a fixed $50 USD off the transaction. | | Fixed amount off line item total | Enjoy this tennis essentials promotion. Buy any items in category ‘Tennis Rackets’ and get a fixed $50 USD off the line item total. | | Percentage discount | Enjoy this summer promotion! Buy a minimum of 2 ‘Tennis Shoes’ and get 25% off. | | Fixed price | Enjoy this tennis essentials promotion. Buy any product from the category ‘Tennis Balls’ and get it for a fixed price of $3 USD. | | Total fixed price | Enjoy this tennis essentials promotion. Buy any 2 products from the category ‘Tennis Rackets’ and get them for a total fixed price of $75 USD. | | Bonus product | Enjoy this limited-time offer. Spend $100 and get a “Tote Bag” at no additional cost. | #### See Also - [Create a Promotion Using the Guided Workflow with Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_smart.htm&release=264.0.0&type=5 "Draft a promotion for your B2B store with just a few clicks by using Einstein and Commerce data. Quickly create basic and advanced promotions using natural language instructions and generative AI.") - [Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_about.htm&type=5&language=en_US) - [Einstein Generative AI & Trust](https://help.salesforce.com/s/articleView?id=ai.generative_ai_trust_overview.htm&type=5&language=en_US) - [Enable Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_enable.htm&type=5&language=en_US) # Einstein Recommendations Review the change to B2C Commerce Einstein Recommendations in the 20.4 release. - **[Einstein Dashboard Improvements](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_w7296723_einstein_csv_dep_announce.htm&release=264.0.0&type=5)** As of March 31, 2020, Commerce Cloud Einstein will no longer email the _CC Einstein Recommendations Performance Report_. # Einstein Recommendations Component (LWR) for D2C Stores The Einstein Recommendations component personalizes the shopping experience and reduces the manual effort required to drive product discovery on your storefront. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important This component is deprecated as of Spring '26 (API version 262). To add product recommendations to your store pages, use the Carousel component with the Product Recommendations data source instead. See [Add Recommended Products to Store Pages](https://help.salesforce.com/s/articleView?id=commerce.comm_add_recommended_products.htm&release=264.0.0&type=5 "Increase engagement by showing personalized product recommendations on your store pages. Use a Carousel component with the Product Recommendations data source to show dynamic suggestions based on shopper activity.").
Property Details
Recommendations Definition
Anchor Select an option to use as initial input for making recommendations on this page. Selecting the Product ID or Catalog ID anchor shows a field where you must add a product or catalog ID to complete your selection.
Product ID

Add a site-specific product ID starting with 01t. This field appears only when you select the Product ID anchor.

To find the product ID, select a specific product in the Commerce App and copy the product ID from the browser URL.

Catalog ID

Add a site-specific catalog ID starting with 0ZG. This field appears only when you select the Catalog ID anchor.

To find the catalog ID, select a specific product in the Commerce App and copy the catalog ID from the browser URL.

Use Case

Select the recommendation outcome that you want shoppers to see. Choose from recently viewed, similar products, and the like. Use cases have predefined strategies and rules that respond to shopper interactions in real time.

Selections for use cases change dynamically based on the page containing the component and the anchor that you select. See the Usage Notes for details about each use case.

Header Text

Enter text to show at the top of the Einstein recommendations carousel.

Header text appears to shoppers only when recommendations are generated and when the number of recommendations exceeds the value defined for the Hide for Results Fewer Than parameter.

Maximum Products Visible

Set the maximum number of products to show before advancing the recommendations carousel to the next set of products. The default is 4.

Regardless of this setting, mobile devices show a maximum of two recommendations at a time. If you choose to show the quantity selector and call to action button, mobile devices display only one recommendation at a time.

Hide for Results Fewer Than Set a minimum number of products to show. If there are fewer products than the number specified, the component doesn’t appear. The default is two products.
Display Options
Product Text Select to show the product name for each product recommended.
Price Select to show price information for each product recommended. When selected, you can choose whether to show the sale price with the original price crossed out or only the sale price.
Quantity Selector and Call to Action Button

Select to show the quantity selector and the call to action button. When selected, you can also change the quantity selector label text and the text that appears in the call to action button.

Selecting this option limits the display to one recommendation at a time for mobile devices.

Price options menu Choose between Sale Price with Original Price Crossed Out or Sale Price. This parameter appears only when the Price option is selected.
Quantity Selector Label Change the label text associated with the quantity selector. The default is qty. This parameter appears only when the Quantity Selector and Call to Action Button option is selected.
Call to Action Button Text

Change the text that appears in the call to action button. The default is Add To Cart. This parameter appears only when the Quantity Selector and Call to Action Button option is selected.

Inventory availability isn’t checked when products are added to the cart using Einstein recommendations.

## Usage Notes Commerce Einstein can provide product recommendations based on shopper activity. You can add one or more Einstein Recommendations components to any page in D2C stores. You can customize the Einstein components using supported anchors and related use cases. The Category Viewed anchor is supported on only Category pages. All other anchors are supported on any page, but they’re intended for use on certain pages. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Adding Einstein Recommendations components to page headers and footers isn’t supported. When you select an anchor for a page, the use case menu changes to show only the supported options for that anchor. | Anchor | Intended Pages | Supported Use Cases | | --- | --- | --- | | No Anchor | Home, Search, Error, My Profile, Service Not Available | Recently Viewed, Top Selling, Personalized for Shopper | | Product ID | Home, Error, My Profile, Service Not Available | Recently Viewed, Similar Products, Complementary Products, Customers Also Bought | | Product Viewed | Product | Recently Viewed, Similar Products, Complementary Products, Customers Also Bought | | Products in Cart | Cart, Checkout, Order | Recently Viewed, Similar Products, Complementary Products, Customers Also Bought, Upsell | | Category ID | Home, Error, My Profile, Service Not Available | Recently Viewed, Most Viewed By Category, Top Selling By Category | | Category Viewed | Category | Recently Viewed, Most Viewed By Category, Top Selling By Category | A use case defines the type of recommendations that Commerce Einstein shows. The strategies listed in the table are in order of occurrence. If there isn’t enough shopper activity for the first strategy listed, the next strategy on the list is used. The Text Similarity strategy works even when there’s no shopper activity. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note All use cases, except Recently Viewed, can have up to 20 products for recommendations. The Recently Viewed use case shows up to the last 10 browsed products.
Use Case Strategies Description
Recently Viewed Last browsed products Generates recommendations based on items that the shopper recently viewed.

Similar Products

This use case recommends products that match the category of the product being viewed.

1. Customers who viewed also viewed Generates recommendations by analyzing the viewing behavior of other shoppers who viewed the same product.
2. Product affinity algorithm Generates recommendations by analyzing the product’s similarity to other products.
3. Text similarity Uses natural-language processing to generate product recommendations based on similarity between products in product details.

Complementary Products

This use case recommends products that don’t match the category of the product being viewed.

1. Real-time personalized recommendations Generates recommendations by analyzing the shopper’s current viewing and past viewing behavior.
2. Customers who viewed also viewed Generates recommendations by analyzing the viewing behavior of other shoppers who viewed the same product.
3. Text similarity Uses natural-language processing to generate product recommendations based on similarity between products in product details.

Customers Also Bought

This use case doesn’t show products purchased by the shopper in the past 30 days.

1. Customers who bought also bought Generates recommendations by analyzing the purchasing behavior of other shoppers who bought the same product.
2. Customers who viewed ultimately bought Generates recommendations by analyzing the purchasing behavior of other shoppers who viewed the same product.
3. Text similarity Uses natural-language processing to generate product recommendations based on similarity between products in product details.
Most Viewed By Category Recent most-viewed products from category Generates recommendations by analyzing which products other shoppers recently viewed in the same category for the product being viewed.
Top Selling By Category Recent top-selling products for the category within the past 30 days

Generates recommendations by analyzing which products were recently purchased by other shoppers in the category being viewed.

This strategy uses a rolling 30-day time frame that updates daily to return recommendations that are similar to top sellers found in your weekly sales reporting.

Upsell 1. Customers who bought also bought Generates recommendations by analyzing the purchasing behavior of other shoppers who bought the same product.
2. Customers who viewed ultimately bought Generates recommendations by analyzing the purchasing behavior of other shoppers who viewed the same product.
3. Customers who viewed also viewed Generates recommendations by analyzing the viewing behavior of other shoppers who viewed the same product.
4. Text similarity Uses natural-language processing to generate product recommendations based on similarity between products in product details.
Top Selling Top-selling products within the past 30 days

Generates recommendations by analyzing which products were recently purchased by other shoppers.

This strategy uses a rolling 30-day time frame that updates daily to return recommendations that are similar to top sellers found in your weekly sales reporting.

Personalized for Shopper 1. Real-time personalized recommendations Generates recommendations by analyzing current and past viewing behavior of the shopper.
2. Recent most-viewed products Generates recommendations by analyzing which products other shoppers recently viewed.
![Einstein Recommendations component](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/einstein_recs.png) # Elevate Store Search with the Upgraded Search Engine Improve product search, sorting, and ranking with the latest search engine. Give shoppers more control over the search experience, with enhanced security and refinement calculations. **Where:** This change applies to B2C Commerce. **How:** When you get an outdated index error, rebuild the search indexes and get the latest changes in your store. In Business Manager, click App Launcher, and select **Merchant Tools** | **Site** | **Search** | **Search Indexes**. Select all the index types, and then click **Rebuild**. ![Rebuild search indexes](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_8/b2c_rn_searchindex.png) #### See Also - [Generate Search Indexes](https://help.salesforce.com/s/articleView?id=cc.b2c_generating_search_indexes.htm&language=en_US) # ELSTER Reporting Requirements Merchants in Germany who use Point of Sale CMS must electronically report their systems to their relevant tax office by uploading an XML file to MyElster. Effective January 1, 2025, German authorities have mandated additional reporting requirements for electronic cash register systems. This mandate, in accordance with Section 146a (4) AO, requires the electronic reporting of these systems to the relevant tax office. This measure aims to combat manipulation and tax evasion within the cash register sector. Our fiscalization partner, EFSTA, supports these requirements by providing an XML file download through their portal. This XML file must then be uploaded to the myELSTER [portal](https://www.elster.de/eportal/login/softpse) Additional information can be found [here](https://www.efsta.eu/en/solutions/mandatory-reporting-of-cash-register-systems). ## Merchant Responsibilities - **Designate a Representative**: Select a person from your company to download the XML file from EFSTA and put it on the myELSTER [portal](https://www.elster.de/eportal/login/softpse). - **Communicate with Customer Success Manager**: Provide the designated person's details to their Customer Success Manager. - Details needed for the designated representative: ![Reporting - Add New Elster Contact to EFSTA](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscaliation_add_new_elster_contact_germany.png) - Accessing the EFSTA Portal - The Customer Success Manager grants the designated user access to the EFSTA portal. - The designated user receives an email to verify their email address. - After verification, the designated user can download the XML file from the EFSTA portal. - Initial Upload Instructions - The designated representative obtains access to the myELSTER portal. - The client downloads the XML file from EFSTA. A download link will be provided in an email from EFSTA. - The client uploads the XML file one time before the end of **June 2025**. - Ongoing Requirements - The client uploads the XML file whenever any register or setup is updated. - EFSTA notifies the client's designated representative of any changes. - The designated representative uploads the XML file to the myELSTER portal within 30 days of any change. ## Key Takeaways - New electronic reporting requirements for cash register systems begin January 1, 2025. - EFSTA provides the necessary XML file for upload to myELSTER. - Clients designate a representative to manage this process. - Timely uploads of the XML file are crucial to complying with regulations. # Email & Print Templates Explore the diverse range of Point of Sale email templates designed to enhance communication efficiency. Retail professionals can quickly generate consistent and effective messages, improving customer engagement and satisfaction. - **[Types of Email & Print Templates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_email_types.htm&release=264.0.0&type=5)** Discover the various types of Point of Sale email templates and learn how to generate each one efficiently. Tailored for retail professionals, these templates streamline communication, ensuring messages are consistent and effective. - **[Set Up Email Templates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_email_create.htm&release=264.0.0&type=5)** Set up Point of Sale email templates using pre-configured options or custom HTML. Learn to convert tags and test your templates for a seamless, personalized customer experience. - **[Known Issues and Restrictions with Email & Print Templates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_email_issues.htm&release=264.0.0&type=5)** Find details of imitations in the Point of Sale email and print templates. # Email Customers in Your Black Book Send an email to the customers in your black book in the POS app app. 1. Tap on the **Black Book deep link** in the app. 2. Select a black book. 3. Tap the message icon. 4. Select **Email** and tap **Confirm**. 5. Enter the message and tap **Send**.![The Send Message to all via Email window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_email_bb_customers.jpeg) # Email Notification of Changes to Inactive User Settings As part of the Auto Disable Inactive Users feature, an email notification is sent to users when the Inactive User settings are activated or deactivated. An email is also sent when the Days Before Deletion settings are changed on the organization detail page. The email is sent to the email address entered in the Contact Users field on the organization detail page. # Embedded Objects Not Allowed in HTML Attributes For security reasons, only Business Manager users with strong authentication, such as through multi-factor authentication with Account Manager, can include objects embedded with `iframe`, `object`, `applet`, or `embed` tags in the HTML attributes of a database object. A Business Manager user with strong authentication can temporarily allow users without strong authentication to embed objects in HTML attributes. How: To temporarily allow users to embed objects, go to **Administration** | **Global Preferences** | **JavaScript in Attributes**, and click **Enable**. Users without strong authentication can embed objects in HTML attributes for 1 hour. #### See Also - [JavaScript and Objects in HTML Attributes](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_javascript_in_html_attributes.html) # Enable a Message in Commerce Messaging After you’ve customized your message template, enable the message to begin sending messages. When a message is enabled, a flow is created for that message and store. The flow waits for specific events, like the placement of an order, and triggers message sending using Marketing Cloud services. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) For a list of available messages, see [Available Messages in Commerce Messaging](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging_messages.htm&type=5&language=en_US). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important To prevent sending duplicate messages to your customers, disable all external or third-party messaging services before you enable a message. 1. In the navigation sidebar, select **Settings** | **Messaging**. 2. Within a message tile, enable the message. 3. Each message uses Flow to trigger the sending of messages. The flow name uses a format similar to MessageNameFlow\_StoreName, for example, SendAbandonedCartFlow\_NTOStore. To view or edit the flow, click the drop-down and select **Edit Flow**. In Flow Builder, you can extend the flow to include other elements or actions. 4. Click **Save**. 5. Click **Back** to return to the Messaging workspace. If you disable a message, its corresponding flow is deactivated. When you re-enable the message, the most recent version of the flow is copied and activated. #### See Also - [Manage Customer Messages for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging.htm&release=264.0.0&type=5 "Use the Commerce Messaging workspace to manage and tailor customer messages, such as order confirmations and welcome emails.") - [_Trailhead_: The Combined Power of Marketing Cloud Next and Agentforce Commerce](https://trailhead.salesforce.com/content/learn/modules/the-combined-power-of-marketing-cloud-and-commerce-cloud) # Enable Admin Settings for Order Management Order Management requires specific admin settings. 1. From Setup, in the Quick Find box, find and select **Order Settings**. 2. Select **Enable Orders**, **Enable Negative Quantity**, **Enable Zero Quantity**, **Enable Enhanced Commerce Orders**, and **Enable Order Events**. 3. Deselect **Enable Reduction Orders** Reduction orders can conflict with Order Management change orders. If you use reduction orders elsewhere, we recommend creating an order record type for Order Management orders. Use an Apex trigger or validation rule to prevent the record type from being used for reduction orders. See [Tailor Business Processes to Different Users](https://help.salesforce.com/articleView?id=customize_recordtype.htm&language=en_US). 4. (Optional) To use orders in Salesforce while managing price books in an external platform, select **Enable Optional Price Books for Orders**. 5. Save the settings. 6. Log out of Salesforce, and log back in. 7. From Setup, in the Quick Find box, search for and select **Order Management**. 8. Activate **Order Management**. Turning on **Order Management** can take several minutes. If you don’t see the Order Management app in the App Launcher, wait a few minutes and refresh the page. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Enable Advanced Carts for B2B Buyers Configure your store to allow buyers to organize their purchases into independent project-based carts. After the advanced cart feature is enabled in your store, use Experience Builder to add advanced cart management components to your store. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Click **Experience Builder**. 3. Create a saved cart and customize the Product page to show a list of saved carts. 1. In Experience Builder, from the Pages list, open the Product page. 2. Select the **Product Detail Purchase Options** component on the page. If the component isn’t added to the page, drag the component from the Components list. 3. Click the component and from the component property panel, expand **Multiple Carts**, and select **Show Add to a Saved Cart**. This selection enables buyers to create saved carts and add items to a specific saved cart from the Product Detail Page. 4. Customize the site to view a list of saved carts and go to any cart from the header. 1. In Experience Builder, from the components panel of the Product page, if the component isn't added, drag the Cart Menu component to the header of the page. 2. Click the component and select **Show number of items in cart**. 3. From the dropdown list, select whether you want to show the count of items in each cart or the number of unique products in each cart. 4. Expand Mini Cart, and deselect **Enable Mini Cart**. 5. Expand Multiple Carts, and select **Show Cart Dropdown**. This component shows the default cart and four most recently modified saved carts. 6. Repeat the steps for the Checkout and My Profile pages. 5. Manage the saved carts and select a saved cart as default. 1. From the Pages list, select the Cart List page. 2. If not already added, from the components panel, drag the Cart Container component into the page. This component provides the interface for buyers to view their carts, create a cart, edit the cart name and description, set a saved cart as default for the checkout, and delete a saved cart. Also, this component provides the options to import, export, set or remove a cart as the default cart, share a cart, and convert a cart into quote. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note The Cart List page has two versions of the Cart Container component. One component is for stores where cart sharing is enabled and the other is for stores without cart sharing. Customizations applied to one component don't apply to the other. Add the version that matches your store's configuration. 6. View and modify the details of each saved cart. 1. From the Pages list, open the Cart page. 2. If not already added, from the components panel, drag the Cart Detail component into the page. For carts created before Winter ’27, remove the existing component with the Cart Detail component. If you previously added the Cart component to the Cart page, remove the component. 3. For carts created before Winter ’27, click the Section wrapper, change the **Max Content Width** to 1600 px and change the **Column Distribution** from 7:1:4 to 8:1:3. 7. Preview the site as a buyer to ensure your store correctly shows the saved carts. 8. Publish your store. # Enable Advanced Pricing and Subscriptions in Your B2B Store Use Advanced Pricing for Commerce Powered by Revenue Cloud to define subscription pricing and bundle pricing. When Commerce Subscriptions and Advanced Pricing are enabled, all products (both subscription and non-subscription) are priced using Advanced Pricing for Commerce Powered by Revenue Cloud. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before you can access the Advanced Pricing tab in your store, ensure that CartCalculateAPI (CCA) is enabled for your store. See [Cart Calculate API](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html). Watch the video to help you turn on advanced pricing and subscriptions in your B2B Store. If you can’t watch the video in full screen, open the video on a new tab: [Enable Advanced Pricing and Subscriptions](https://play.vidyard.com/g7R668WTgMNCgEkx9pMy5j). 1. Turn on and configure Advanced Pricing for Commerce Powered by Revenue Cloud. For details, see [Configure Advanced Pricing for Commerce in Your B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_commerce_pricing_elements_in_your_b2b_or_d2c_store.htm&release=264.0.0&type=5 "Configure Advanced Pricing powered by Revenue Cloud in order to use several Commerce features, including subscriptions and product configurator."). You can't turn on Subscriptions or set the default pricing procedure until the setup finishes. 2. Under Subscription Management, turn on **Subscriptions**. If you don't see the setting enabled, refresh your browser. If your org supports multiple currencies, under **Pricing Setting**, map the **Currency** field with the `CurrencyIsoCode` context tag. #### See Also - [Salesforce Pricing](https://help.salesforce.com/s/articleView?id=ind.pricing_salesforce_pricing.htm&language=en_US) # Enable Agentforce Merchandising for B2B Stores Use the power of a Merchandising Agent to help you be more productive, eliminate the need to navigate to screens, fill in values, and take action. Activate Einstein generative AI features and other required features and tasks to power up your productivity. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before you turn on Agentforce Merchandising for B2B Stores, contact your Salesforce representative to enable Commerce Growth or Advanced. 1. See [Enable Einstein generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_enable.htm&language=en_US) to complete these tasks. 1. Set up Data 360. 2. Turn on Einstein Generative AI. 3. Set up the Einstein Trust Layer. 4. Turn On Einstein Data Collection and Storage. 2. If you don't already have a Commerce store set up, see [Set Up a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&release=264.0.0&type=5 "Use the automated and guided assistant to configure your Salesforce org for Commerce and create an online store. Preview and polish the store before going live."). 3. Enable Einstein Agents. From Setup, in the Quick Find box, enter Agentforce Agents, and then select **Agentforce Agents**. If you don’t see Agents in Setup, verify that Einstein Generative AI is enabled. If that’s not the issue, make sure you have the correct license and user permissions for your agent type. 4. Turn on **Agentforce** to get access to Agentforce. After you enable Agentforce, refresh the page to see the +New button to create agents. 5. Refresh your browser. ![Agentforce Agents enable toggle with Agentforce enabled](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_agent_enable.jpg) 6. Grant users access to specific Agentforce Employee agents with permission sets or profiles. See [Manage Employee Agent Access](https://help.salesforce.com/s/articleView?id=ai.agent_manage_aea_access.htm&language=en_US). Select agent topics and actions to help you complete tasks, create promotions, and grow revenue through data-driven store insights. See [Add Merchant Agent Topics](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_merchant_add_topics.htm&release=264.0.0&type=5 "Add topics to define what you want Merchandising Agent‌ to do. The promotions topic helps you craft promotions that meet your business needs. The business insights topic retrieves helpful insights into your store."). #### See Also - [Select Which Objects to Always Search in Global Search](https://help.salesforce.com/s/articleView?id=ai.search_ai_assign_result_objs.htm&type=5&language=en_US) # Enable and Sync a Delivery Estimation After you’ve configured estimations and shipping, and you’ve connected Commerce Delivery Services to B2C Commerce as necessary, enable your delivery estimation. ### Required Editions
View supported editions.
Before beginning this task, make sure the [Order Fulfillment Setup section](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5 "The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS).") is enabled. Make sure all your location objects have timezone and country code added before syncing. 1. In the Delivery Estimations tab of Order Fulfillment Setup, for the delivery estimation you’re syncing, open the action menu and click **Enable**. 2. To sync your delivery estimation, click **Sync**. Next step: [Configure Processing Times for Order Management Delivery Estimations](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_processing_time.htm&release=264.0.0&type=5 "Fulfillment times can vary depending on the product and the location fulfilling the order. Define processing times at the location level, category level, item level, or a combination. This granular level of processing data provides more accurate delivery estimates.") #### See Also - [Delivery Estimations for Order Management Overview](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_overview.htm&release=264.0.0&type=5 "Provide customers with accurate delivery times by showing delivery dates on your store’s product detail and checkout pages.") # Enable Azure AD with Point of Sale CMS Enable single sign-on to Point of Sale CMS using Azure Active Directory (AD) and simplify user access management. Configure Azure AD, add users to Point of Sale CMS, and resolve common issues. Users can access the CMS through a custom URL. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This article applies to the legacy platform. If you're on Hyperforce, configure CMS SSO through Salesforce Core instead. See [Point of Sale Single Sign-On](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_single_signon.htm&release=264.0.0&type=5 "Point of Sale Single Sign-On (SSO) lets users sign in with a single set of credentials and access components such as the Content Management System (CMS) and the POS app. Point of Sale supports common identity providers (IdPs), including OneLogin and Azure Active Directory (Azure AD)."). Azure Active Directory (AD) is Microsoft’s Enterprise cloud-based identity and access management (IAM) solution. With Azure AD, administrators can help employees sign up for many services and use them anywhere over the cloud with one set of login details. This article gives you an overview of what is required to use Azure AD for authentication to log into Point of Sale Content Management System (CMS). ## Prerequisites - Customer Success is added to Point of Sale CMS users as an administrator - Provide your Customer Success team with the "Application (Client) ID" and "Directory (Tenant) ID" from your Azure portal. You get the Redirect URLs for both the Staging and Production environments. After Azure AD and Point of Sale are set up, the merchant can access the CMS through a special URL. - Customer to configure Azure AD for Point of Sale CMS - **[Configuring Azure AD](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_configure_azure_ad.htm&release=264.0.0&type=5)** Set up Azure Active Directory (AD) to work with Point of Sale CMS. - **[Managing Point of Sale CMS Users](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_managing_users.htm&release=264.0.0&type=5)** Manage access to the Content Management System (CMS) by adding or removing users. - **[Accessing Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_accessing_retail_cloud_cms.htm&release=264.0.0&type=5)** Access the Point of Sale Content Management System (CMS) using a custom URL after configuring Azure AD. Merchants use their designated URL slug and environment to reach the CMS. - **[Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_troubleshooting_and_faq.htm&release=264.0.0&type=5)** Use the Azure AD sign-in logs to debug Point of Sale CMS user issues. # Enable BORIS for SFOMS Integration Buy Online Return In-Store (BORIS) allows customers to purchase products online and have them shipped. Customers can return the product to a physical store or alternative location if they are unsatisfied with their purchase. Enable Point of Sale's BORIS feature so customers have options for how they receive and return their products. Review the sections and corresponding components in the CMS to get started. For a general overview of SFOMS integration in CMS, refer to this [Configure the Salesforce (SF) Order Management System (OMS) in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_sfoms.htm&release=264.0.0&type=5 "Discover the steps to configure the Salesforce Order Management System (OMS) in CMS. Point of Sale platform has an inbuilt Salesforce OMS connector. The connector is built on the best practices and collaboration with the Salesforce team."). For information on enabling BOPIS, read [Configure BOPIS for SFOMS Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_bopis.htm&release=264.0.0&type=5 "Buy Online Pick-up In-Store (BOPIS) is an omnichannel fulfillment method where customers can shop online and go to the store or pickup location once the order is ready. This allows businesses to drive in-store traffic by connecting their offline and online experiences. This is a guide to enable and use Point of Sale's BOPIS feature."). ## Order Delivery Methods 1. In CMS, go to **Integrations** | **OMS Configuration**. 2. Create or edit an existing Salesforce OMS Integration. 3. Under **Delivery Methods**, add in the SFOMS Values for "Ship to Home". ![A screen shows delivery methods and values.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_oms_boris_delivery_methods.png) ## Advanced 1. In CMS, go to **Integrations** | **OMS Configuration**. 2. Create or edit an existing Salesforce OMS Integration. 3. Under **Advanced**, enable the toggle for "Enable Master of Record". ![A settings screen displays a list of advanced options.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_oms_boris_enable_master_of_record.png) For instructions on using an external order master, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_config_boris_order_controller.htm&language=en_US). ## Return Policy Configuration Refer to this article, [Returns Policy Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_returns_policy_configuration.htm&release=264.0.0&type=5 "The Point of Sale (POS) app lets store associates perform returns on purchased items based on configured policies."). # Enable Buy Online Pick Up in Store (BOPIS) The Buy Online Pick up In Store (BOPIS) feature increases flexibility and gives shoppers an option to get orders sooner. ### Required Editions
View supported editions.
Before beginning this task, make sure the [Order Fulfillment Setup section](https://help.salesforce.com/s/articleView?id=commerce.om_enable_order_management_setup.htm&release=264.0.0&type=5 "The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS).") is enabled. 1. In the Location Assignments tab of Order Fulfillment Setup, to turn on BOPIS for a single location, open the action menu for your location and click **Edit location**. To turn on BOPIS for multiple locations, select your locations, open the Bulk Actions menu, and click **Edit locations**. 2. Select **Enable Buy Online, Pick Up in Store**. 3. Set a processing time and unit. 4. (Optional) Set a custom pickup time. Pickup time is calculated as hours after business hours start and hours before business hours end. For example, your business hours start at 9 AM, and you set the earliest pickup time to 1 hour. The earliest pickup time is 10 AM. 1. Turn on custom pickup times. If you don’t turn on BOPIS, this option won’t have any effect. 2. Set an earliest customer pickup time and a latest customer pickup time. The unit for pickup times is hours. 5. Click **Save**. Next step: [Connect the Delivery Estimation Service to B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_connect_to_commerce.htm&release=264.0.0&type=5 "Create a B2C Commerce connection with Order Management so that the B2C instance can communicate with the Commerce Delivery Service.") (B2C Commerce only) #### See Also - [Delivery Estimations for Order Management Overview](https://help.salesforce.com/s/articleView?id=commerce.om_del_est_overview.htm&release=264.0.0&type=5 "Provide customers with accurate delivery times by showing delivery dates on your store’s product detail and checkout pages.") # Enable Cancellation of All Eligible Items from an Order You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization lets a Customer Service Representative (CSR) cancel all eligible items from an order in a single process. You can enable Cancel All in the Cancel Item flow. If you’ve created your Cancel Item flow after the Winter ‘26 release, Cancel All is already enabled on your org. For flows created before Winter ‘26, you can bypass the customization by [cloning](https://help.salesforce.com/s/articleView?id=commerce.om_flow_copy.htm&release=264.0.0&type=5 "Before you can activate or customize a flow, you need to clone the flow. Cloning creates an editable version that you can modify or activate out-of-the-box on your store. If you set up your store using the Commerce Setup Assistant, your flows are already cloned.") a new Cancel Item flow. We recommend only doing this if you have no customizations. To continue using your customizations, manually add three flow elements to your existing flow. These elements exist in the Cancel Item flow template. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter flows, and select **Flows**. 3. Select the Cancel Item flow template. The template has the Template column of the table checked. 4. In the flow, open the Manager tab. 5. Find and open the **Cancel Option Selection** screen. Make note of where the element is in the flow. 6. In a different tab, find and open your existing Cancel Item flow. 7. Find where you want the Cancel Option Selection screen to appear. Add a new screen and enter all of the existing information as seen in the Cancel Option Select screen element you opened in step 5. 8. Repeat steps 5 through 8 for the Cancel All routing decision element and the Subflow call to Cancel All flow. 9. Click **Save**. #### See Also - [Customizing Order Management Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customizations.htm&release=264.0.0&type=5 "The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement.") # Enable Cart Import and Export in Your B2B Store Quickly import or export cart items in bulk by using a CSV file. Enable this feature for your buyers from your store settings. Before you begin, enable advanced carts for B2B buyers. See [Enable Advanced Carts for B2B Buyers](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_enablemulticart.htm&release=264.0.0&type=5 "Configure your store to allow buyers to organize their purchases into independent project-based carts. After the advanced cart feature is enabled in your store, use Experience Builder to add advanced cart management components to your store."). . 1. In the navigation sidebar, select a store from the Store dropdown. 2. Go to Settings | Store, and click Cart. 3. In the navigation sidebar, select a store from the Store dropdown. 4. If you enable this feature, buyers in your store can import products into their carts from CSV files. 5. To allow cart exports, turn on Export Carts. If you enable this feature, buyers in your store can export SKUs, quantities, and other cart item details. 6. (Optional) Specify fields buyers can export to the cart export CSV file. 1. In the Cart Export Fields section, click Manage Fields. 2. Select up to 20 product fields you want to enable buyers to export. By default, SKU and Quantity are selected. 3. Save your changes. # Enable Cart Preview and Checkout from the Cart Icon in a Commerce Store Let customers go to the Cart page, preview their cart, or complete their purchase on any page in your B2B store by including a mini cart display. In Experience Builder, customize the Cart Badge component to add these features. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note For stores created after Spring ‘25, when cart item quantities are updated, the Cart page clears to recalculate. As a result, customers see a blank page with a loading spinner before the Cart page reloads. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. On your store’s Home page, customize the Cart Badge component. To display settings for new features like the mini cart, replace your Cart Badge component with the new component. The Cart Badge component is embedded in your store’s header and appears on every page on your site. It displays the cart icon and a badge to show the number of items in a cart. However, the My Profile page uses a different version of the Cart Badge component, so make sure to customize both versions. 1. To show the number of items in a customer’s cart on the cart icon, select **Show number of items in cart**. From the dropdown, select **Total Items in Cart** or **Total Products in Cart**. Total items counts all of a customer’s cart items, and total products displays only the number of unique items in the customer’s cart. If your store has Faster Add-to-Cart enabled, you can’t select Total Products in Cart. See [Improve Product Page Performance in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_faster_add_to_cart.htm&release=264.0.0&type=5 "To speed up the shopping experience in your LWR store, turn on the Faster Add-to-Cart feature. By splitting processing time across Product and Cart pages, Faster Add-to-Cart improves the response time on a Product page when a customer adds an item to their cart. This setting is enabled by default for B2B stores created in Winter ’24 or later and D2C stores created between Winter ’24 and Spring ’25."). 2. To customize the cart preview, open the Mini Cart section. The mini cart is enabled by default for stores created after Winter ’25. It shows customers a sliding cart preview and checkout button when they click the cart icon. If you disable the mini cart, customers go directly to the Cart page when they click the cart icon. 3. To let customers continue shopping from the mini cart, select **Show continue shopping button**. 4. To let customers navigate to the Cart page from the mini cart, select **Show view cart button**. To bypass the Cart page during the checkout process, don’t select this option. 5. (Optional) If you have Commerce Einstein enabled, to recommend additional products to customers, select **Show product recommendations.** See [Commerce Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_commerce_einstein.htm&language=en_US). If you have a store created before Summer ’25, drag a new version of the Cart Badge component onto your page to pull in recommendations data. 4. Preview and publish your changes. #### See Also - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&language=en_US) - [Design the Cart Page in a B2B or D2C Store](https://help.salesforce.com/s/articleView?id=commerce.comm_cart_customize.htm&language=en_US) # Enable Cart Sharing Enable buyers to share carts in your B2B Commerce store from the store settings. Turn on this setting to ensure that buyers can share carts with other collaborators. You can also view shared cart history and track collaborator actions using the Shared Cart Activity component. Any changes to cart permissions apply only to new carts. Existing shared carts retain the permissions that were set at the time of sharing the cart. Before you begin, enable advanced carts for B2B buyers. See [Enable Advanced Carts for B2B Buyers](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_enablemulticart.htm&release=264.0.0&type=5 "Configure your store to allow buyers to organize their purchases into independent project-based carts. After the advanced cart feature is enabled in your store, use Experience Builder to add advanced cart management components to your store."). 1. In the navigation sidebar, select a store from the Store dropdown. 2. Go to **Settings** | **Store**, and click **Cart**. 3. To enable cart sharing, turn on **Share Cart**. 4. Under Share Permission Options, select the permissions available to collaborators on shared carts. 5. Save your changes. 6. To show buyers a cart's sharing history, follow these steps. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Click **Experience Builder**. 3. From the Pages list, open the Cart page. 4. In the Cart Summary component, drag the Shared Cart Activity component. The component appears as a View Share History field on the cart page. 5. Preview the site and publish your store. # Enable Commerce Einstein Commerce Einstein features personalize shopper experiences, increase merchandiser productivity, and improve conversion. Enable Commerce Einstein so that merchandisers can turn on storefront activity tracking, turn on semantic search, and configure Einstein recommendations. Commerce Einstein deployment can take up to 24 hours to complete. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Before you enable Commerce Einstein: - Assign a catalog to your store. - Assign categories to your products. - In Einstein Recommendations, activate all the products that you want to use. - Set your organization-wide sharing value for Product object default internal access to either **Public Read** or **Public Read/Write**. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**, and then select **Commerce Einstein**. 3. Turn on **Commerce Einstein**. The Status bar indicates that the deployment has started. When Commerce Einstein is processing the catalog and Einstein data, these errors can occur.
Error Type Resolution
Catalog error

Confirm your store catalog assignment and product activation, and then click Reindex.

If the issue persists, contact Salesforce Customer Support.

Internal error

Reprocess the data by clicking Reindex.

If the issue persists, contact Salesforce Customer Support.

#### See Also - [What Is Commerce Einstein?](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_what_is.htm&release=264.0.0&type=5 "Commerce Einstein provides AI-powered merchandising tools to enhance the shopper experience.") - [Reindex Commerce Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_manage_ce_index.htm&release=264.0.0&type=5 "Changes to your store’s product catalog are automatically sent to Commerce Einstein every 7 days, but you can manually reindex after making changes. Reindexing can take up to 24 hours to complete.") - [Storefront Activity Tracking](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_activity_tracking_top.htm&release=264.0.0&type=5 "Storefront activity tracking captures browser-based, real-time customer activities on your storefront, unless settings are explicitly changed by the customer.") - [Semantic Search](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_semantic_search_top.htm&release=264.0.0&type=5 "Semantic search improves search results by matching and returning items that are semantically related to a query.") - [Einstein Recommendations Component (LWR) for D2C Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_component.htm&release=264.0.0&type=5 "The Einstein Recommendations component personalizes the shopping experience and reduces the manual effort required to drive product discovery on your storefront.") # Enable Customers to Add Products to Their Cart from Search Results When customers search for products in your store, let them add the product to their cart directly from the search results page. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Configure the Add to Cart Button These steps apply to the Results component in B2B stores. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, open the search page. 4. From the Components panel, drag the Results component into the page’s Results section. When you drag a component over a content or theme layout region, a label appears to identify the region. Components in a content layout region are specific to the page. Components in a theme layout region have the label “Shared” added to the name because they’re shared everywhere that the theme layout region is used. 5. In the component’s Results Display section, select **Show Call To Action Button**. 6. Use the customization options to tailor the button style and text. ## Configure the Add to Cart Button (D2C Stores Only) These steps apply to the Results Grid component in D2C stores. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, open the search page. 4. From the Components panel, drag the Results Grid component into the page’s Results Layout section. When you drag a component over a content or theme layout region, a label appears to identify the region. Components in a content layout region are specific to the page. Components in a theme layout region have the label “Shared” added to the name because they’re shared everywhere that the theme layout region is used. 5. Edit the Results Grid component properties. 1. Go to the component’s Settings tab. 2. For Data Source, select **Nested Expression**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Custom expressions aren't supported inside Nested Expressions. 3. For Expression, select **Description**. 6. Add the Product Card component to the Results Grid component, and edit the Product Card component properties. 1. From the Components panel, drag the Product Card component into the sfdcRepeaterItem section of the Results Grid component. 2. Go to the component’s Settings tab. 3. For Data Binding, make sure that {!Item} is entered. 4. In the Button Settings section, select **Show Add to Cart Button**. 5. Use the customization options to tailor the button style and text. 7. Edit the Results Grid component properties again. 1. Go to the component’s Settings tab. 2. For Data Source, select **Nested Expression**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Custom expressions aren't supported inside Nested Expressions. 3. For Expression, select **Product Cards**. #### See Also - [Considerations for B2B Commerce Product Bundles and Sets](https://help.salesforce.com/s/articleView?id=commerce.comm_merchant_considerations_for_product_bundles_and_sets.htm&release=264.0.0&type=5 "A Commerce product bundle or set is a simple product that can contain simple products and variation products as child products. When you have bundles or sets and run Product Readiness for your catalog, Commerce checks for different product scenarios related to the parent and child products. Certain scenarios limit readiness. Before you create and configure a product bundle or product set for your store, keep these considerations in mind to increase readiness and support for other features, like search.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") # Enable Data Governance Permissions for Data 360 for B2B Objects To use Data 360 Data Governance features for Data 360 for B2B, you need to grant access to the impacted objects according to an access policy. ### Required Editions
View supported editions.
You can select from either attribute-based access control (ABAC) or role-based access control (RBAC). This gives you more granular control over your users access to data. Follow instructions in [Grant Access to Data 360 Objects](http://sfdc.co/dc-objects) to assign these objects to an available policy. ## Associated Data 360 Objects
Object Type Name
Data Lake Objects (DLOs) BundleProduct
Cart
CartItem
Catalog
ContactPointAddress
ContactPointEmail
ContactPointPhone
CustomAttributeDefinitions
CustomerProfile
Error
GoodsProduct
Identity
MasterProduct
Order
PartyIdentification
Product
ProductCatalog
ProductCategory
ProductCategoryProduct
ProductOption
ProductOptionValue
ProductProductOption
SalesOrderCustomer
Search
UserEngagement
Data Model Objects (DMOs) Account
BundleProduct
ContactPointAddress
ContactPointEmail
ContactPointPhone
Coupon
CouponDefinition
ErrorEngagement
FulfillmentOrder
FulfillmentOrderProduct
FulfillmentOrderProductPriceAdjustment
FulfillmentOrderProductTax
GoodsProduct
Individual
Location
LocationGroupProductExclusionChange
LocationGroupProductInventoryChange
LocationProductInventoryChange
MasterProduct
OrderDeliveryMethod
PartyIdentification
PaymentMethod
PriceAdjustmentGroup
ProcessException
Product
ProductAdjustmentGroup
ProductAttribute
ProductBrowseEngagement
ProductCatalog
ProductCategory
ProductCategoryAssociation
ProductCategoryProduct
ProductOption
ProductOptionAssociation
ProductOptionValue
ProductOrderEngagement
Promotion
ReturnOrder
ReturnOrderProduct
ReturnOrderProductPriceAdjustment
ReturnOrderProductTax
SalesChannel
SalesOrder
SalesOrderChangeLog
SalesOrderDeliveryGroup
SalesOrderPaymentSummary
SalesOrderPriceAdjustment
SalesOrderProduct
SalesOrderProductPriceAdjustment
SalesOrderProductTax
SchemaRegistry
ShoppingCartEngagement
ShoppingCartProductEngagement
Tax
WebSearchEngagement
WebsiteEngagement
WebStore
WebStoreNetwork
WebStoreProductCatalog
If you have more than one data space, you must grant access to objects in each data space. Object names in non-default data spaces follow the convention of \_. # Enable Data Translation When you enable data translation, you can translate the data stored in your B2B store product, category, and promotion fields. You can also enable data translation for custom text and URL fields on the product and category objects. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Data translation requires API version 48.0 or later. Data translation counts against your org’s storage limits. 1. Enable data translation for the name and description fields on the product and category objects. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Company Information, and select **Company Information**. 3. In the Organization Detail section, click **Edit**. 4. Select **Enable Data Translation**. 5. Save your changes. 2. Enable data translation for custom fields. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Data Translation Settings, and select **Data Translation Settings**. 3. Select the object. Only the objects that support data translation are listed. 4. Select the custom fields that you want to make available for data translation. You can enable data translation only for custom fields with a type of Text, Text Area, Text Area (Long), Text Area (Rich), or URL. 5. Save your changes. #### See Also - [Manage Objects' Data Translations](https://help.salesforce.com/s/articleView?id=platform.ls_manage_data_translations.htm&type=5&language=en_US) - [Configure Salesforce for Global Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_config_org_for_international.htm&release=264.0.0&type=5 "Make sure that your language, translation, and currency settings support B2B Commerce stores around the world.") - [Manually Localize Product, Category, and Promotion Data](https://help.salesforce.com/s/articleView?id=commerce.comm_create_data_translation.htm&release=264.0.0&type=5 "You can manually enter translated text for your B2B product and category names and descriptions. To translate promotion names and descriptions, you must use Translation Workbench. To perform bulk translations for product, category, or promotion data, use Translation Workbench.") # Enable Displayable Fields in Commerce (Beta) Enable displayable fields to decrease page load times and retrieve product data faster on search, product, cart, and checkout pages for B2B Commerce stores. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Displayable Fields is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this pilot or beta service is at the Customer's sole discretion. 1. In the navigation sidebar, select any store from the **Store** dropdown. 2. Select **Settings** | **Store**, and then click **Displayable Fields**. 3. Turn on **Displayable Fields**. This setting applies to all stores in your org. However, if a product is marked as Not Searchable, direct links to the Product Detail page don’t work when you enable displayable fields. See [Mark Products as Searchable or Not Searchable](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_products.htm&language=en_US). ![Enable displayable fields in Commerce.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_enable_displayable_fields.png) 4. Update the search index using the Full Update method. It’s important to fully rebuild the index after product updates. If Product Suggestions is enabled and you don’t update the full index, the suggested product names and images that appear below the search bar might not match the names on the Product List page. Displayable fields can increase the time needed to update the index. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates."). #### See Also - [Set Up Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_displayable_fields.htm&release=264.0.0&type=5 "Set up the category, custom, and standard product fields that you want to enable as displayable on your search, product, cart, and checkout pages for B2B Commerce stores.") - [Configure Product Fields for Search Results in a B2B Commerce Store (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_product_fields_for_search_results.htm&release=264.0.0&type=5 "Configure the standard product fields that you want to display in the search results on your search, product, cart, and checkout pages.") - [Search Suggestions for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_search_search_suggestions.htm&release=264.0.0&type=5 "Search suggestions offer term and product suggestions, making it easier and faster for buyers to find relevant items.") # Enable Duplicate Cart Items for a B2B Store Let customers add duplicate cart items to their carts, instead of increasing the quantity of a single cart item. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Enable duplicate cart items. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Developer Console**. 2. From Debug, click **Open Execute Anonymous Window**. An Apex editor window opens. 3. Copy this code snippet into the Apex editor window. ```javascript ID storeId = '0ZExx0000000000000'; // !! REPLACE WITH YOUR STORE ID !! WebStore store = [ select id, OptionsDuplicateCartItemsEnabled FROM WebStore WHERE id = :storeId LIMIT 1]; store.OptionsDuplicateCartItemsEnabled = true; update store; ``` 4. Replace the store ID with your 18-character ID. You can find your ID in your store’s home page URL. It begins with “webStoreId=”. ![Webstore ID highlighted in a store URL.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_webstore_ID.png) 5. Execute the code, and return to your store’s home page. # Enable Einstein Generative AI and Agents for B2B Stores Provide your customers the best shopping experience when they're visiting your B2B stores by enabling generative AI features. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Required Licenses - B2B Commerce - Agentforce 1. Complete the steps in [Enable Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_enable.htm&language=en_US). These steps include setting up Data Cloud, turning on Einstein generative AI, setting up Einstein Trust, and turning on Einstein Data Collection and Storage. 2. Enable Einstein Agents. From Setup, in the Quick Find box, enter Agentforce Agents, and then select **Agentforce Agents**. If you don’t see Agents in Setup, verify that Einstein Generative AI is enabled. If that’s not the issue, make sure you have the correct license and user permissions for your agent type. 3. Turn on **Agentforce** to get access to Agentforce. After you enable Agentforce, refresh the page to see the +New button to create agents. 4. Refresh your browser. ![Agentforce Agents enable toggle with Agentforce enabled](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_agent_enable.jpg) # Enable Electronic Contracts The POS app provides an option to ask customers to sign an electronic contract within the app when they place a layaway order or add finance as a tender. Once the contract is signed, the app generates the PDF of those documents which can be printed from the app. - Modern POS App Build: 5.10.1 or above; 9.4.1 or above for multi-finance tenders - Platform Support: iPad - Offline Support: No ## Configure a Contract Layout 1. Create a contract [layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_process.htm&release=264.0.0&type=5 "Learn how to create and publish layouts using the Point of Sale Layout Editor, including starting from a blank layout or a template, and managing live versions, drafts, and scheduling. Discover how to edit, save, publish, and restore layouts, ensuring your content is always up-to-date and tailored to your needs."). 2. In CMS, go to **Apps** | **Store**. 3. Edit your selected app config. 4. Go to **UI** | **UI options** | **Electronic contract layouts**. ![The CMS contract layout dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_config.png) 5. Select the contract layout you've created. 6. Set and save your changes. The [tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_print.htm&release=264.0.0&type=5 "Print tags are placeholder strings that dynamically display data in Point of Sale layouts. Add print tags to native or HTML text overlays to display information such as order totals, customer names, or store details. You can also use print tags in certain app-level settings.") supported in these contract layouts are limited to these:
Tag Description
Layaway
:ps_order_id Current order ID
:ps_order_total Current order total
:ps_order_customer_id Order customer ID
Finance
:ps_order_id Current order ID
:ps_order_finance_tender_code Finance tender code
:ps_order_finance_tender_desc Finance tender description
:ps_order_finance_terms Finance terms
## POS Behavior ### Single Finance Tendering When an associate chooses to apply the layaway option on the order, the app will present the contract when the order is being placed. ![The POS app shows an order with the layaway option selected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_pos_1.png)![The POS app shows the details of a contract.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_pos_2.png) Once the customer signs it, the app will show the print preview of the signed document. ![The POS app shows a contract with customer signature.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_pos_3.png)![The POS app shows a contract ready for printing.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_pos_4.png) Store associates can print the document and then submit the order. ![The POS app shows options for sharing the contract PDF.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_pos_5.png) ### Multiple Finance Tendering The POS app supports multiple finance tenders in app build 9.4.1 or greater. This can be configured in CMS by enabling the flag, Multiple Finance Tenders Supported in Orders (**Store Management** | **Store Settings** | **Payment** | **Advanced**). ![The CMS shows the option to enable multiple finance tenders.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_multi_setting.png) On the POS app, after entering the finance tendering details, each finance contract will be displayed immediately after the tender is applied. ![The POS app shows a dialog for adding finance.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_pos_6.png)![The POS app shows a customer signature being collected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_pos_7.png) Once the signature has been submitted, users will have the choice to either "Accept" or "Decline" the contract. Opting to "Accept" will result in the tender being added to the outstanding balance, whereas choosing "Decline" will exclude it. After it has been accepted, an automatic screenshot will be captured and saved on the device. ![The POS app shows the screen offering a customer the option to accept or decline an agreement.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_electronic_contracts_pos_8.png) All digitally signed contracts will be sent to the merchant's SFTP server via Salesforce Backend. The transaction information will also be recorded in the [TLogs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog.htm&language=en_US). ## Known Issues and Restrictions Multi-finance tendering is not supported for A4 printing. # Enable Express Checkout in POS Speed up customer checkouts with Express Checkout in the POS app. Configure express checkout with a deep link, by manually adding items, or a quantity picker. Associates can scan items directly into the cart, handle errors, and complete orders efficiently. - Modern POS App build: 5.1.0 or above - Platform Support: iPhone & iPad - Offline Support: Yes ## Configure Deep Link from Layout 1. Configure a deep link to access express checkout on the POS app. 2. Create a layout or use a pre-existing one. 3. Select a cell. 4. Add **Deeplink** | **Store Associate** | **Express Checkout**. ## Configure Manually Adding Items to Cart Point of Sale also supports an option where you can add items to the cart directly from the search page. Products with no variations are added to the cart directly. However, if a product has variations, tapping Add to Cart leads the associate to the PDP where the user has to select the product variation. 1. Configure a Search Layout. 2. In your app config, go to **UI** | **Search Layouts** | **Edit Search Layout**. 3. Turn on the flag, Show Add to Cart Button. 4. Click **Save**. ## Configure Quantity Picker When you add an item to your cart, you have the option to customize its quantity selection. This allows you to streamline the process by scanning just one item and then adjusting the quantity, instead of scanning multiple identical items. 1. In CMS, go to **Store Management** | **Store Settings** | **OMS**. 2. Expand **Advanced**. 3. Turn off the flag, Treat Each Item As Separate Line Item. ## Scan Items to Cart in POS When the store associate clicks on the Express Checkout deep link, the app navigates to the bar code scan screen. Now, the store associate can scan items and add them to the cart. ## Handle Errors in POS When the store associate scans an item that is not available in the feed, the app shows the error message accordingly. ## Add Items Manually in POS If Show Add to Cart Button is turned on, on the search page, you see an Add to Cart button at the bottom of each product cell. If Treat Each Item As Separate Line Item is turned off, after an item is added to the cart, you can edit its quantity. ## Complete Orders in POS Once the store associate scans the item(s), they can move to the cart by clicking Go To Cart at the bottom or the cart icon on the navigation bar. This completes the order. When you tap Checkout, the credit card tender flow will be initiated by default, prompting the customer to present their card on the terminal. If a customer wants to use a different tender method, tap the Multi-Tender tile on the screen. # Enable Franchise Management Enable Franchise Management in Point of Sale CMS for the Merchant Location Region (MLR). 1. Log in to the Point of Sale CMS as a corporate admin. 2. Go to **Advanced | Merchant Config** and edit the configuration. 3. Go to the **General Settings** tab and turn on **Enable Franchise Management**. 4. Save your changes. ![Screenshot showing Enable Franchise Management toggle in Merchant Config](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_franchise_enablemlr.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Enabling this setting activates the franchise concept across the entire MLR. Franchise ID becomes a mandatory field in store feeds and APIs. #### See Also - [_Salesforce Help:_ Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5 "Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations.") # Enable High Scale Orders for B2B Stores Starting in Summer ’24, if you use the Commerce Setup Assistant to set up a new B2B or D2C store created with the LWR template, high-scale order ingestion (HSOI) is enabled by default. For existing stores, you can manually enable HSOI by enabling Enhanced Commerce Orders. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) If you imported orders before enabling Enhanced Commerce Orders, delete and reimport the order and related entities. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, find and select **Order Settings**. 3. Turn on **Enable Orders** and **Enable Enhanced Commerce Orders**, and click **Save**. # Enable High-Scale Integration for Order Management Salesforce orgs use high-scale order ingestion (HSOI) to create order summaries. HSOI can handle 5,000 orders placed per minute and 2,500 orders processed per minute for approximately 50 locations. Each order can have up to 2,000 lines. Order Ingestion must be enabled for HSOI to work on your org. 1. If you’ve integrated B2C Commerce with Order Management, pause the integration. 1. Log into B2C Commerce Business Manager. 2. Navigate to **Administration** | **Global Preferences** | **Salesforce Order Management Integration Administration.** 3. Change the Integration State from **active** to **paused** and save your changes. 2. From Setup, in the Quick Find box, enter Order Management, select Order Management, and turn on High Scale for B2C Integration. 3. If all your orders are from channels that have High-Scale Orders enabled, don’t use or disable the Create Order Summary flow. However, you can have some orders coming from channels that have High-Scale Orders enabled and other channels where it isn’t enabled. In this case, you can modify the Create Order Summary flow to first check if High-Scale Orders is enabled. One way to perform this check is to use the HighScaleOrdersSettings file-based Apex. Create a custom invocable method that calls the HighScaleOrdersSettings file-based Apex in the commerce\_ordermanagement namespace. Use the isIngestOrdersAtScale method to determine if High-Scale Orders is enabled (true). For example: ``` public class HighScaleSettingsInvocabale { @InvocableMethod(label = 'Determine if HighScale is Enabled') public static List isHighScaleEnabled() { List listOutput = new List(); System.debug('Flag settings from the server ~~~~ ' + commerce_ordermanagement.HighScaleOrdersSettings.isIngestOrdersAtScale()); listOutput.add(commerce_ordermanagement.HighScaleOrdersSettings. isIngestOrdersAtScale()); return listOutput; } } ``` Use the custom invocable method to add an Apex action to the beginning of the Create Order Summary flow. If the flow detects that High-Scale Orders is enabled, the flow exits. If it isn’t enabled, the flow creates the order summary. 4. Edit the Account object page layout. 1. From the Object Manager, enter Account in the Quick Find Box. 2. Select **Account** | **Page Layouts** | **Account Layout**. 3. In the Account Layout section, select **Related Lists**, and drag **Pending Order Summaries** to the Related Lists section. 5. Edit the Contact object page layout. 1. From the Object Manager, enter Account in the Quick Find Box. 2. Select **Contact** | **Page Layouts** | **Contact Layout**. 3. In the Contact Layout section, select **Related Lists**, and drag **Pending Order Summaries** to the Related Lists section. 6. If you have different page layouts for different user profiles, add the Pending Order Summaries related list to the Account and Contact page layouts for all users. 7. If you have custom permission sets with the Lightning Order Management User license, give the custom permission sets access to the pending order summary object and pending order summary processed event. Users with the standard Order Management Agent or Order Management Operations Manager permission set already have access. 1. From Setup, in the Quick Find Box, enter Permission Sets, and select the custom permission set. The permission set must have the Lightning Order Management User permission set license. 2. Select **Object Settings**. 3. Select **Pending Order Summaries**, and click **Edit**. 4. Select **Read** and **Delete**, and save. 5. Click **Object Settings**. 6. Select **Pending Order Summary Processed Event**, and click **Edit**. 7. Select **Read** and **Create**, and save. 8. If you paused the integration, set the integration state back to active 1. Log into B2C Commerce Business Manager. 2. Navigate to **Administration** | **Global Preferences** | **Salesforce Order Management Integration Administration.** 3. Change the Integration State from **paused** to **active** and save your changes. If you’re integrating with B2C Commerce for the first time, resume [integration progress](https://help.salesforce.com/s/articleView?id=commerce.om_impl_storefront_integration.htm&release=264.0.0&type=5 "Set up a connection between B2C Commerce and the Salesforce org where Order Management is configured. This connection lets Order Management receive orders from B2C Commerce."). 9. Confirm that the high-scale system is working correctly. 1. Submit a test order. 2. In B2C Commerce Business Manager, in the storefront site, go to **Merchant Tools** | **Ordering** | **Orders**. 3. In the Order Management column, locate the test order, which now has an Accepted label. 4. In your Order Management org, search for the order summary and related records, and verify that they exist. If you encounter an error or order summaries aren’t created, open a case with Salesforce Customer Support. #### See Also - [Order Management and Salesforce Flow](https://help.salesforce.com/s/articleView?id=commerce.om_configure_om_flows.htm&release=264.0.0&type=5 "Order Management works with Salesforce Flow to help you to create manual and automated functions. We provide out-of-the-box flow templates for processes such as order summary creation, placing orders on behalf of shoppers, order fulfillment, and order servicing.") - [Manually Import a Pending Order Summary](https://help.salesforce.com/s/articleView?id=commerce.om_order_summary_manual_import.htm&release=264.0.0&type=5 "When the high-scale system is enabled, orders usually flow quickly from the Zero Object Service (ZOS) into Order Management. But when order volume is high, such as during a flash sale, orders can spend time waiting in ZOS. While an order is in ZOS, it’s visible in Order Management as a pending order summary. If you want to service an order that’s still in ZOS, you can manually import the pending order summary.") - [Disable High-Scale Integration with B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_deactivate_high_scale_orders.htm&release=264.0.0&type=5 "Confirm that your org has a functioning Create Order Summary flow.") # Enable Inventory Checks on the Product Detail Page You can use all Order Management service flows out of the box, and you can also customize a flow and expand its functionality. This customization lets customer service representatives (CSR) see whether a product is in stock from the product detail page. The inventory check helps reduce out-of-stock errors by giving the CSR up-to-date stock information before they add an item to a cart. ### Required Editions
View supported editions.
If you don’t have an editable version of the flow yet, [copy a flow template](https://help.salesforce.com/s/articleView?id=commerce.om_flow_copy.htm&release=264.0.0&type=5 "Before you can activate or customize a flow, you need to clone the flow. Cloning creates an editable version that you can modify or activate out-of-the-box on your store. If you set up your store using the Commerce Setup Assistant, your flows are already cloned."). You can enable inventory checks in the even exchange, exchange RMA, and order on behalf of flows. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter flows, and select **Flows**. 3. Select the flow that you’re customizing. 4. In the flow, open the Manager tab. 5. Find and select **applyOCI**. 6. Set the default value to {!$GlobalConstant.True}. 7. Find and select **useLocationGroup**. 8. Set the default value to {!$GlobalConstant.True}. 9. Click **Done** and save your flow. #### See Also - [Customizing Order Management Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customizations.htm&release=264.0.0&type=5 "The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement.") # Enable Manual Capture for Payments Use manual capture for payment processing for greater control, flexibility, and security in managing their payment transactions. Manual capture is available for Commerce and Pay Now stores. ### Required Editions
View supported editions.
User Permissions Needed
To enable manual capture Customize application
1. For a new Pay Now store or a Commerce store using managed checkout, enable manual capture in the Payments section of your store's managed checkout configuration. ![Managed checkout manual capture setting](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_managed_manual_capture.png) 2. For a Commerce store using custom checkout, enable manual capture from Experience Builder. On the Checkout or Pay page, enable the setting on the Salesforce Payments or Express Checkout component. ![Manual capture in Experience Builder](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_builder_comps_manual_capture.png) # Enable Marketing Consents You can easily enable marketing consents for your B2B store from within the Messaging workspace. A default consent is created for you. You can edit this consent to fit your needs. After consents are enabled, the consents appear on your store in the consent components that you have configured in Experience Builder. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, from the Store dropdown menu, select the store. 2. Click **Settings** | **Messaging**. 3. In the Marketing Consents section, enable consents. #### See Also - [Manage Marketing Consents for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_marketing_consents_intro.htm&release=264.0.0&type=5 "Use the Commerce Messaging workspace to create customer consent messages to capture emails and grow your marketing campaigns. Marketing consents for B2B requires the CommerceMessagingAddOn license, which is packaged with Commerce Growth or Advanced editions. You'll need an enhanced CMS workspace and the refreshed Commerce app. It also requires Marketing Cloud and Data 360 and it uses Data 360 credits. Reach out to your account executive to learn more about credit usage. Marketing consents aren’t available for Reorder or Pay Now stores.") - [_Trailhead_: The Combined Power of Marketing Cloud Next and Agentforce Commerce](https://trailhead.salesforce.com/content/learn/modules/the-combined-power-of-marketing-cloud-and-commerce-cloud) # Enable Markets for B2B Authenticated Buyers With markets enabled, buyers can enjoy a more localized shopping experience. This personalization enhances the buyer experience and facilitates smoother transactions for international B2B buyers. Markets for B2B authenticated buyers is disabled by default. Enable this feature from B2B authenticated user access under store settings. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) The location menu is in the footer on the store, and is available across all store pages. Customers can use this menu at any time to change their location. ![Screenshot of the location menu on the store](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_localemenu.png) If markets are not enabled, when buyers change their location on the store, the language and currency that are displayed on the store change accordingly. However, if markets are enabled, when the buyer changes their location, the market associated with the store also changes. Since markets are set up with different products and price books, buyers can see different items in the store, different prices, or even different promotions when they change their location. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note After markets for B2B authenticated buyers are enabled or disabled, if the buyer changes the store locale, and there are items in the cart that haven't been checked out, the cart won't load. To fix this issue, delete all active carts from the **Carts** page after you enable or disable the feature. Your buyers lose their current cart and have to start over in the new locale. To facilitate easier deletion of all carts, consider creating a custom Mass Delete button. For more information, see [Custom Button Example: Mass Delete](https://help.salesforce.com/s/articleView?id=platform.links_useful_custom_buttons_mass_delete.htm&language=en_US). 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**, and then click **Markets**. 3. Enable **B2B authenticated user access**. ![Screenshot of B2B authenticated user access setting](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_marketsforb2bauth_enablemarkets.png) Now when a buyer changes the location on the store, the market associated with the store also changes. You can disable this feature at any time. After you disable this feature, delete all active carts from the **Carts** page. # Enable Multiple Currencies for Even Exchanges All Order Management service flows work out of the box, but there are some easy ways to customize service flows and expand their functionality. Orgs that support multiple currencies require customization to support the even exchanges flow. Only the even exchange flow requires customization to support multiple currencies. ### Required Editions
View supported editions.
If you don’t have an editable version of the flow yet, [copy a flow template](https://help.salesforce.com/s/articleView?id=commerce.om_flow_copy.htm&release=264.0.0&type=5 "Before you can activate or customize a flow, you need to clone the flow. Cloning creates an editable version that you can modify or activate out-of-the-box on your store. If you set up your store using the Commerce Setup Assistant, your flows are already cloned."). You can set enable multiple currencies for the even exchanges flow. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter flows, and select **Flows**. 3. Open your Even Exchange flow. 4. In the list of Create Records elements, select **Pricebook\_Entry**. 5. In the Set Field Values for the Price Book Entry section, click **Add Field**. 6. For Field, enter CurrencyIsoCode. 7. For Value, enter {!Get\_Order\_Summary.CurrencyIsoCode}. 8. Click **Done**. #### See Also - [Customizing Order Management Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customizations.htm&release=264.0.0&type=5 "The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement.") # Enable Omnichannel Inventory If you’re new to the Salesforce platform, start by setting up a Salesforce org. The person who signed your Omnichannel Inventory order form received a welcome email for the org. Their email address is the user ID of the org’s initial Salesforce admin account. For information about setting up the org, see [Set Up and Maintain Your Salesforce Organization](https://help.salesforce.com/articleView?id=xcloud.setup_overview.htm&language=en_US) in Salesforce Help. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_important.png) Important Instructions to log out, refresh a page, or wait for the cache to update are easy to miss. Skipping them can cause problems that are hard to troubleshoot, so follow every step carefully. 1. Enable Lightning Experience. Omnichannel Inventory isn’t currently supported on Salesforce Classic or Mobile. On Mobile, you can view record pages but can’t use other Omnichannel Inventory features. 2. If you plan to integrate with Salesforce Order Management, [implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note If you use the Create Reship Order flow, customize it to set the applyOCI variable to true. Its default value is false. 3. If you aren’t using Salesforce Order Management, define a set of fulfillment location types, such as Warehouse and Retail Store. Add them to the Location Type picklist on the Location object. For details about the location object, see [Location](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_location.htm). 4. From Setup, in the Quick Find box, enter Omnichannel Inventory, and then select **Omnichannel Inventory**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note **Omni-Channel** is a different product. 5. Turn on the **Omnichannel Inventory** setting. # Enable OneLogin with Point of Sale CMS Integrate OneLogin with Point of Sale CMS to validate user credentials during login. After the login information is validated, establish communication with Point of Sale. Point of Sale offers the ability to integrate identity and access management tools such as OneLogin into a Content Management System (CMS). OneLogin can be used to validate the credentials of a user during login. After the login information is validated, communication with the Point of Sale is established. This article explains the requirements and configuration needed to integrate OneLogin with CMS. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This article applies to the legacy platform. If you're on Hyperforce, configure CMS SSO through Salesforce Core instead. See [Point of Sale Single Sign-On](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_single_signon.htm&release=264.0.0&type=5 "Point of Sale Single Sign-On (SSO) lets users sign in with a single set of credentials and access components such as the Content Management System (CMS) and the POS app. Point of Sale supports common identity providers (IdPs), including OneLogin and Azure Active Directory (Azure AD)."). Also, the steps in this article aren't for integrating OneLogin with the Point of Sale (POS) app. For more information, read [Enabling OneLogin with POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_one_login.htm&release=264.0.0&type=5 "Integrate your Point of Sale (POS) app with OneLogin to validate store associate credentials. Verify secure communication with Salsesforce and streamline user management using your existing identity and access management tools. Configure your OneLogin portal and CMS settings to enable seamless authentication for both online and offline access."). 1. Create your OneLogin account by referring to "Step 1: Configure OneLogin" in OneLogin Authentication. 2. After your account has been set up, provide your Point of Sale Customer Success Manager (CSM) with the following information: 1. Base URI 2. Client ID 3. Client Secret After this information is received, it'll be custom-coded by Point of Sale. 3. Your Point of Sale CSM provides a Callback URL which you use to enter into your OneLogin account under Redirect URIs. 4. Save and test your changes. # Enable Optional Request and Response Logging for HTTP Calls Control request and response logging for outgoing service calls by enabling the Communication Log setting for individual services. When enabled, this feature logs request and response details including headers. This feature provides enhanced visibility into external service communications and helps you validate authentication headers and troubleshoot integration issues. You can now enable request and response logging for outgoing HTTP client calls with automatic redaction of sensitive data. This feature logs complete request and response details including headers, making it especially useful for validating custom authentication headers and troubleshooting third-party service integrations. The `dw.net.HTTPClientLoggingConfig` class now provides greater control over logging behavior and sensitive data redaction. You configure which fields, headers, and data patterns should be redacted to protect sensitive information like passwords, credit card numbers, and authentication tokens. Logging only occurs when both Business Manager settings and API configurations are enabled. **Where:** This feature applies to B2C Commerce. **How:** In your script code, configure logging with the `HTTPClientLoggingConfig` class. You must specify sensitive fields to redact or logging will be skipped. For example: ``` var httpClient = new dw.net.HTTPClient(); var config = new dw.net.HTTPClientLoggingConfig(); // Enable logging config.setEnabled(true); config.setLevel("INFO"); // Configure sensitive data redaction (required for logging to occur) config.setSensitiveHeaders(["authorization", "x-api-key"]); config.setSensitiveJsonFields(["password", "creditCard"]); config.setSensitiveXmlFields(["password", "creditCard"]); // Apply configuration httpClient.setLoggingConfig(config); // Make your HTTP call httpClient.open('GET', 'https://api.example.com/endpoint'); httpClient.send(); ``` If you configured your code as a service, in Business Manager, navigate to **Administration** | **Operations** | **Services**, select the service, and enable **Communication Log Enabled**. #### See Also - [Create a Web Service Configuration](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-webservices.html#create-a-web-service-configuration) - [Class HTTPClient](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/upcoming/scriptapi/html/api/class_dw_net_HTTPClient.html) - [Class HTTPClientLoggingConfig](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/upcoming/scriptapi/html/api/class_dw_net_HTTPClientLoggingConfig.html) # Enable or Disable All Einstein Complete the Set Categories at Once You can now enable or disable all Einstein Complete the Set categories at the same time. Why: Previously, you enabled or disabled Einstein Complete the Set categories one category at a time. For implementations that support many categories, enabling and disabling individual categories was tedious and time consuming. To help streamline how you manage your Einstein Complete the Set categories, Enable All and Disable All buttons now appear on the Review Sets tab. How: To enable or disable all Einstein Complete the Set categories: Where: This new feature is available in the Salesforce B2C Commerce 21.1 release. 1. Log into [Einstein Configurator](https://configurator.cquotient.com/). 2. Click an existing Einstein Complete the Set recommender or create one. Einstein Configurator opens to the Complete the Set **General** tab. 3. Click the **Review Sets** tab. 4. Click the **Enable All** button to enable all Einstein Complete the Set categories, or the **Disable All** button to disable them. 5. (Optional) Click the Enable checkbox for individual categories to either enable (checked) or disable (unchecked) that category. # Enable or Disable Sort for Search Results Sorting is enabled for search and category pages in B2B Commerce stores by default. However, you can control whether customers can see the sorting menu that appears on these pages with the Results Layout component. You can change the sorting properties on any page that uses the Results Layout component. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Because each instance of the Results Layout component is unique, set properties on each instance separately. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. From the Pages dropdown menu, select **Search Results** or **Category Detail**. 4. Select the **Results Layout** component. 5. In the Sorting Menu section, select the **Show sorting menu** checkbox so users can sort search results. Deselect it to disable sorting. 6. Publish the store. The sorting menu appears only when a search returns results. The selected sorting option remains enabled for the current search results, unless you change it. When you issue another search request, the sorting option reverts to the first sort option in the sorting menu. #### See Also - [Add a Sort Rule](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_rule_add.htm&release=264.0.0&type=5 "Create a sort rule based on available products and product attributes to let customers arrange results in search and category pages for B2B Commerce stores.") - [Edit or Delete a Sort Rule](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_rule_edit_delete.htm&release=264.0.0&type=5 "You can edit a sort rule and change where it appears in the sorting menu of your B2B Commerce store. To remove a sort rule from the sorting menu, delete the rule.") # Enable Order Fulfillment from Multiple Addresses for Custom Checkout When a customer chooses to send products in one order to different addresses, you can fulfill the order from multiple locations. The Split Order Fulfillment flows create a fulfillment order for each address. You can also manually split fulfillment for an order. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Enable Split Shipping, and set up multiple delivery groups. See [Enable Split Shipping for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_split_shipping_for_commerce_stores.htm&release=264.0.0&type=5 "Let customers ship items in one order to multiple addresses in a B2B store or a Pay Now site. At checkout, customers can split a single cart into multiple shipments. You can’t use split shipping with managed checkout or with digital or subscription products."). 2. In your browser, go to the [commerce-on-lightning repo](https://github.com/forcedotcom/commerce-on-lightning/tree/ac5c6021dabef61b216d8a2a0944ee1d695fde1c/examples/b2b/checkout/create-fulfillment-orders). 3. Follow the steps in the repo to deploy and activate the flows. - Create OrderSummaryRoutingSchedule on OrderSummary event–This flow is triggered when a customer places an order and generates an order summary. It creates an Order Summary Routing Schedule record that includes the order summary ID, a status of Scheduled, and the scheduled date and time set to Current Date/Time. The flow then triggers the Create Fulfillment Orders on OrderSummaryRoutingSchedule flow. - Create Fulfillment Orders on OrderSummaryRoutingSchedule–This flow is triggered by the Create OrderSummaryRoutingSchedule on OrderSummary event flow. A user can also manually trigger this flow by creating an Order Summary Routing Schedule record with a Scheduled status. It triggers the Create FulFillment Orders from Order Summary Subflow. - Create Fulfillment Orders from Order Summary Subflow–This flow is triggered by the CreateFulfillment Orders on OrderSummaryRoutingSchedule flow. It creates corresponding FulfilmentOrder, FulfillmentOrderLineItem, FulfillmentOrderItemAdjustment, FulfillmentOrderItemTax records for each delivery group in the order. # Enable Order Fulfillment Setup The Order Fulfillment Setup section is the landing page for all components of Commerce Delivery Service (CDS). ### Required Editions
View supported editions.
1. In the App Launcher, search for and select **Order Management**. 2. Click the down arrow on the top menu bar. 3. Click **Edit** and click **Add More Items**. 4. Select **Order Fulfillment Setup** and click **Add Nav Items**. 5. Click **Save**. #### See Also - [Commerce Delivery Service and Order Fulfillment](https://help.salesforce.com/s/articleView?id=commerce.om_cds_overview.htm&release=264.0.0&type=5 "Configure fulfillment from start to finish by using Commerce Delivery Service (CDS).") # Enable Order Management Analytics Connect your org’s Data 360 license to Order Management to access the Analytics dashboard and create and view calculated insights. ### Required Editions
View supported editions.
Before turning on Order Management Analytics, review the prerequisites and necessary data stream set up to connect Data 360, Commerce, and Order Management. See [Order Management Analytics](https://help.salesforce.com/s/articleView?id=commerce.om_analytics_overview.htm&release=264.0.0&type=5 "The Order Management Analytics dashboard provides key metrics across the order fulfillment lifecycle. Use AI-generated insights to enhance decision making for your order management operations with real-time, unified data. Create data streams to bring Order Management data into Data 360. Then connect your Data 360 license to Order Management to create calculated insights for order fulfillment performance."). Conveniently create data streams between Order Management and Data 360 by using data kits. See [Share Data Using Order Management File-Based Data Kits](https://help.salesforce.com/s/articleView?id=commerce.om_share_data_using_om_data_kits.htm&language=en_US). After you deploy the Order Management data kit, make sure the necessary data streams and data model objects (DMOs) are present. To view data streams, from Data Cloud, open the **Data Streams** tab. Make sure that these data streams are present: - Location - LocationGroup - LocationGroupAssignment - Product2 - ProductCategory - ProductCategoryProduct - ProductCatalog - FulfillmentOrder - OrderItemSummary To view DMOs, from Data Cloud, open the **Data Model** tab. Make sure these DMOs with their required fields are present and mapped to the correct data streams.
Data model object Mapped Data Stream Required Fields
Fulfillment Order FulfillmentOrder
  • CreatedDate
  • ProcessingTimeInMinutes
  • FulfilledFromLocationId
  • SalesOrderId
  • FulfillmentStatus
Location Location
  • ID
  • Name
  • DefaultProcessingTime
  • DefaultProcessingTimeUnit
Product Category ProductCategory
  • ID
  • Name
Goods Product Product2
  • ID
  • Name
  • ProductSKU
Sales Order Product OrderItemSummary
  • SalesOrderId
  • SalesOrderProduct
  • SalesOrderProductType
Product Category Product ProductCategoryProduct
  • ProductId
  • ProductCategoryId
LocationGroup N/A
  • ID
  • LocationGroupName
LocationGroupAssingment N/A
  • ID
  • LocationId
  • LocationGroupId
ProductCatalog N/A
  • ID
  • Name
1. From Setup in the Quick Find box, search for Order Management, then find and select **Setup** under the Order Management feature settings. 2. Under Data 360 for Order Management, select a data space as your data source. Select the data space that contains the necessary data streams to create calculated insights. After you turn on the connection, Data 360 generates calculated insights in the background. 3. Activate the connection. To select a different dataspace after enabling the connection, first turn off the connection, then select a new data space. After you activate the connection, calculated insights generate based on historical order data, which is automatically updated every 24 hours. The first calculated insight populates on your analytics dashboard at 12:00 AM UTC. 4. (Optional) To run your calculated insights immediately, publish it in Data Cloud. 1. From the App Launcher, enter Data Cloud, then select **Calculated Insights**. 2. Select the Order Management Analytics calculated insight. 3. From the dropdown menu, click Publish Now. 5. Add analytics picklist values to the GoalDefinition object. This step makes sure that Order Management insights get stored and generated correctly. 1. From Setup, go to the Object Manager. 2. Find and select the GoalDefinition object. 3. From Field & Relationships, select **Category**, and then click **New** under Category Picklist Values. 4. Enter OMAnalytics\_OrgGoal, and then click **Save**. 5. From Field & Relationships, select **Usage Type**, and then click **New** under Usage Type Picklist Values. 6. Enter GnR as a Usage Type Picklist Value, and then click **Save**. 6. (Optional) Add the Analytics tab shortcut to the navigation bar. 1. From Order Management, expand the app navigation dropdown, and click **Edit**. 2. Click **Add More Items**. 3. Select **Analytics**, and then click **Add Nav Item**. 4. Save your changes. # Enable Order Management for B2C Commerce When you’re ready to send order data from B2C Commerce to Order Management, use Business Manager to enable the integration. 1. Log in to Business Manager. 2. Select your site. 3. Navigate to **Merchant Tools** | **Site Preferences** | **Order**. 4. In the Order Management Settings section, set **Include in Order Management** to **Yes**. 5. Click **Apply**. Repeat these steps for each instance. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Enable Partial SKU Search in Your B2B Store Reduce "no results found" errors by enabling buyers to locate products using incomplete or unformatted SKUs. For example, buyers can search for a product with SKU "SKU:123-57-ABC" by entering "ABC", "57-AB", "1235", or "123-5". The search query matches the terms buyers enter to parts of the SKU, ignoring hyphens, underscores, spaces, periods, or slashes. ### Required Editions
View supported editions.
If partial SKU search is enabled, buyers can find products without typing the whole SKU. Buyers see results after entering three characters, and the system can match up to 12 characters. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Search**. 3. Click the **Additional Settings** tab 4. Under the Search section, enable **Partial SKU Search**. To ensure accurate searches, store SKU values in either the Product Code or Product SKU fields in the Product Object. See [Product Fields](https://help.salesforce.com/s/articleView?id=commerce.om_product_fields.htm&language=en_US) . 5. Save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note When you use semantic search, sort by Best Match to return the expected results. See [Add a Sort Rule](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_rule_add.htm&language=en_US&type=5) and [Enable Semantic Search for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_enable_semantic_search.htm&language=en_US). Run a full index update. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&language=en_US) # Enable Payment Methods Sharing in B2B Stores Give B2B buyers more control and flexibility with their payment methods by enabling payment methods sharing in B2B stores. By default, payment methods are linked to individual contacts and remain private. However, when you enable shared payments, buyers can share saved payment methods with other contacts within the same account. ### Required Editions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_note.png) Note If your org doesn't use Revenue Cloud, contact your Salesforce account executive to enable this feature.
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&type=5&language=en_US) 1. In the navigation sidebar, from the Store dropdown menu, select a B2B store. 2. Select **Settings** | **Checkout**. 3. Under Payments, enable **Let buyers share saved payment methods to their account**. ![Enable sharing SPM in B2B store.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_B2B_store_shared_SPM.png) On the store’s Saved Payment Methods page, buyers can choose to share their saved payment methods with others in the same account. They can also view the payment methods shared with them. ![Buyer SPM page with shared payment methods.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_buyer_SPM_page.png) #### See Also - [Let Customers Save and Manage Their Payment Methods](https://help.salesforce.com/s/articleView?id=commerce.payments_saved_payment_methods.htm&language=en_US) # Enable Person Accounts for Commerce Person accounts are required for D2C stores, which use them to represent shoppers who visit the store and purchase products. Person accounts are optional for B2B stores, which typically use business accounts that include multiple buyers. You can either set up person accounts through the automated process from the Commerce Setup Assistant setup page or manually. This topic describes the steps to use to enable person accounts manually, without using Commerce Setup Assistant. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) If you’re configuring your Salesforce org by using Commerce Setup Assistant for the first time or reconfiguring, setting up person accounts is a simple and automated task. Here's a quick look at what is the difference between manual and automatic set up of person accounts. ![Person Accounts Manual Vs Automatic Set Up](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_personaccounts.png) In some cases, when you add D2C Commerce to an existing B2B and Salesforce Order Management implementation, Person Accounts is already enabled. If so, skip these steps. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important After Person Accounts is enabled, it can’t be disabled. We recommend that you create a sandbox to preview how Person Accounts affect your Salesforce org. 1. Create the Business Account record type. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Object Manager, and then select **Account**. 3. Click **Record Types**. 4. Click **New**. 5. For Record Type Label, enter a name (for example, Business Account). You don’t have to use Business Account as the name. However, keep in mind that this record type is used for businesses, not shoppers. After you create a Business Account, you can associate it with multiple contacts (individual employees working for the business). 6. Click **Next**. 7. Select a page layout, and click **Save**. 2. Enable Person Accounts. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Person Accounts and then select **Person Accounts**. 3. Go through the steps listed on the Setup page. 4. Turn on Person Accounts. 3. Verify that Person Accounts are enabled. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Object Manager, and then select **Person Account**. 3. Click **Record Types**. 4. Verify that the Person Account record type is listed. ![Person Account page showing person account record type.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/person_acct_verify.png) If you don’t see the Person Account record type, contact Salesforce Support. 4. Configure the System Administrator profile. The System Administrator profile requires access to the Business Account record type and the Person Account record type. 1. From Setup, in the Quick Find box, enter Profiles, and then select **Profiles**. 2. Click **System Administrator**. 3. Scroll down to Record Type Settings, and read the text next to Accounts. 4. Click **Edit**. 5. Make sure that Business Account and Person Account are in the Selected Record Types list on the right. 6. Under Default Record Type, select **Person Account** as the default. ![Record types for system admin.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/person_account_sys_admin.png) 7. Click **Save**. 5. To identify and match duplicate person accounts, activate the [standard person account matching](https://help.salesforce.com/s/articleView?id=sales.matching_rules_standard_person_account_rule.htm&type=5&language=en_US) and [duplicate rules](https://help.salesforce.com/s/articleView?id=sales.duplicate_rules_standard_person_account_rule.htm&type=5&language=en_US). If you’re using Commerce Setup Assistant to enable person accounts, the standard person account matching and duplicate rules are automatically activated. #### See Also - [Person Accounts](https://help.salesforce.com/s/articleView?id=sales.account_person.htm&type=5&language=en_US) # Enable Product Cards on Search and Category Pages in a B2B Commerce Store The Results Grid component and the Product Card component enable product cards to display on the product list page. If you’re creating a store after the Summer ‘24 release, the Results Grid component is configured by default. For stores created before Summer ‘24, you must use Experience Builder to add the component and configure it. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, open the search page. 4. Replace the Results component with the Results Grid component. 1. On the main page canvas, select the Results component, and click the delete icon. 2. Confirm that you want to delete the Results component. 3. From the Components panel, drag the Results Grid component into the page’s Results section. When you drag a component over a content or theme layout region, a label appears to identify the region. Components in a theme layout region have the label “Shared” added to the name because they’re shared everywhere that the theme layout region is used. Components in a content layout region are specific to the page. 5. Edit the Results Grid component properties. 1. Go to the component’s Settings tab. 2. For Data Source, select **Nested Expression**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Custom expressions aren't supported inside Nested Expressions. 3. For Expression, select **Product Cards**. 6. Add the Product Card component to the Results Grid component, and edit the Product Card component properties. The Product Card component enables products to show on the product list page. 1. From the Components panel, drag the Product Card component into the sfdcRepeaterItem section of the Results Grid component. 2. Go to the component’s Settings tab. 3. For Data Binding, make sure that {!Item} is entered. You must edit the Results Grid component properties again. 4. (Optional) Under **Product Information Settings**, select an image hover action. On product listing pages, such as search results or the cart, this setting controls what happens when a shopper hovers over a product image. If you choose Image Rollover, make sure each product has a defined hover image. 5. (Optional) For Quick View, select **Show quick view button** to display product details if a shopper hovers over a product card.. 7. Make the same changes for the Category page. 1. Edit the Results Grid component properties. 2. Go to the component’s Settings tab. 3. For Expression Prefix, ensure that Item is entered. If you change the Data Binding in the Product Card component, you must also update the Expression Prefix in the Results Grid component to match. #### See Also - [Website Design for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_template.htm&release=264.0.0&type=5 "Use the Website Design workspace to add basic design elements to your store without leaving the Commerce app. For example, add your logo and set fonts, colors, and button styles. For more advanced design changes, such as configuring store components, pages, or navigation, you can move out of the Commerce app to Experience Builder.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") - [Format the Display of Product Cards on Search Pages in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_how_product_cards_are_displayed.htm&release=264.0.0&type=5 "In Experience Builder, you can change the number of product card columns and the spacing between cards on the product list page. You can also configure your search results or product listing page to show products spanning multiple pages by either page numbers or the Load More button.") # Enable Purchase Quantity Rules for a B2B Store To make purchase quantity rules available for your store’s products, add the Quantity Rule related list to the Product object’s page layout. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, then select Setup. 2. Select Object Manager, and in the Quick Find box, find and select **Product**. 3. From the navigation sidebar, select **Page Layouts**, and then select **Commerce Product Layout**. 4. From the Commerce Product Layout menu, select **Related Lists**, and drag the **Quantity Rules** related list to the page layout. 5. Save your changes. After you enable purchase quantity rules, [create and assign](https://help.salesforce.com/s/articleView?id=commerce.comm_products_qr_create_assign.htm&release=264.0.0&type=5 "You can define the minimum and maximum amounts of a product that a customer can buy and the number of products to add with each increase. You can assign a quantity rule to simple products and product variations. Because parent products aren’t sold, they don’t need quantity rules.") them to simple products and product variations. # Enable Qualification Rules in Your B2B Commerce Store Enable qualification rules from the Store settings in your B2B Commerce store. When you enable qualification rules, your store no longer uses entitlement policies to determine which product and product categories are visible to buyer groups. ### Required Editions
View supported editions.
1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**. 3. Click the **Buyer Access** tab. 4. Enable qualification rules. ![Screenshot showing qualification rules enabled](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_qualificationrules.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note When you enable qualification rules, all products and product categories are displayed to all buyers unless you have configured qualification or disqualification rules. If a qualification or disqualification rule exists for a product or a product category, then the product or product category's visibility is determined by the rules. See [Qualification Rules in Your B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_qualificationrules.htm&language=en_US). After you enable qualification rules for your store, the following are deployed to your store: - Context definition: CommerceProductDiscoveryContext - Qualification procedure: Commerce Default Qualification Rule Procedure - Decision tables: - Commerce Product Qualification Decision Table - Commerce Category Qualification Decision Table - Commerce Product Disqualification Decision Table - Commerce Category Disqualification Decision Table - Procedure Plan: Default PQ Procedure Plan Definition ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Qualification rules can take up to an hour to reflect for guest users in your store. #### See Also - [Manage Qualification Rules for Products in Salesforce Revenue Cloud](https://help.salesforce.com/s/articleView?id=ind.product_catalog_qualification_rules.htm&language=en_US) - [Manage Qualification Rules for Products in Salesforce Revenue Cloud](https://help.salesforce.com/s/articleView?id=commerce.comm_example_qualificationrules.htm&language=en_US) # Enable Read Only Account Manager Access The Read Only Account Administrator role is now available in Account Manager. The role provides users read-only access to view details about their organization, API clients, and users. The role doesn’t include permissions to make updates. The new role is useful for auditors who want to confirm compliance with their company policies. High-privilege roles such as Account Administrator or API Administrator override the new role. See Also: - [Auto Disable Inactive Users](https://help.salesforce.com/s/articleView?id=commerce.account_manager_rn_auto_disable_inactive_users_release.htm&type=5&language=en_US) # Enable Salesforce Payments for Commerce and Pay Now Instead of using a third-party provider, use Salesforce Payments, the native service you can use to accept payments during checkout. With Salesforce Payments, you can offer customers a variety of payment options. Payments is available for B2B, D2C, and Pay Now stores. After you enable Payments, you can't disable it. ### Required Editions
View supported editions.
User Permissions Needed
To enable Salesforce Payments: Customize Application
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_tip.png) Tip If you’re setting up a D2C store for the first time, bypass this process and instead let the Commerce Setup Assistant enable and configure Payments for your org. For more information, see [Video: Choose Your Checkout Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_container.htm&type=5&language=en_US) and [Set Up a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&type=5&language=en_US). Before you can enable Payments manually, first enable Digital Experiences and set up a dedicated Experience Cloud site for Payments. 1. From Setup, in the Quick Find box, enter Payments. 2. In the left navigation, select **Payments**. 3. Verify that Digital Experiences is enabled and that the Experience site is active. When the prerequisite tasks are complete, the Enable button becomes active, and the Pay Now section is available. 4. Click **Enable**. After you enable Payments, you can’t disable it. Here’s what the Payments Setup page looks like when Payments is enabled. In the App Launcher, verify that the Payments app is available. ![Salesforce Payments enabled in setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_fully_enabled.png) #### See Also - [Salesforce Payments Setup](https://help.salesforce.com/s/articleView?id=commerce.payments_setup_intro.htm&type=5&language=en_US) - [Set Up a Channel for Payment Data](https://help.salesforce.com/s/articleView?id=commerce.payments_data_channel_setup.htm&type=5&language=en_US) - [Prepare Your Org for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&language=en_US) - [Salesforce Pay Now](https://help.salesforce.com/s/articleView?id=commerce.pay_now_intro_prereqs.htm&type=5&language=en_US) # Enable Salesforce Payments Manually To use Salesforce Payments in B2B and D2C Commerce stores for financial transactions, first set up an Experience Cloud site as a data channel between the payment provider and Payments. Then, enable Payments for your org and assign permissions to users. Finally, follow a guided setup to create a merchant account and payment method set, which is a group of payment methods that you accept from customers. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_tip.png) Tip If you’re setting up Payments for a D2C store for the first time, bypass the manual setup tasks. Instead, let the Commerce Setup Assistant enable and configure Payments, and let Salesforce Checkout help you create a merchant account. For more information, see [Video: Choose Your Checkout Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_checkout_container.htm&type=5&language=en_US) and [Set Up a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&type=5&language=en_US). - **[Set Up a Channel Manually for Payment Data](https://help.salesforce.com/s/articleView?id=commerce.payments_data_channel_setup.htm&release=264.0.0&type=5)** Set up an Experience Cloud site as a channel for payment data to flow from the payment gateway to Salesforce Payments. This site is required to enable Salesforce Payments and it’s used only as a data pipeline. Your customers don’t access this site. - **[Enable Salesforce Payments for Commerce and Pay Now](https://help.salesforce.com/s/articleView?id=commerce.payments_enable_in_setup.htm&release=264.0.0&type=5)** Instead of using a third-party provider, use Salesforce Payments, the native service you can use to accept payments during checkout. With Salesforce Payments, you can offer customers a variety of payment options. Payments is available for B2B, D2C, and Pay Now stores. After you enable Payments, you can't disable it. - **[Assign Admin Permissions for Salesforce Payments](https://help.salesforce.com/s/articleView?id=commerce.payments_assign_permissions.htm&release=264.0.0&type=5)** At least one individual in your org must have admin permissions to manage payment settings and enable features. # Enable Salesforce Payments with the Commerce Setup Assistant Use the Commerce Setup Assistant to enable Salesforce Payments in B2B and D2C Commerce stores and to guide you through store creation. ### Required Editions ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_important.png) Important These steps apply to the refreshed Commerce app introduced in Summer ’24. If you’re using the previous app, now called the Commerce Storefront Console, see [B2B and D2C Commerce Using the Commerce Storefront Console](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/commerce_storefront_console_help_summer24.pdf). To switch to the refreshed app, see [Enable the Refreshed Commerce App](https://help.salesforce.com/articleView?id=commerce.comm_refreshed_app.htm&type=5&language=en_US).
View supported editions.
Permission Sets Needed
To use the Commerce Setup Assistant:

Customize Application

OR

Commerce Admin

To configure Payments: Payments Administrator
Before you begin: - Setting up Payments requires a Salesforce Payments license or a Commerce and Payments license. Review license and feature information in [Salesforce Payments Licenses](https://help.salesforce.com/s/articleView?id=commerce.payments_license_options.htm&type=5&language=en_US). - If you’re using Salesforce Payments in a trial org, you can only create a Stripe account in test mode. To process live transactions, you must purchase a license. 1. At the top of the page, click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In the Quick Find box, find and select **Commerce Setup Assistant**. 3. Enable Payments. - If your org has only Salesforce Payments,‌ under Prepare Your Org for Salesforce Payments, click **Get Started**. - If your org has Payments and Commerce, under Salesforce Commerce Setup, click **Get Started**. The assistant configures the necessary settings. 4. For orgs with Payments and Commerce, select the Additional Setup tab, enable any other features that you want to use. 5. Create a B2B, D2C, or Pay Now store. For instructions, see [Set Up a Store for B2B or D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&language=en_US) or [Pay Now Setup](https://help.salesforce.com/s/articleView?id=commerce.pay_now_setup.htm&language=en_US). After the store is created, you’re directed to the store home page. From here, you complete other setup tasks, including Payments configuration for store checkout. 6. Go to the instructions for your store and checkout type. - [Configure Custom Checkout for a B2B or D2C Store](https://help.salesforce.com/s/articleView?id=commerce.comm_custom_checkout.htm&language=en_US) - [Payment Services for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_payment.htm&language=en_US) - [Pay Now Setup](https://help.salesforce.com/s/articleView?id=commerce.pay_now_setup.htm&language=en_US) #### See Also - [Prepare Your Org for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&language=en_US) - [Get Started with Salesforce Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_get_started.htm&language=en_US) - [Manual Capture for Payment Processing](https://help.salesforce.com/s/articleView?id=commerce.payments_manual_capture.htm&type=5&language=en_US) # Enable Self-Registration and OTP Authentication for Pay Now Stores Enable your buyers to self-register and securely authenticate one-time payments at checkout directly through the Pay Now store. This setup enables buyers to securely save their shipping addresses and payment methods directly to their profiles for future use. During subsequent visits, buyers can opt to log in via a unique one-time password (OTP) sent to their registered contact number rather than remembering a password. After authenticating, the system automatically retrieves their saved contact information and payment details to populate the checkout fields. Beginning Summer ‘26, this feature is available in Essentials, Pro Suite, Professional, Enterprise, Unlimited, and Developer editions for orgs with Pay Now Basic or Pay Now Prime. ## Enable Self-Registration and One-Time Payment Authentication For Pay Now Stores Created Starting in Summer ‘26 For Pay Now stores created in Summer ‘26 and after, follow these steps to enable self-registration and one-time authentication for your buyers. Buyers can then opt in to save their payment information and other contact details. Before you enable self-registration, verify that person accounts are enabled. If not enabled, enable person accounts. See [**Enable Person Accounts for Commerce**](https://help.salesforce.com/s/articleView?id=commerce.commerce_enable_person_accounts.htm&language=en_US). 1. From your Pay Now store’s home page, click **Store**, and then click **Buyer Access**. 2. Under Self-Registration, assign the default buyer groups and save your changes. 3. Enable **Self-Registration**. ![Enable Self-Registration for Pay Now Stores](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/paynow_selfreg_payments.png) ## Enable Self-Registration and OTP Authentication For Pay Now Stores Created Before Summer ‘26 You can enable self-registration and one-time password authentication for your existing Pay Now stores created before Summer ‘26. Buyers can store sensitive payment and contact information within their profiles. During checkout, the system provides an option to authenticate via a one-time password sent directly to the buyer's device. Upon successful login, saved shipping and payment details are applied immediately to the order. To set up Pay Now self-registration, create the payNowShopper Profile and the PayNow\_Shopper permission set group, which contains the authenticated payer permission. Then, enable Person Accounts and Business Account record types before linking these configurations to your store’s buyer access settings and assigned buyer group. 1. Clone the External Apps Login User profile and create the payNowShopper Profile. 1. Click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Profiles, and then select **Profiles**. 3. Next to External Apps Login User, select **Clone**. 4. For Profile Name, enter PayNowShopper Profile. 5. You can choose another name, but keep in mind that this profile is used for your shoppers. 6. Save your changes. 2. Create the PayNow\_Shopper permission set group. 1. Click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Permission Set Groups, and then select **Permission Set Groups**. 3. Click **New Permission Set Group**. 4. For Label, enter Shopper PSG. You can choose another name, but keep in mind that this permission set group is used for your shoppers. 5. Click **Save**. 6. On the Permission Set Groups page, in the Permission Sets section, click **Permissions Sets in Group**. 7. Select the **Authenticated Payer** permission set, and click **Add**. 8. Save your changes. 3. Create the Business Account record type. 1. Click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Object Manager, and then select **Account**. 3. Click **Record Types**. 4. Click **New**. 5. For Record Type Label, enter a name (for example, Business Account). You don’t have to use Business Account as the name. However, keep in mind that this record type is used for businesses, not shoppers. After you create a Business Account, you can associate it with multiple contacts (individual employees working for the business). 6. Click **Next**. 7. Select a page layout, and click **Save**. 4. Enable Person Accounts for Pay Now. 1. Click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Person Accounts and then select **Person Accounts**. 3. Complete the steps listed on the Setup page. 4. Turn on Person Accounts. 5. Verify that Person Accounts are enabled. 1. Click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Object Manager, and then select **Person Account**. 3. Click **Record Types**. 4. Verify that the Person Account record type is listed. If you don’t see the Person Account record type, contact Salesforce Support. 6. Follow these steps if your existing Pay Now store doesn’t have a buyer group assigned to it. 1. In the App launcher, find and select **Buyer Groups**. 2. Click **New**. 3. Enter the name and description of your buyer group. 4. Select the role as **Account Based**. 5. Save your changes. 6. From the newly created buyer group, click the **Related** tab. 7. Under Stores, click **Assign** and assign the store to the buyer group. 7. Enable Self-Registration. 1. From your Pay Now store’s home page, click **Settings** | **Store**, and then click **Buyer Access**. 2. In the Self-Registration section, for the Profile, Account Record Types, Permission Set Group, and default Buyer Groups, select the values that you created. 3. Save your changes. 4. Enable **Self-Registration**. # Enable Semantic Search for Commerce Semantic search improves your search results by matching and returning items that are semantically related to a query. Semantic search requires a Content Security Policy (CSP) trusted site for the Commerce Einstein domain. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. Make sure that your store uses the default sorting for search results. 2. Select **Settings** | **Store**, and then click **Commerce Einstein**. 3. Turn on **Commerce Einstein** and **Semantic Search**. 4. After you turn on semantic search, update your search index. #### See Also - [Add a Content Security Policy (CSP) Trusted Site for the Commerce Einstein Domain](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_csp_trusted_site_add.htm&release=264.0.0&type=5 "Before you turn on storefront activity tracking and semantic search, add a trusted URL for the Commerce Einstein domain.") - [Enable Commerce Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_deploy.htm&release=264.0.0&type=5 "Commerce Einstein features personalize shopper experiences, increase merchandiser productivity, and improve conversion. Enable Commerce Einstein so that merchandisers can turn on storefront activity tracking, turn on semantic search, and configure Einstein recommendations. Commerce Einstein deployment can take up to 24 hours to complete.") - [AI-Powered Search for Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_ai_search.htm&release=264.0.0&type=5 "Improve store search experiences with Einstein semantic search in D2C store. Einstein semantic search reduces the occurrence of “no results found” pages, lowers bounce rates by providing a smoother shopping experience, and improves conversion rates. Einstein semantic search uses natural language processing to interpret queries and matches the information in the Product Name, Product Description, and Category Name fields with the terms entered in the query.") - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") # Enable Shipping Fee Refunds for Point of Sale Turn on shipping fee refunds so associates can refund or discount a shipment's shipping fee separately. Point of Sale prevents refunding or discounting the same shipment twice. - Modern POS App Build: 12.4.1 or later - Platform Support: iPhone & iPad - Offline Support: No 1. Turn on shipping fee refunds. 1. In CMS, go to **Store Management** | **Store Settings** | **Checkout**, and expand **Shipping**. 2. Turn on **Allow Shipping Fee Refund**, and save your changes. 2. Configure reason codes for shipping fee refunds. 1. In CMS, go to **Store Management** | **Reason Codes**, and select **Create**. 2. For the **Reason Code Type**, select **Shipping Fee Return** for return and exchange reasons, or **Shipping Fee Override** for edit order reasons, enter a **Reason Code**, and save. For more information, see [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments."). ## Return Flow 1. Select the products to return, then tap **Return**. ![The Eligible Shipping Fee for Refund window listing shipments available for a shipping refund during a return.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_returns_shipping_fee_refunds.png) The **Eligible Shipping Fee for Refund** window lists each shipment with a selected product, unless Point of Sale already refunded that shipment's shipping fee. 2. Select the shipments to refund shipping for, select a reason for each, then tap **Continue**. 3. Select the refund tender, and confirm the return. ## Exchange Flow 1. Select the product to exchange, tap **Return**, select the eligible shipment, and select a reason. 2. Add the replacement product to the cart. Changing the shipping method for the new product updates the shipping refund amount. 3. Check out to complete the exchange. ## Edit Order Flow 1. From Order History, select the order, then tap **Modify Order**. 2. Tap the pencil icon next to a shipment's shipping fee, enter the new amount, and select a reason. Enter an amount greater than zero and less than the current shipping fee. To remove an override, tap the pencil icon again and select **Remove Override**. ![The shipment fee override entry showing the new amount and reason for a shipment.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_returns_shipping_fee_override.png) 3. Check out to complete the order edit. Point of Sale refunds the overridden amount to the original tender. # Enable Shipping to Multiple Addresses for Custom Checkout Let customers ship items in one order to multiple addresses in a B2B store or a Pay Now site. At checkout, customers can split a single cart into multiple shipments. You can’t use split shipping with managed checkout or with digital or subscription products. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Enable split shipping. 1. At the top of the page, click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Developer Console**. 2. From Debug, click **Open Execute Anonymous Window**. An Apex editor window opens. 3. Copy this code snippet into the Apex editor window. ```javascript ID storeId = '0ZExx0000000000000'; // !! REPLACE WITH YOUR STORE ID !! WebStore store = [ select id, OptionsSplitShipmentEnabled FROM WebStore WHERE id = :storeId LIMIT 1]; store.OptionsSplitShipmentEnabled = true; update store; ``` 4. Replace the store ID with your 18-character ID. You can find your ID in your store’s home page URL. It begins with “webStoreId=”. ![Webstore ID highlighted in a store URL.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_webstore_ID.png) 5. Execute the code, and return to your store’s home page. 2. If your store was created before the Spring ’24 release, update your store’s shipping integration Apex class. Before implementing this change, consult with your developer so that you don’t overwrite custom modifications made to this class. 1. At the top of the page, click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In the Quick Find box, enter Apex Classes, and then select **Apex Classes**. 3. Find the B2CDeliverySample class, and click **Edit**. 4. From GitHub, copy the code from the B2CDeliverySample.cls code block. [https://github.com/forcedotcom/commerce-on-lightning/blob/develop/examples/b2c/checkout/integrations/classes/B2CDeliverySample.cls](https://github.com/forcedotcom/commerce-on-lightning/blob/develop/examples/b2c/checkout/integrations/classes/B2CDeliverySample.cls) 5. Paste the code into your org’s B2CDeliverySample Apex Class window. 6. Save your changes. 3. If you have an Aura store created before the Spring ’24 release and the Cart Calculate API is disabled, update your store’s price check integration to use standard pricing. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Settings** | **Store**. 3. To choose a custom pricing provider, on the Price Check tab, click **Link Integration** and select **Standard Pricing**. To unlink an existing provider, click the ![Dropdown arrow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_edit_action_arrow.png) and select **Unlink**. 4. Save your changes. To increase the delivery group limit for your Salesforce org, contact your Salesforce administrator. #### See Also - [Customize Split Shipping for Commerce Stores](https://help.salesforce.com/s/articleView?id=commerce.customize_split_shipping_for_commerce_stores.htm&release=264.0.0&type=5 "After you enable shipping to multiple addresses, use Experience Builder to customize how you collect split shipment details from your customers on the Split Shipment page of a B2B store. You can customize split shipping only if your store uses custom checkout. You can’t use split shipping with managed checkout or with digital or subscription products.") - [Design Your Checkout Page in a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_edit_checkout_sections_for_a_b2c_store.htm&release=264.0.0&type=5 "Use a preset layout and customize its components, or design a layout using sections and components to guide customers through the checkout process in a B2B store. You can customize checkout only if your store uses custom checkout. If your store uses managed checkout, you can’t customize the Checkout page.") - [Define Apex Classes](https://help.salesforce.com/s/articleView?id=platform.code_define_package.htm&type=5&language=en_US) # Enable Slack Notifications for Order Management Analytics Act on insights and recommendations directly from Slack. The Salesforce Order Management app delivers at-risk location notifications to your designated Slack channel. 1. Set up a Slack channel. 1. In Slack, create a channel to receive the notifications. See [Create Slack Channel](https://slack.com/intl/en-in/help/articles/201402297-Create-a-channel). 1. Add the Salesforce app to the Slack channel. See [Connect Salesforce and Slack](https://slack.com/intl/en-in/help/articles/30754346665747-Connect-Salesforce-and-Slack). 2. In Salesforce, enable Slack notifications. 1. From **Setup**, in the Quick Find box, enter **Feature Settings** and select **Order Management**. 1. Select **Setup** and enter your **Slack Channel ID**. ![Enable Slack Notifications](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_insights_slack_integration.png) # Enable State and Country Picklists for B2B Commerce Stores Stores based on the LWR (Lighting Web Runtime) template accept only ISO codes for country and state or province. To minimize user entry errors, we recommend enabling state and country picklists, so that users select values from a list instead of typing them in. The picklists ensure that ISO codes are used consistently throughout the entire organization. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) To ensure the shipping and billing address are displayed for the user profile, set up a state and country picklist for every supported shipping state. 1. From Setup, in the Quick Find box, enter and select **State and Country/Territory Picklists**. 2. Click **Enable Picklists for Address Fields** to turn on the picklists. 3. Click **Configure States, Countries, and Territories**. 4. Click **Edit** for the country where you want to add the state. 5. Click **New State**. 6. Enter the state name and the state code, and select **Active** and **Visible**. 7. Save your changes. #### See Also - [Enable and Disable State and Country/Territory Picklists](https://help.salesforce.com/s/articleView?id=xcloud.admin_state_country_picklist_enable.htm&type=5&language=en_US) # Enable Store Associate Sales Attribution Give store associates credit for assisting customers with their purchases. By default, products added to the cart are attributed to the logged-in store associate, but you can change the default attribution to a different associate. You can also attribute individual products to specific store associates. This ensures accurate sales tracking and performance measurement. - This feature does not require a 3rd party integration. - This feature does require a new build - This feature does require a change in the CMS - This feature does require a change in Point of Sale backend One or more store associates can help a customer add items to the cart to complete an order. There are two kinds of attributions: - Default Attribution: Any product added to the cart will be attributed to the logged-in store associate by default. You can change the default attribution to a different associate and all the products added to the cart after this will be attributed to the new store associate. - Product Level Attribution: Any individual product in the cart can be attributed to one particular store associate. Other products added will continue to be attributed to the default store associate already set. 1. In your app config, go to **Modules** | **POS** | **Sales Attributions.**. 2. Toggle the flag on, Enable Sales Attributions.![The CMS shows the enable sales attributions option.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_track_sales_attribution_associate_setting.png) ## POS Behavior The app will show “Credit 2036”. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note 2036 is the store associate chosen for default attribution) on the top left corner where we used to see “Logged In 2036” earlier. 2036 is the store associate currently logged in. The “Logged in 2036” message will continue to be shown on all the other screens. Each product in the cart screen will show the store associate attributed with that product. This will be the default attributed store associate, but can be individually changed to a different associate if required. ![The POS app shows attribution of items to credit 2036.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_track_sales_attribution_associate_pas_1.png) Clicking on the top left default attribution or the product level attribution will bring up an interstitial showing the current associate attributed and a list of other store associates that you wish to change the attribution to. The interstitial also shows a toggle that decides if you want the attributions to be turned on at all. ![The POS app shows the dialog for selecting associates to credit.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_track_sales_attribution_associate_pos_2.png) To change the associate, click on the associate you wish and hit the select button. - If the interstitial was opened by clicking on the default attribution on the top left, this will change the associate for default attribution of the products added after this action. - If the interstitial was opened by clicking on an individual product’s attribution, just the store associate attributed for that product will change. You can turn off attribution entirely by toggling off the switch you see beside, “Did any associate help the customer today”. ![The POS app shows a sale without attribution.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_track_sales_attribution_associate_pos_3.png) The top left Credit Section will now show “Credit None” indicating that there are no attributions for this sale. Attributions on each product cell in the cart will be removed. ![The POS app shows the store associate credit interstitial with the option did any associate help the customer today turned off.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_track_sales_attribution_associate_pos_4.png) You can turn the attributions on again by clicking on “Credit None” and turning on the switch in the interstitial. The previous attributions will be restored. # Enable Storefront Activity Tracking Storefront activity tracking captures browser-based, real-time buyer or shopper activities in your store, unless settings are explicitly changed by the buyer or shopper. Storefront activity tracking requires a Content Security Policy (CSP) trusted site for the Commerce Einstein domain. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**, and then click **Commerce Einstein**. 3. Turn on **Commerce Einstein** and **Storefront Activity Tracking**. #### See Also - [Add a Content Security Policy (CSP) Trusted Site for the Commerce Einstein Domain](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_csp_trusted_site_add.htm&release=264.0.0&type=5 "Before you turn on storefront activity tracking and semantic search, add a trusted URL for the Commerce Einstein domain.") - [Enable Commerce Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_deploy.htm&release=264.0.0&type=5 "Commerce Einstein features personalize shopper experiences, increase merchandiser productivity, and improve conversion. Enable Commerce Einstein so that merchandisers can turn on storefront activity tracking, turn on semantic search, and configure Einstein recommendations. Commerce Einstein deployment can take up to 24 hours to complete.") - [Tracked Data](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_data.htm&release=264.0.0&type=5 "Commerce Einstein uses cookies and session storage objects to store and track browser activities. It uses this information to tailor customer experiences. Some cookies are essential, and some are functional. Essential cookies are necessary for a site to work correctly and can’t be disabled. Commerce Einstein uses functional cookies and tracked API activities to personalize shopper data.") # Enable Temporary Baskets for Immediate Order Requests You can now create temporary baskets for immediate order requests in B2C Commerce. For example, a shopper uses a Buy Now option to purchase an item. The temporary basket, which has a limited lifetime of 15 minutes, is populated with all the data required to ready the basket for checkout without affecting the regular shopper basket. How: Use the basket script API to enable temporary baskets. The supported basket functions include pricing, promotions, coupons, inventory, shipping methods, order creation, and reopening an order. The temporary basket differs from a shopper basket in the following ways: - Basket lifetime is limited compared to shopper baskets A temporary lifetime of 15 minutes is used for basket retention - Limit is separate from shopper and agent basket limits. The shopper can have up to 4 temporary baskets - Available to all shoppers including guests (unlike agent baskets) # Enable Temporary Baskets for Immediate Order Requests in OCAPI OCAPI 23.4 includes support for temporary baskets. Temporary baskets allow for immediate order requests in B2C Commerce. For example, a shopper uses a Buy Now option to purchase an item. The temporary basket, which has a limited lifetime of 15 minutes, is populated with all the data required to ready the basket for checkout without affecting the regular shopper basket. **How:** Pass a query parameter `temporary` into `POST baskets` to create a temporary basket. With OCAPI 24.1 the basket document attribute is `temporary_baskets` indicates a basket is temporary. The temporary basket differs from a shopper basket in the following ways: - Basket lifetime is limited compared to shopper baskets A temporary lifetime of 15 minutes is used for basket retention - Limit is separate from shopper and agent basket limits. The shopper can have up to 4 temporary baskets - Available to all shoppers including guests (unlike agent baskets) #### See Also - [Enable Temporary Baskets for Immediate Order Requests](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_enable_temporaty_basket.htm&type=5&language=en_US) # Enable the Enhanced Method for App Config Segmentation Enable Point of Sale App Config Segmentation to customize app configurations for different user groups, enhancing personalization and control. By toggling specific settings in the CMS, you can disable role-level or associate-level defaults and enable layout groups, ensuring a more tailored user experience. 1. In CMS, go to **Store Management** | **Store Settings** | **System**. 2. Expand Rollout. 3. Toggle on **Use App Config Segments** (useAppConfigSegments). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Enabling this flag will disable selection of a role-level or associate-level default app config. 4. Go to **Store Management** | **Store Settings** | **Personalization**. 5. Expand Advanced. 6. Toggle on **Enable Layout Groups** (layout.groups.enabled). # Enable the New Business Manager UI (Generally Available) The UI has a fresh design and is easier to use. The GA release includes improved tooltips, spacing, text box padding, and banner and home page alerts. It also adds favorites, store IDs, and catalog insights to the home page. You can switch back to the classic UI if something isn’t working as expected. **How:** To switch to the new UI, in Business Manager, select **PM Profile Settings** | **Preferences** | **Preferred UI Style**. Then select **Modern**. # Enable the Shopper Context API in Business Manager The Shopper Context feature toggle is now exposed in Business Manager. Use the toggle for each B2C Commerce instance you want to use the API. Why: Use the Shopper Context API to add personalization features for your shoppers, such as: - Sending a specific promotion based on the shopper’s store selection. - Giving early access to products if the shopper is at a specific location. You can use the Shopper Context API to track contextual information about a shopper, such as location, device type, and more. You can even set a date and time in the future to preview responses for upcoming site changes. How: To set the feature toggle for an instance, you are required to have the Account Manager, Business Manager Administrator role assigned to your Account Manager user profile. To set the toggle, in Business Manager select **Administration** | **Global Preferences** | **Feature Switches**, and check **Enable Shopper Context**. #### See Also - [Shopper Context API](https://developer.salesforce.com/docs/commerce/commerce-api/guide/shopper-context-api.html) # Enable the Traditional Method for App Config Segmentation Use these setting to enable the Traditional Method for Point of Sale App Config Segmentation. 1. In CMS, go to **Store Management** | **Store Settings** | **System**. 2. Expand **Rollout**. 3. Disable the flag, **Use App Config Segments** (useAppConfigSegments). # Enable Translation Workbench To assist with localizing B2B store information, enable the Translation Workbench and add the languages that you want to use in your stores. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Translation Workbench, and then select **Translation Language Settings**. 3. Click **Enable**. 4. Click **Add**. 5. From the Language dropdown, select the language and select **Active**. 6. Save your changes. Add as many languages as you need for your stores. #### See Also - [Configure Salesforce for Global Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_config_org_for_international.htm&release=264.0.0&type=5 "Make sure that your language, translation, and currency settings support B2B Commerce stores around the world.") - [Translation Workbench](https://help.salesforce.com/s/articleView?id=platform.workbench.htm&type=5&language=en_US) # Enabling Omni Settings in Point of Sale CMS Set up Omnichannel fulfillment options in CMS so that your store associates can fulfill orders from the Point of Sale (POS) app. - Modern POS App Build: 8.4.0 or later - Platform Support: iPad and iPhone - Offline Support: No Omni Settings in Point of Sale CMS control which fulfillment types are available to store associates, how orders are routed for fulfillment, and what customers see for fulfillment options in the POS app. #### See Also - [_Salesforce Help:_ Configure Omnichannel Capabilities](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_configure_omnichannel_capabilities.htm&release=264.0.0&type=5 "Efficiently manage orders with multiple fulfillment types per cart or a single fulfillment type with OmniChannel in Point of Sale CMS. Customize the product display page and configure shipping methods on the Point of Sale (POS) app.") ## Enabling Omnichannel Turn on OmniV2 to allow store associates to select and switch between fulfillment types in the POS app. 1. In CMS, go to **Store Management | Store Settings | Store Fulfillment**. 2. Under Omni Settings, select the pencil icon to open the configuration window. 3. Turn on **Enable omni fulfillment options V2**. 4. Customize the configuration by referring to [Omni Customization](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_enabling_omni_settings.htm&release=264.0.0&type=5 "Configure Product Display Page (PDP) layouts, mixed carts, and shipping methods after you turn on Omni settings."). 5. Save your changes. ## Configure Fulfillment Types Configure the fulfillment types, whether you support [Mixed Cart](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_multiple_fulfillment_types.htm&release=264.0.0&type=5 "Allows items in the cart to have multiple fulfillment types in a single order with Point of Sale's Omnichannel solution.") or [Single Fulfillment](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_single_fulfillment_type_per_cart.htm&release=264.0.0&type=5 "Set the default fulfillment type in Point of Sale CMS to make sure orders work if a merchant can't support different fulfillment types in one cart."). 1. In CMS, go to **Store Management | Store Settings | Store Fulfillment**. 2. Under **Omni Settings**, select the pencil icon to open the configuration window. 3. Under **Is Enabled**, select the fulfillment types to support in the POS app. 4. Under **Is Default**, select the default fulfillment type. If Mixed Cart is off, the default fulfillment type takes precedence. 5. Save the changes. ## Customize Display Text 1. In CMS, go to **Store Management | Store Settings | Store Fulfillment**. 2. Under **Omni Settings**, select the pencil icon to open the configuration window. 3. Under **Display Text**, enter a display value. Use the Language dropdown to configure display text in different languages. The app shows the text on the PDP, Cart, Order History, and paper receipts. 4. Save the changes. ## Set Fulfillment Location Configure where to fulfill Ship to Home and Pickup Later orders. 1. In CMS, go to **Store Management | Store Settings | Store Fulfillment**. 2. Under **Omni Settings**, select the pencil icon to open the configuration window. 3. Select the default fulfillment location for processing orders. - **Auto Route**: The system selects where to fulfill the item (warehouse or a store). Associates can’t select a different fulfillment location when they add items to a cart. - **Current Store**: The system fulfills items from the store where the associate logs in on the app. 4. Save the changes. ## Enable Delivery and Pickup Dates Let customers select a delivery or pickup date for Ship to Home, Ship to Home From Current Store, and Pickup Later orders. 1. In CMS, go to **Store Management | Store Settings | Store Fulfillment**. 2. Under **Omni Settings**, select the pencil icon to open the configuration window. 3. Select **Ask for delivery date**. 4. Save the changes. ## Enable Ship to Home From Current Store Allocate items and route them to Point of Sale’s fulfillment system for [BOFIS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bofis.htm&release=264.0.0&type=5 "Process Buy Online, Fulfill In Store (BOFIS) orders in the POS app. Store associates pack, ship, and manage orders fulfilled from the store.") order processing. When enabled, store associates can review and pack these orders in the POS app. 1. In CMS, go to **Store Management | Store Settings | Store Fulfillment**. 2. Under **Omni Settings**, select the pencil icon to open the configuration window. 3. Turn on **Ship to Home From Current Store**. 4. Save the changes. ## Restrict Fulfillment Switching Prevent store associates from switching fulfillment types after adding items to the cart. When this feature is enabled, associates must void the cart to select a different fulfillment type. 1. In CMS, go to **Store Management | Store Settings | Store Fulfillment**. 2. Under **Omni Settings**, select the pencil icon to open the configuration window. 3. Turn on **Limit Cross-Channel Fulfillment Switching**. 4. Save the changes. ## Apply Shipping Fees to Selected Fulfillment Types App build prerequisite: 12.4.1 or later. Choose which fulfillment types are eligible for shipping fees. **Ship to Home** and **Ship to Home From Current Store** are selected by default. You can also select **Pickup Later** to charge shipping fees for those orders. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This setting only controls shipping fee eligibility. Shipping method selection and delivery grouping are configured separately. See [Omnichannel: Configuring Shipping Methods on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_shipping_methods_on_pos_app.htm&release=264.0.0&type=5 "Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls."). 1. In CMS, go to **Store Management | Store Settings | Store Fulfillment**. 2. Under **Omni Settings**, select the pencil icon to open the configuration window. 3. Under **Apply Shipping Fees to Selected Fulfillment Types**, select the fulfillment types you want to charge shipping fees for. To charge shipping fees on Pickup Later orders, turn on both of these toggles: - **Enable Order Delivery Grouping**: Groups items by delivery group on the cart. - **Allow Multiple Shipments Per Cart/Order**: Allows multiple shipments per cart or order. 4. Save the changes. ## Omni Customization Configure Product Display Page (PDP) layouts, mixed carts, and shipping methods after you turn on Omni settings. ### Product Display Page (PDP) After the Omni settings have been enabled and configured, you will have to configure a PDP layout with the fulfillment type UI component. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_single_fulfillment_type_per_cart.htm&release=264.0.0&type=5 "Set the default fulfillment type in Point of Sale CMS to make sure orders work if a merchant can't support different fulfillment types in one cart."). ### Mixed Cart You can set items in the cart to have multiple fulfillment types in a single order (Ship to Home, Pickup Later, and so on). For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_multiple_fulfillment_types.htm&release=264.0.0&type=5 "Allows items in the cart to have multiple fulfillment types in a single order with Point of Sale's Omnichannel solution."). You can also configure fulfillment combination rules, allowing you to block certain Omnitype combinations in the POS cart. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_fulfillment_type_combination_rules.htm&release=264.0.0&type=5 "Configure fulfillment combination rules in Point of Sale CMS to prevent incompatible order types."). ### Single Fulfillment If you’d rather have a single fulfillment type in a single order but still have the option to select in the POS app, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_single_fulfillment_type_per_cart.htm&release=264.0.0&type=5 "Set the default fulfillment type in Point of Sale CMS to make sure orders work if a merchant can't support different fulfillment types in one cart."). ### External Shipping You can retrieve shipping methods by using an API. This feature is not supported if the multiple shipping method is enabled. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_shipping_methods_on_pos_app.htm&release=264.0.0&type=5 "Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls."). ### Shipping Methods You can set up available shipping methods within the CMS or through an API. You can also decide whether different shipping methods are allowed or not for a single order. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_shipping_methods_on_pos_app.htm&release=264.0.0&type=5 "Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls."). ### Obsolete Settings & Deep Links These settings and deep links are no longer supported or won't apply when Omni settings are enabled. Additionally, there are plans to deprecate them in the future. - **Deep Link > Store Associate > Set Transaction Order Type** - **Deep Link > Store Associate > Change Order Type** - **Modules > In-Store Fulfillment > Enable Store Pick Up** - **Modules > POS > Mixed Cart** - **Modules > POS > Default Order Type** - **Modules > POS > Default In-Store Fulfillment Type** - **Modules > POS > OnlineOrderFulfillmentModes** - **Modules > POS > HasDeliveryDateForOnlineOrder** - **Modules > POS > EnableFulfillmentTypeSwitch** - **Modules > POS > CartItemFulFillmentOptions** # End of Support for Wildcard Tenant Filter The Account Manager wildcard filter, realm\_\*, is no longer supported and is replaced with this set of filters: - `realm_prod` - `realm_stg` - `realm_dev` - `realm_sbx` This change ensures that users or API Clients are assigned access only to the instances they need. After implementation, tenant filter assignments are changed. User access isn’t impacted. Previously, Account Manager administrators used tenant filters to assign roles such as Business Manager User, Business Manager Administrator and the like. Roles were granted for selected instances only. Administrators selected the desired instance from the instance list in Account Manager. In some cases, a user or an API Client was assigned the wildcard tenant filter `realm_*`. # Endless Aisle 2.5.3 The B2C Commerce Endless Aisle 2.5.3 release. ## Release Highlights - In this release, we introduce Endless Aisle support for the Adyen framework library version 1.25.9. - **[Ayden Framework Upgrade](https://help.salesforce.com/s/articleView?id=commerce.ea_2_5_3_w7025587.htm&release=264.0.0&type=5)** The Adyen framework library has been upgraded to version 1.25.9. This upgrade resolves an issue related to boarding a device with iOS 13. # Endless Aisle 2.5.4 The B2C Commerce Endless Aisle 2.5.4 release. ## Release Highlights - Endless Aisle 2.5.4 is the final version of the reference app. No maintenance or support will be available for any version of the reference app after September 30, 2021. - **[Final Version of Endless Aisle and Module Code](https://help.salesforce.com/s/articleView?id=commerce.ea_2_5_4_final_version.htm&release=264.0.0&type=5)** Endless Aisle 2.5.4 is the final version of the reference app. No maintenance or support will be available for any version of the reference app after September 30, 2021. # Endless Aisle Release Notes Archive Release Notes for Salesforce B2C Commerce Endless Aisle releases. Check out the latest features and updates from B2C Commerce Endless Aisle! - **[Endless Aisle 2.5.3](https://help.salesforce.com/s/articleView?id=commerce.ea_rn_2_5_3_release.htm&release=264.0.0&type=5)** The B2C Commerce Endless Aisle 2.5.3 release. - **[Endless Aisle 2.5.4](https://help.salesforce.com/s/articleView?id=commerce.ea_rn_2_5_4_final_release.htm&release=264.0.0&type=5)** The B2C Commerce Endless Aisle 2.5.4 release. # Enforce `Login_On_Behalf` Permission The `Login_On_Behalf` permission is now required for agents to access a storefront on behalf of another user. Previously, agents had access without that permission. Why: This permission allows an application, such as a call center, to access storefront data, but restricts access to specific sites. For example, a call center agent with the `Login_On_Behalf` permission can log in to site ABC on behalf of any customer. How: To set the `Login_on_Behalf` functional permission, select **Business Manager** | **Administration** | **Organization** | **Roles & Permissions**. # Engagement Deep Links Explore a detailed list of Point of Sale engagement deep links, each with a clear description and supported context. Links include features for media, social interaction, and content management. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.
Deep Link Description Supported Context
360 Image

360-degree images are spherical images where the viewer has control of the viewing direction like a panorama. A deep link to a 360-image will enable a 360-image to play in a full-screen player direction like a panorama.

Supported Options:

  • Image URL: Display your logo that is used across your app at the top of the screen. This logo can be set by setting an image in Settings | UI | Home Logo URL.
  • Logo: Display your logo that is used across your app at the top of the screen. This logo can be set by setting an image in Settings | UI | Home Logo URL.
  • User Interaction: Drag/Tilt.
  • Help: Enable player navigation help overlays.
"Layouts, Hamburger Menu"
360 Video

360-degree videos, also known as immersive videos or spherical videos, are video recordings where a view in every direction is recorded at the same time. During playback, the viewer has control of the viewing direction like a panorama. A deep link to a 360-video will enable a 360-video to play in a full-screen player direction like a panorama.

Supported Options:

  • Video URL: Display your logo that is used across your app at the top of the screen. This logo can be set by setting an image in Settings | UI | Home Logo URL.
  • Logo: Display your logo that is used across your app at the top of the screen. This logo can be set by setting an image in Settings | UI | Home Logo URL.
  • User Interaction: Drag/Tilt.
  • Help: Enable player navigation help overlays.
"Layouts, Hamburger Menu"
Collections Displays the Collections screen "Layouts, Hamburger Menu, Notification, Tab"
Feed FM Specified FM radio station will begin to play when the page loads "Layouts, Hamburger Menu, Notification, Tab"
Prompt Prompts the user for permission "Layouts, Hamburger Menu"
Social Media Displays the Instagram browse screen "Layouts, Hamburger Menu, Notification, Tab"
Store Checkin Checks in to a store to earn points "Layouts, Hamburger Menu,"
# Enhance Business Manager Efficiency with the New User Interface The new Business Manager user interface (UI) is now the Business Manager default UI. The new UI provides a modern and efficient interface for administrators, merchandisers, and other Business Manager users. If needed, you can switch back to the classic UI by updating the UI preference. In Business Manager, select My Profile > Preferred UI style: Classic. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The Admin feature switch to prevent users from switching to the new UI is now removed. #### See Also - [Leverage the Left Hand Navigation in Business Manager](https://www.youtube.com/watch?v=7EF_yPHVxqU) - [Customize the Home Page in Business Manager](https://www.youtube.com/watch?v=s8RPePQTUBM) - [Business Manager Header](https://www.youtube.com/watch?v=gW9ngD16jBM) # Enhance eCDN Settings for Clearer Certificate Management The Business Manager eCDN Settings page is improved to clearly distinguish between hostnames with and without custom hostname certificates, reducing customer confusion and improving usability. **How:** In Business Manager, select **Administration** | **Global Preferences** | **Feature switches**. Then select the Granular Replication feature switch. **Why:** The update addresses the common issue of customers being unsure about the need to upload custom hostname certificates. By clearly indicating the status of each hostname, users can manage their eCDN settings more effectively and avoid unnecessary steps. **How:** Administrators and users can access the updated eCDN settings page in Business Manager. The new columns displays the status of each hostname and its certificate, making it easier to identify which hostnames require custom certificates. New Columns - Hostname Status: This column displays the status of the hostname. - Certificate Status: This column displays the status of the custom hostname certificate. Status Indicators - Active: The hostname will be marked as "Active" only if there is a custom hostname certificate uploaded and verified. - Other Statuses: The columns will reflect the appropriate status based on the presence and verification of the custom hostname certificate Production, Staging, and Development BM Configurable - New Status and Expires On columns show for proxy zones only. These columns show the certificate and hostname status for the current hostnames. - The Remove Zone button appears in production BM for legacy zones that have completed the legacy to proxy zone migration. In staging and development BM, the button is labeled Migration Completed. - A duplicate hostnames bug is resolved when a hostname is added to multiple Sites Aliases files. ![New Business Manager eCDN Settings page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/b2c_rn_ecde_settings_page.png) # Enhance Global Collaboration with Time Zone-Specific Scheduling Improve shared task coordination among your globally distributed teams by setting on-demand sandbox (ODS) schedulers to local time zones. This feature defaults to the user's local time zone upon login but provides flexibility to change and save this setting as needed. # Enhance Order Access Security with the Allow List Enable the Allowlist feature on the Limit Storefront Order Access setting if you aren’t yet limiting Storefront Order Access at all. This feature enhances security, ensuring that the customer ID of the current session is identical with the customer ID used for the creation of the order being accessed. **When:** Starting with the B2C Commerce 24.5 release, the allowlist is available to test your storefront order access settings in Production. During this phase, storefront order access by controllers or hooks that aren’t on the allowlist isn't blocked. Controllers and hooks that access orders but aren’t included on the allowlist are posted in the alert section of the Business Manager. **How:** In **Business Manager** | **Orders** | **Order Preferences**. Set the Limit Storefront Order Access dropdown to **Allowlist**. Enter the allowed storefront controllers as a comma-separated list. You can copy and paste them directly from the Business Manager alert. The alert highlights storefront order access after the feature is enabled. Beginning with the B2C Commerce 24.8 release, the allowlist is functional. Attempts to fetch order information are blocked from storefront access, if the customer ID of the current session isn’t identical to the customer ID used for the creation of the order. Controllers and hooks not listed on the allowlist are blocked from storefront order access. If you don't change the Limit Storefront Order Access setting to Allowlist, you won’t experience any change from this feature. #### See Also - [Limit Storefront Order Access](https://help.salesforce.com/s/articleView?id=cc.b2c_limit_storefront_order_access_settings.htm&language=en_US) # Enhance Origin Performance and Security with Advanced Protocols Boost your content delivery with the integration of Early Hints, HTTP/3, and HTTP/2 to Origin. These protocols reduce performance lag and enhance security, ensuring faster and safer data transmission. To optimize your service delivery, configure these settings using CDN-API or Business Manager. **How:** To use server idle time for preloading essential resources, enable Early Hints. This feature allows browsers to start loading parts of your web page sooner, speeding up overall load time and improving the user experience. HTTP/3 uses QUIC to reduce delays caused by packet loss, making it ideal for maintaining performance on unreliable networks. To speed up data transfers, enable HTTP/2, which is now implemented between eCDN and the Origin server. This protocol ensures high performance and reliability, especially in high-traffic scenarios. #### See Also - [Configure a Zone for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_configuring_a_zone.htm&type=5&language=en_US) # Enhance Product Descriptions with Einstein Generate product descriptions using Einstein Generative AI. Einstein uses your instructions to generate revised product descriptions for the selected product in your B2B or D2C store. Product descriptions support instructions in English only. You can generate descriptions in all languages in your B2B store. Then review the generated description and accept or reject the changes. You need the Einstein Generative AI license to use Einstein Generative AI. Any user can generate product descriptions with Einstein, but only the Salesforce admin can accept or reject recommendations. Contact your account executive for more information. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note This tool uses generative AI, which is known to include inaccurate or harmful responses. Before using externally, review the output for accuracy and safety. You assume responsibility for the output when making business decisions. 1. Turn on Einstein generative AI in Setup. 2. In the navigation sidebar, select a store from the **Store** dropdown. 3. Select **Merchandising** | **Products**, and then select a product. 4. To add the Einstein Generative AI Recommendation panel: 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Edit Page**. 2. Search for the Einstein Generative AI Recommendation component and drag it to the right side of the page. 3. Activate and save your changes. On the Product record page, the current product description is provided in the Current field of the Einstein Generative AI Recommendation panel. 5. Add a product description if one is missing.  Default sample text appears. 6. From the Instructions field, add instructions or descriptive information. For example, target a specific audience or provide additional details on the product and its benefits (English only).  To change the default instruction text, from the Setup icon, select Edit Page and enter a new default instruction for the Einstein GPT Recommendations component. 7. Select **Translate to all languages** if data translations are set up for your organization. 8. To view the newly crafted product description in the Recommendation field, click **Create**. You can edit the text, accept it, or click **Create** to get a new suggestion. 9. To save the generated recommendation, click **Apply**. When you return to the Product Workspace, the product contains the newly accepted description. This change applies to Lightning Experience in the Unlimited Edition with Commerce Einstein and the Einstein Generative AI for Commerce add-on. Einstein is available in Lightning Experience. Einstein Generative AI for Commerce charges only for the activity you use. Learn how Commerce tracks your usage against your subscription allowance. For each Einstein feature, credit usage depends on the size of the request and the response from Einstein. For Einstein product fields: - The request size and response depends on the character length of the product field - A request is sent for each selected product record To learn more or get updates on your Commerce credit usage, contact your Salesforce account executive. #### See Also - [Einstein Generative AI Solutions](https://help.salesforce.com/s/articleView?id=ai.generative_ai_solutions.htm&type=5&language=en_US) - [Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_about.htm&type=5&language=en_US) - [Enable Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&release=264.0.0&type=5 "When you enable data translation, you can translate the data stored in your B2B store product, category, and promotion fields. You can also enable data translation for custom text and URL fields on the product and category objects.") # Enhance Product Discovery in Your B2C Store (Generally Available) Elevate your shoppers' experience by merging online and in-store experiences, connecting shoppers to your stores and boosting sales. Shoppers can now discover in-store products when searching the online store and pick-up from their preferred store location. This feature, which is now generally available, includes some changes since the pilot release. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click the App Launcher. Select **Administration** | **Global Preferences** | **Feature Switches**. Enable the **Shop the Store Inventory** switch. Select **Merchant Tools** | **Site** | **Search** | **Search Preferences**. Enable **Shop the Store**. ![Shop the Store search preference](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_9/b2c_rn_shop_the_store.png) #### See Also - [_Composable Storefront Developer Guide_: Expand Shopping Options with In-Store Pickup](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/instore-pickup.html) - [_Salesforce Help_: Shop Your In-Store Inventory Online](https://help.salesforce.com/s/articleView?id=cc.b2c_shop_the_store.htm&language=en_US) - [_B2C Commerce Developer Guide_: Shopper Search](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=Summary) # Enhance Product Fields with Einstein Generate product text fields for multiple products in one process using Einstein Generative AI. Einstein uses your instructions and any linked reference fields to generate revised product text for the selected products. Product fields support instructions in English only. You can generate product text fields in languages in your B2B store. Then review the generated text and accept or reject the changes. You need the Einstein Generative AI license to use Einstein Generative AI. Contact your account executive for more information. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note This tool uses generative AI, which is known to include inaccurate or harmful responses. Before using externally, review the output for accuracy and safety. You assume responsibility for the output when making business decisions. These steps describe how to use Einstein to enhance your products’ text fields in a single step. 1. Turn on Einstein generative AI in Setup. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select Setup. 2. In the navigation sidebar, select a store from the **Store** dropdown. 3. Select **Merchandising** | **Products**. 4. From the Product Workspace, select one or more products. 5. Click **Create and Review Field Text**. 6. From the Create and Review Field Text page, complete the Einstein fields and instructions. 1. Select a product field from the dropdown. The dropdown includes all product text fields or custom text fields (of type ‘text area’). If you change the default field from Product Description to something else, be sure to update the instructions. You can only generate one field type at a time. 2. (Optional) Select whether you want text generated for all languages or just your default language. 3. (Optional) Select whether you want to create customer instructions for each language or use the same instructions for all languages. These two language options only appear if you’ve enabled data translation. 4. Enter the instructions for Einstein generative AI. For example you could enter something like, ‘Rewrite the product descriptions to be more appealing to small businesses. Product fields generated with Einstein support instructions in English only. Confirm the accuracy of any non-English generated recommendations. 5. (Optional) Enter reference data fields you want considered during the generation. Reference fields are included in the product record. 7. Click **Create All**. An alert notifies you that your descriptions are being created for the selected products. 8. You can click **Close** to exit this page. The generation continues to process. 9. To view your results, click **Refresh** in the Product Workspace. You can either click Refresh periodically to wait for their descriptions to be generated, or exit the page and wait for the notification.  If the field text couldn’t be created, you’re notified to retry. 10. From the Product Workspace, review the content created for the products. 11. Select the language from the dropdown to review the text in a specific language. 12. To revise the suggested text, modify the instructions for Einstein and regenerate. 13. If satisfied with the suggested text, select those products and then click **Accept**. 14. After accepting the content you want applied, you can create field text for the remaining products or reject the text. 1. To create field text for the remaining products, select the products, revise the instructions for Einstein, and click **Create All**. Einstein regenerates the descriptions. 2. To reject all or selected generated field text, select the products and then click **Reject**. The description reverts to the pre-generated text. Resolve all suggested text before generating text for new products. 15. Click **Close** when complete. Results are stored for seven days. This change applies to Lightning Experience in Unlimited editions with Commerce Einstein and the Einstein generative AI for Commerce add-on. Einstein is available in Lightning Experience. Einstein Generative AI for Commerce charges only for the activity you use. Learn how Commerce tracks your usage against your subscription allowance. For each Einstein feature, credit usage depends on the size of the request and the response from Einstein. For Einstein product fields: - The request size and response depends on the character length of the product field. - A request is sent for each selected product record. To learn more or get updates on your Commerce credit usage, contact your Salesforce account executive. #### See Also - [Einstein Generative AI Solutions](https://help.salesforce.com/s/articleView?id=ai.generative_ai_solutions.htm&type=5&language=en_US) - [Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_about.htm&type=5&language=en_US) - [Enable Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&release=264.0.0&type=5 "When you enable data translation, you can translate the data stored in your B2B store product, category, and promotion fields. You can also enable data translation for custom text and URL fields on the product and category objects.") # Enhance Shoppers' Experience With Accurate Inventory Data for In-Store Pickup (Beta) Display near real-time, accurate, and reliable stock information to your shoppers by managing your in-store inventory with Omnichannel Inventory. Using this inventory information, shoppers can more reliably shop online and pick up purchases in store. **Where:** This change applies to Shop the Store beta feature for B2C Commerce where OCI is enabled. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Shop the Store with Omnichannel Inventory is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/agreements) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the Product Terms Directory. Use of this pilot or beta service is at the Customer's sole discretion. **How:** To participate in this beta program, contact Salesforce Customer Support or your account executive. #### See Also - [Omnichannel Inventory Integration Setup and Configuration](https://help.salesforce.com/s/articleView?id=cc.b2c_omnichannel_inventory_integration_setup_config.htm&language=en_US) # Enhance Shoppers' Product Search Experience with Guided Questions Add an agent action to help shoppers get product recommendations faster. The agent now instantly generates questions after matching a shopper’s query to a product category. **Where:** This change applies to B2C Commerce and requires Service Cloud or Sales Cloud in Developer, Unlimited, and Enterprise editions. **When:** This feature is available in November 2025. **Who:** This change is available to customers with a B2C Commerce Cloud license and the Agentforce add-on. **How:** In Salesforce, go to **Setup** | **Agentforce Studio**, and select the B2C guided shopping agent. Select the B2C Commerce Product Search Assistant topic, and then add instructions to the Get B2C Commerce Conversation Context Questions action. #### See Also - [_Salesforce Help_: Configure Your Agent to Use Conversational Context](https://help.salesforce.com/s/articleView?id=cc.b2c_shopping_agent_conversational_context_config.htm&language=en_US) # Enhance Storefront Search Scale and Performance Enhance the scale and performance of storefront search for keyword search and product browsing with the new B2C Commerce search settings option. Improve page load times for large product catalogs when processing search results that exceed a configurable threshold. Shoppers get quicker results when performing a keyword search, refinement calculation, product grouping, sorting, and category browsing. For example, if your storefront doesn’t use search refinement counts in the refinement bar, a setting is available to improve refinement calculation and search and category page load times. How: To activate the new search settings, contact Salesforce Customer Support or work with your Customer Success Manager and Customer Success Group representatives. Salesforce recommends that you test the new functionality on a development or dedicated test instance before enabling them on a staging or production environment. # Enhance your Business Manager Workflow with the New User Interface B2C Commerce Business Manager has a new user interface (UI). The UI is available as an Open Beta. This new user experience for our merchandising tool introduces a fresh design and enhanced usability based on extensive research, industry standards, and valuable feedback from our customers and partners. **When:** Starting with the 24.9 release, the New Business Manager is available as an open beta. **Why:** The new Business Manager enhances the overall user experience by offering improved multi-site management features and innovative tools. The UI features a collapsible left navigation, an intuitive app switcher for quick access to B2C applications, and a redesigned homepage with alerts, favorites, store, and catalog insights. Watch for additional enhancements and capabilities in future releases of B2C Commerce. **How:** With the start of the Open Beta every instance admin can unlock the new user interface with the feature toggle. - In Business Manager, select **Administration** | **Global Preferences** | **Feature Switches** | **Enable New Business Manager UI (Beta)**. - Enable the feature toggle. When the toggle is on as a global preference, every instance user can switch to the new UI in the My Profile screen. - In Business Manager, select **My Profile Settings** | **Preferences** | **Preferred UI Style: Modern (Beta)**. After a user switches to the new UI, they can switch back to the classic UI if something isn’t working as expected. - In Business Manager, select **My Profile Settings** | **Preferences** | **Preferred UI Style: Classic**. No development work is required to use the new BM UI. Existing user permissions are retained. Custom Business Manager extensions continue to work. To Report feedback or issues for this Open Beta, use these options: - Submit general feedback related to the new UI through the integrated feedback form in the new Business Manager header. - Track functional defects with the Salesforce Customer Support process. Before submitting a functional defect with Customer Support, confirm that the issue occurs in both the new and classic UIs. - Make feature and enhancement requests through the ideas in IdeaExchange (https://ideas.salesforce.com/s/). #### See Also - [New Business Manager UI](https://help.salesforce.com/s/articleView?id=cc.b2c_new_business_manager_ui.htm&language=en_US) # Enhanced Category Assignment Control in Page Designer Page Designer now offers merchants greater flexibility when assigning landing pages to categories. Previously, assigning a page to a top-level category automatically included all sub-categories, which often required custom development to override. With this new enhancement, merchants can now choose whether to include sub-categories when creating or editing page assignments. This feature allows for more targeted and personalized customer experiences without the need for developer intervention. **Where:** This feature applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Merchant Tools** | **Site** | **Site** | **Content** | **Page Designer**. Click **New**, select a page layout, and click **Next**. In the Create New Page window, you can assign one or more categories to the page. Categories are shown in a hierarchical view. If you click the plus sign for a category, it selects that category and all of its subcategories, and changes their plus signs into checkmarks, indicating that they are all selected. If you click the checkmark for the category a second time, it deselects the subcatgories, and changes the category's checkmark into a minus sign, indicating that the top-level category is still selected. Clicking the minus sign for the category a third time deselects the category. You can individually select and deselect subcategories. If a category or subcategory is already assigned to another page, you cannot assign it to your new page. You can modify category assignments for an existing page by selecting **Page Settings** | **Assignments**. #### See Also - [Copy Components in Page Designer](https://help.salesforce.com/s/articleView?id=cc.b2c_create_plp_pdp_templates.htm&language=en_US) # Enhanced Error Handling for In-Cart Promotion Evaluation If an exception is thrown during an in-cart promotion evaluation, the evaluation is aborted and any calculated discount is returned. This enhancement lets shoppers proceed to checkout with all applied discounts. We also enhanced the validation process to reduce unexpected failures. All failures are logged in Log Manager. # Enhanced Flexibility with Promotions Proration Exclusivity and Combinability You can now prorate select product promotions across all eligible products in a cart. This enhancement is available for amount and percent promotions. Enable this option using the checkbox that appears for applicable promotions. #### See Also - [Create a Product Promotion Rule](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/promotions/b2c_creating_product_promotion_rules.html?) # Enhanced Method for App Config Segmentation This approach is recommended, especially for new and onboarding merchants. It allows you to segment app configs for Point of Sale based on three criteria: Device Type (iPad vs. iPhone), Personnel (based on role or individual associate), and Location (based on store group or store). - **[Enable the Enhanced Method for App Config Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_segments_enhcd_enable.htm&release=264.0.0&type=5)** Enable Point of Sale App Config Segmentation to customize app configurations for different user groups, enhancing personalization and control. By toggling specific settings in the CMS, you can disable role-level or associate-level defaults and enable layout groups, ensuring a more tailored user experience. - **[Create an App Config for the Enhanced Method for App Config Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_segments_enhcd_create.htm&release=264.0.0&type=5)** Create a Point of Sale app configuration in CMS to customize your app's look and feel with logos, fonts, and other settings. iOS users can leverage a variety of native, license-free fonts by typing the name directly. - **[Segment App Configs for the Enhanced Method for App Config Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_segments_enhcd_segment.htm&release=264.0.0&type=5)** Set segmentation preferences for Point of Sale app configs to tailor the user experience. If Modern POS is selected as the app config type, set preferences at the associate and manager levels. - **[Set an App Config Token using the Enhanced Method for App Config Segment](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_segments_enhcd_set_token.htm&release=264.0.0&type=5)** Configure your POS application by setting a unique token to access specific configurations. - **[POS App Flow for the Enhanced Method for App Config Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_segments_enhcd_pos_flow.htm&release=264.0.0&type=5)** After a reset, users can retrieve a specific Point of Sale App Config using a token or opt for the default configuration. Token retrieval takes precedence only if the register and associate are not targeted by any app config segmentation rules, ensuring a tailored user experience. Once logged in, the app config name is visible on the cart screen, providing transparency and control. - **[Rules of Precedence for the Enhanced Method for App Config Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_segments_enhcd_rules.htm&release=264.0.0&type=5)** When defining segmentation rules for app configs in Point of Sale, prioritize specificity and granularity to resolve conflicts. Clear precedence ensures that registers or associates are targeted accurately, enhancing app functionality and user experience. - **[Enhanced Method for App Config Segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_segments_enhcd.htm&release=264.0.0&type=5)** This approach is recommended, especially for new and onboarding merchants. It allows you to segment app configs for Point of Sale based on three criteria: Device Type (iPad vs. iPhone), Personnel (based on role or individual associate), and Location (based on store group or store). # Enjoy a Business Manager Refresh To enhance usability, we've updated some aspects of the Business Manager user interface. Updates include: - Headers - Colors and Themes - Buttons - Fonts - Padding - Input and search boxes - Table structure # Enjoy Faster eCDN Zone Load Times The Business Manager Embedded CDN (eCDN) page is now more efficient with faster zone load times. For B2C Commerce Instances with large numbers of zones, the eCDN page now loads up to ten times faster. # Enjoy the Lightning Design User Experience in Business Manager We added Lightning Design System to the most commonly used Business Manager features and app navigation. This update gives Business Manager the same user experience that you’ve come to expect from other Salesforce products. How: The updates to these features and pages are only cosmetic. All Business Manager functionality and app navigation paths are unchanged. - Global header and footer - Global navigation - Navigation iconography - Business Manager landing page - Merchant tools landing page - Admin landing page # Ensure Account Access with One-Time Passwords as Multi-Factor Authentication Fallback If service issues prevent the use of multi-factor authentication (MFA), you can log in using a time-based one-time password (TOTP) from a registered authenticator app. This fallback option ensures that you maintain access to B2C Commerce applications and works with your registered Salesforce or third-party party authenticator apps. To use this fallback option, make sure that you register at least one authenticator app that supports TOTP. **Where:** This change applies to Account Manager for B2C Commerce. **How:** In the case of a multi-factor authentication service disruption, the Account Manager login screen shows your registered authenticator apps. To log in, select an app and enter the TOTP. You can’t register a new authenticator during MFA outages. ![List of registered authenticator apps with TOTP for MFA fallback.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_10/b2c_account_manager_mfa_fallback.png) #### See Also - [_Salesforce Help_: Log into Account Manager in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_login.htm&language=en_US) # Ensure Accurate Custom Attribute Values with Language Fallback We updated `MultiValueCustomAttributes` to respect your language fallback settings. Now, if a custom attribute is requested in a language without a translation, and fallback is disabled, no value is returned. This ensures data accuracy. **Why:** This update ensures that your custom attribute values are accurate and consistent across different languages, preventing the display of incorrect or default values when language fallback is disabled. # Ensure Accurate Page Previews with Enhanced Hostname Handling To generate accurate preview links, Page Designer now considers all configured hostnames in the Alias file. This avoids Cross-Origin Resource Sharing (CORS) issues with AJAX calls, and ensures that your storefront previews are reliable, consistent, and reflective of the live storefront experience. Previously, Page Designer used only the https-host from the alias file in Business Manager to decide which hostname to use for the preview link. **How:** In Business Manager, select **Apps Switcher** | **Merchant Tools** | **SEO** | **Aliases**. Make sure that all configured hostnames in the Alias file point to the correct instance. This helps avoid unexpected issues and ensure that page previews are accurate. # Ensure Apex Code Works with High Scale Orders for a B2B Store If you extended the Commerce\_Domain\_Checkout\_CreateOrder extension point before Summer ’24, it’s possible that your Apex code doesn’t work correctly with the High Scale Orders feature enabled. You must test your existing code to make sure that it works as expected, modifying it as needed. Also, consider how the High Scale Orders feature in general can affect your Apex code. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) The High Scale Orders feature can affect your Apex code in these ways. - The High Scale Orders feature creates OrderSummary objects and uses those objects to create corresponding Order objects. Only fields present in the OrderSummary objects can be reflected to the corresponding Order objects. Some Order fields aren’t available as OrderSummary fields. For example, the ShippingAddress field. Therefore, the resulting Order objects created by the High Scale Orders feature don’t reflect values for the ShippingAddress field. If you’re extending the `Commerce_Domain_Checkout_CreateOrder` extension point, your Apex code must only manipulate Order fields that are available in both the Order and the OrderSummary objects. - If you’re extending the `Commerce_Domain_Checkout_CreateOrder` extension point, you can manipulate custom fields on Order and OrderSummary objects. Make sure that your Apex code only manipulates custom fields that are the same for both objects. For example, same names and data types. - When the High Scale Orders feature creates OrderSummary objects, it sets their status to Created. - When the High Scale Orders feature creates Order objects, it sets their status to Activated, and the status can’t be changed. - The High Scale Orders feature creates Order objects and OrderSummary objects in the Automated Process user context. If the High Scale Orders feature is disabled, Order object and OrderSummary objects are created using the current shopper’s context. - When triggering flows on the OrderSummaryCreatedEvent, the system always uses the Automated Process user context. - When triggering flows on Order creation events, the system uses the Automated Process user context if the High Scale Orders feature is enabled. Otherwise, the system uses the current shopper’s context. # Ensure Basket Validation for SCAPI Calls The basket validation hook, `dw.ocapi.shop.basket.validateBasket`, is now triggered for both OCAPI and SCAPI calls. **Why:** This fix makes sure that basket validation is consistently applied across all API calls. This change reduces unexpected behavior and improves ‌basket management. **How:** Review your existing implementations to make sure they handle this change appropriately. # Ensure Secure API Responses for Unauthenticated Requests We've updated the authentication handling for the `GET/sandboxe`s and `POST /realms/usages` ODS API responses. The responses now return a 401 unauthorized status code with a structured error response for unauthenticated requests. This change enhances security and aligns with standard HTTP practices. **How:** Admins and developers should ensure that all API requests are properly authenticated to avoid receiving a 401 unauthorized status code. For unauthenticated requests, the API now returns a structured error response indicating the need for full authentication. Previouw Response: ``` { "kind": "SandboxList", "code": 200, "status": "Success" } ``` Updated Response ``` { "kind": "Status", "code": 401, "status": "Failure", "error": { "status": "Failure", "message": "Full authentication is required to access this resource", "reason": "Unauthorized" } ``` # Ensure steptypes.json Files Are Valid for Custom Job Steps With the 25.4 B2C Commerce release, only valid steptypes.json files are supported. This change enhances the reliability of your custom job steps and reduces runtime errors, ensuring smoother job processes. **Why:** nvalid steptypes.json files have introduced additional complexity and support issues, often requiring third-party tools to process. By deprecating support for invalid files, we prioritize trust and reliability, ensuring that your custom job steps run smoothly without unexpected errors. **How:** To validate steptypes.json files, in Business Manager, select **Administration** | **Operations** | **Job Step Types** | **. The module lists all available steptypes.json files from the custom code and shows if a file is valid.** ** - Valid Files: use the custom code cartridges in your job processes. - Invalid Files: fix the error in the custom code cartridges before using in your job processes. ** # Enter Text More Easily with a Larger RTE The Rich Text Editor (RTE) window where you enter text to configure component attributes is larger now. If you need even more room, you can expand the RTE window to full size. Why: More space to enter text gives you the flexibility to paste or edit long text entries and more easily format the text. ![Image of the Rich Text Editor before the RTE window is expanded.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_4/rte_window.jpg) How: To expand the window to full size, click the icon. ![Image of the Expand icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_4/rte_expand_icon.jpg) ![Image of the Rich Text Editor window expanded to full size.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_4/rte_window_fullsize.jpg) For details about creating pages and configuring component attributes, see [Create a Page Using the Page Designer Visual Editor](https://help.salesforce.com/s/articleView?id=cc.b2c_create_page.htm&type=5&language=en_US). # Entitlement Policies for B2B Stores Entitlement policies make it easy to manage buyer groups and products. You can use entitlement policies to decide which products a buyer group can see, and whether the buyers can see the product prices. When you create a store, the system automatically creates a default buyer group and a default entitlement policy. You can create additional buyer groups and entitlement policies as needed. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) By default, your B2B Commerce store uses entitlement policies to evaluate which products and product categories are available to a buyer group. However if you have thousands of products, preconfiguring entitlement policies can get challenging. If you've got a large number of products in your store, instead of using entitlement policies, consider using qualification and disqualification rules to define the visibility of products. See [Qualification Rules in Your B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_qualificationrules.htm&language=en_US). - **[Create an Entitlement Policy](https://help.salesforce.com/s/articleView?id=commerce.comm_entitlement_policies.htm&release=264.0.0&type=5)** Create an entitlement policy declaratively, through the Commerce app. - **[View Your Store’s Buyer Groups and Entitlement Policies](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups_b2c.htm&release=264.0.0&type=5)** Make sure that your customers have access to the correct products in your store by checking your buyer groups and associated entitlement policies. A B2B store can have multiple buyer groups and markets. You can also assign products to multiple entitlement policies and associate the policies to different buyer groups to determine which customers can access the products in the store. - **[Delete an Entitlement Policy](https://help.salesforce.com/s/articleView?id=commerce.comm_entitlement_policies_delete.htm&release=264.0.0&type=5)** Disable or delete an entitlement policy through the Commerce app. # Epson Bluetooth Printer Setup Configure the printer settings in Point of Sale CMS and connect to the printer in the Point Of Sale (POS) app. You can then print receipts and manage cash drawers efficiently. Prerequisites: - Modern POS App build: 7.1.0 or later - Platform Support: iPhone & iPad - Offline Support: yes - Certified Models: TM P80 To turn on App Config settings: 1. Go to **CMS > Apps > Store > {your app config}**. 2. Hover to select **Edit** on your selected app config. 3. Go to **Modules > Peripherals**. 4. Enable **Requires Printer** for Receipts. 5. Under **Default Printer**, select **Epson**. 6. Enable **Epson Printer**, then save your changes. 7. ![The Epson printer settings turned on the Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_epson_printer.png)Go back to CMS and go to **Store Management > Register > {your store} > {your register}**. 8. Select the pencil to edit the selected register. 9. Under **Receipt Printer**, select your model and the connection type as **Bluetooth** (it shows as BLTE for Bluetooth).![Bluetooth connection turned on for Printer Settings in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_receipt_printer_bluetooth.png) 10. Save your changes. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important For Step #9, match the printer model selected with the printer you intend to connect to. If they don't match, your printer won't be discovered in the POS app. ## Bluetooth Printer Setup in the POS App Connect your TM P80 printer to your Point of Sale (POS) application to print receipts and manage transactions efficiently. Enable Bluetooth in your device's settings and pair it with your printer. ### TM P80 1. Plug the power cable into the back of your printer and wait for the blue light by the power icon. ![The receipt printer showing a blue light indicating that it's on](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_epson_bluetooth_in_pos.png) 2. Go to your **Settings App > Bluetooth**. Enable Bluetooth and select your printer. 3. In the POS app, go to the **Device Manager** screen. The POS app automatically searches for your printer. After your printer has been added to the list of printers, select the printer in the list and select **Connect**.![The Device manager screen in the POS app on an iOS device](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_device_mgr_pos_app.png) ### Resetting Your Printer 1. If you have a selected printer in the Device Manager, disconnect and remove it by clicking on the trash can. 2. Force a power cycle by removing the power cord from the back of the printer. 3. Plug the power cable into the back of your printer. 4. On your device, download **Epson TM Utility** from the App Store. 5. It is recommended you update the Firmware. 6. In order to see your printer displayed, your device must be connected to the printer via the **Settings** app. Under **Bluetooth**, turn on Bluetooth and tap on your printer. 7. Go to the **Device Manager** screen and check to see the printer entry. Select your printer. ### Printer Topology Setup For instructions on printer topology setup, see [Hardware Topology Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_topology_setup.htm&release=264.0.0&type=5 "Point of Sale's Printer and Payment Terminal Topology allows you to determine whether the application is paired with a printer or payment terminal one-to-one (1:1) for an extended period of functionality or whether it's one-to-many (1:N) where it is prompted each time to select the device to use."). ### Troubleshooting For information on troubleshooting and solutions, refer to [Epson Printer Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_epson_printer_troubleshooting.htm&release=264.0.0&type=5 "Solve common issues with Epson printers in Point of Sale to quickly restore printer functionality and minimize disruptions.") ## Known Issues and Restrictions Understand problems that you may encounter when connecting Bluetooth devices to the Point of Sale (POS) app. ### Device Manager Printer Status Modern POS only has an active connection to a Bluetooth-connected printer at the time of use. Modern POS establishes the connection at the start of a task (printing receipts or opening a cash drawer) and closes at the end of the task. Because of this, the printer state in Device Manager won't change unless a printer task is requested. For example, if the user turns off the printer, Device Manager won't reflect this state change until the printer is needed to perform a task. ### No Detection if Drawer Opened Epson printers are unable to determine if the cash drawer is open. Make sure the drawer is closed before initiating a cash transaction. ### Printer Not Discovered If your printer isn't being discovered, remove any model filtering by going to **Store Management -> Register -> Your Store -> Your Register -> Edit (Pencil) -> Printer -> Model: Epson Legacy** ### Attempt to Connect Multiple iPhones/iPads to Same Printer Bluetooth printers can only be connected to a single iPhone or iPad at a time. If the printer is connected to an iPhone or iPad, disconnect via **Settings > Bluetooth > Printer Name > Disconnect**. Otherwise, "**Connection Failed**" is shown in Device Manager if attempting to connect. # Epson IP Printer Setup Configure your Epson IP printer in Point of Sale CMS, connect it to the Point of Sale (POS) app, and switch to DHCP to connect to the network and print receipts. Prerequisites: - Modern POS App Build: 7.1.0 or later - Platform Support: iPhone & iPad - Offline Support: yes - Certified Models: TM-T88IV, TM-T88V, TM-T88VI, TM-m30II, TM-m30II-H, TM-m30II NT, TM-m30III, TM-m50, TM-m50II-H To enable App Config settings in Point of Sale CMS: 1. In CMS, go to **Apps > Store**. 2. Edit your selected app config and go to **Modules > Peripherals**. 3. Turn on the **Requires Printer for Receipts** flag. 4. Under **Default Printer**, select **Epson**. 5. Turn on the **Epson Printer** flag. 6. Back in CMS, go to **Store Management > Registers**. 7. Select your store and edit a register by clicking on the pencil to the right. 8. Under **Receipt Printer**, go to **Model** and select your printer model. 9. Go to **Connection Type** and select **IP Address**. 10. Save your changes. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important For Step #8, match the printer model selected with the printer you intend to connect to. If they don't match, your printer won't be discovered in the POS app. ## Epson TM-T88V Configuration and Setup The Epson TM-T88V, by default, comes with a static IP address. To connect to your network, switch it to DHCP. ### Switch to DHCP 1. Plug in the printer to power. 2. Plug the Ethernet cable from the printer to your computer. 3. Set your computer to a static IP address. ### Change IP Address 1. Go to the Mac System preference and select the **Network** pane. 2. If you're using a different network interface than the cash drawer, change the IP address manually to: ![Configuring the printer's IP address in System Preferences](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_change_ip_for_printer.png) 1. 192.168.192.5 (can be any IP address from 1–254 other than 168) 2. Subnet Mask: 255.255.255.0 3. On your computer, go to [http://192.178.192.168](http://192.178.192.168/), this is the default address for the printer and launches the Epson Admin Tool. 4. In the Epson Admin Tool: 1. The username and password for the Epson printer is _epson_/_epson_. 2. Go to **Configuration > TCPIP**. 3. Change **Acquiring the IP Address** to **Auto** and press **Save** to reboot the printer. 5. ![Sewtting the Acquiring IP Address Setting to Auto in the TCPIP Screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_epson_admin_tool.png) 6. Plug your printer into your router or ethernet hub. It retrieves an IP address from your network. You can check this by pressing the button on the back of the printer with a pen. ### TM-m30/TM-m30II/TM-m30III 1. Plug the power cable into the back of your printer. 2. Plug one end of the Ethernet cable into the back of your printer and the other into the back of your router. ### Resetting Printer 1. If you have a selected printer in the Device Manager, disconnect and remove it by selecting the trash can. 2. Plug the power cable into the back of your printer. 3. Plug one end of the Ethernet cable into the back of your printer and the other into the back of your router. 4. On your device, download **Epson TM Utility** from the App Store. 5. Select **Wi-Fi Setup Wizard**, select your model, and select Next. 6. Follow the instructions. 7. It is recommended you update the Firmware. 8. Go to the **Device Manager** screen and check to see the printer entry. 9. Select your printer. ## Epson IP Printer Setup in the POS App Connect an Epson IP printer to the POS app so you can print from your device. The device manager screen auto-detects the printer when it's on the same network as the iPod or iPad. ### Connect Epson IP Printer to POS app Go to the Device Manager screen. Make sure the iPod or iPad and the printer are on the same network. The device manager screen auto-detects the printer if it's on the same network as the iPod/iPad If the printer doesn't appear automatically, try hitting refresh on the top right or select Add Printer. You'll be shown an interstitial to enter the IP Address. Enter the IP address here (for example 192.168.1.5).![Add an IP address for a printer in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_app_ip_printer.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Match the printer model selected to the printer you intend to connect to. If the printer model selected doesn't match, functionality isn't guaranteed. If you don't see your printer model, see [CMS — Configuration & Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_epson_ip_printer_setup.htm&release=264.0.0&type=5 "Configure your Epson IP printer in Point of Sale CMS, connect it to the Point of Sale (POS) app, and switch to DHCP to connect to the network and print receipts."). This adds the printer to the list of printers. Select the printer in the list and select **Connect**.![Select a printer to which to connect](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_select_printer.png) ### Printer Topology Setup For instructions on printer topology setup, see [Printer Topology Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_topology_setup.htm&release=264.0.0&type=5 "Point of Sale's Printer and Payment Terminal Topology allows you to determine whether the application is paired with a printer or payment terminal one-to-one (1:1) for an extended period of functionality or whether it's one-to-many (1:N) where it is prompted each time to select the device to use."). ### Troubleshooting For information on troubleshooting and solutions, see [Epson Printer Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_epson_printer_troubleshooting.htm&release=264.0.0&type=5 "Solve common issues with Epson printers in Point of Sale to quickly restore printer functionality and minimize disruptions.") ## Epson IP Printer Setup Known Issues Understand common problems and limitations with configuring an IP Address Printer in Point of Sale. ### Device Manager Printer Status Modern POS only has an active connection to an IP-connected printer at the time of use. Modern POS establishes the connection at the start of a task (printing receipts or opening a cash drawer) and closes at the end of the task. Because of this, the printer state in Device Manager won't change unless a printer task is requested. For example, if the user turns off, the printer, Device Manager won't reflect this state change until the printer is needed to perform a task. ### No Detection if Drawer Opened Epson printers are unable to determine if the cash drawer is open. Make sure the drawer is closed before initiating a cash transaction. # Epson Printer Troubleshooting Solve common issues with Epson printers in Point of Sale to quickly restore printer functionality and minimize disruptions. For Epson printer setup guides, see [Epson IP Printer Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_epson_ip_printer_setup.htm&release=264.0.0&type=5 "Configure your Epson IP printer in Point of Sale CMS, connect it to the Point of Sale (POS) app, and switch to DHCP to connect to the network and print receipts.") and [Epson Bluetooth Printer Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_bluetooth_printer_setup.htm&release=264.0.0&type=5 "Configure the printer settings in Point of Sale CMS and connect to the printer in the Point Of Sale (POS) app. You can then print receipts and manage cash drawers efficiently."). For Epson Fiscal printers, see [Epson FP90 Italy Fiscalization.](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_hardware_configuration_and_setup_italy.htm&release=264.0.0&type=5 "Set up your Epson fiscal printer to connect to your POS. Then, obtain the IP address so you can manually add the printer to the POS app and begin fiscalization.") For a comprehensive list of supported printer models, see [Supported Hardware.](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") ## Prerequisites - Modern POS App build: 7.1.0 or later - Platform Support: iPhone & iPad - Offline Support: yes - Connection Type: IP and Bluetooth Only ## Troubleshooting Process Guidelines After you follow the steps described for your symptom, if the issue isn't resolved, it’s recommended to go through these steps to get the hardware back to function. - Start Fresh - Reboot the iPad - Relaunch the POS app - Power cycle the printer - Check App Config Settings in CMS - Check and verify the iPad region in your iPad settings. This can cause a wrong app config to be downloaded. - Check the register settings for the correct printer type and connection type - Validate Epson printer is enabled in CMS. This can be done by going to **CMS > Apps > All**. - Edit the selected app config and go to **Modules > Peripherals**. - Enable the flags: **Epson Printer** and **Requires Printer for Receipts**. ## Issues and Resolution The sections below contain issues that you may experience and steps to resolve those issues. ## Device Manager Unable to Discover IP Printer If this occurs, valudate that your device has enabled Local Network access. To do this, go to **Settings > Privacy > Local Network** and make sure Modern POS is turned on. After that, validate that your printer and your device are on the same network. To do this, on the back of your printer, press and hold the SW button with a pen for two seconds. Your printer will print a status report. Then on your device, go to **Settings > Wi-Fi > I** (next to your connected network). Make sure the Subnet Mask and DNS/Router match. ## Unable to Print Entire Receipt The maximum number of lines Epson printers can print in a single receipt is 650. If using [Receipt](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_receipt.htm&release=264.0.0&type=5 "Customize Point of Sale receipts to enhance customer experiences. Configure store-level print receipts and use templates for order returns. The Receipt Layout editor allows you to tailor headers, footers, and item details. Understand common challenges and best practices for clear and readable receipts, including managing returns and exchanges.") Layouts, consider consolidating printed rows. ## Miscellaneous If you can’t resolve your issue, confirm that you can connect to your printer. To do this, download the [Epson TM Printer Utility](https://apps.apple.com/tr/app/epson-tm-utility/id726122574) and make sure you can connect your printer. This allows you to see any printers on your network after the iPad, iPod, or iPhone app is running on your network. You can see the details of the device and use this to connect your printer to the POS application. ## ARP Broadcast Filtering for SSID Verify if ARP Broadcast Filtering is enabled and turn it off so that Epsom IP Printers can be discovered. If you want to turn off ARP Broadcast Filtering for the whole store, we suggest setting up a special SSID for the register and its devices (printers, card readers, and so on) and turning off ARP Broadcast Filtering only for this SSID. If nothing works, share the printer troubleshooting logs with Salesforce Customer Support. # Error Handling and Feedback Capture in Point of Sale The Point of Sale (POS) app provides an option to see additional details of an error and send feedback and additional details about the error in case of any order and cart actions failure. The data sent as part of failure reporting is used for analyzing the POS app failures to further improve the robustness of the POS app. Store associates can enter ‌comments as feedback and it'll be posted and visible on CMS. These errors are analyzed periodically by Salesforce. Customers interested in this feedback can also view it in our CMS. ## Prerequisites - Modern POS App build: 7.14.5 and later - Platform Support: iPhone & iPad - Offline Support: no ## POS App Flow If the store associate puts the order on the POS app and the order doesn't work, the app shows the error message and a way to see more about the error. ![A Transaction Failed message window with the option to see more details in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_report_error_handling_details.png) If the associate selects "**More Details**", the app shows the additional details of the error along with an option to provide additional details and share this error with Salesforce. ![An error's description in the More Details window shown in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_error_handling_more_details.png) The associate can send ‌feedback or additional steps to replicate the error and close the popup. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In case there are no error details to be displayed for a failure, the app prompts to add details about the error. The app also submits the feedback with no additional details if the associate decides to close the popup by clicking "OK". Submitting ‌feedback by just closing the popup enhancement is only available in the 7.15.5 build and later. ## Different order failure scenarios See screenshots of different failure order scenarios Payment was canceled from the terminal ![A window showing that a transaction was cancelled and caused the error.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt-pos_reports_error_handling_payment_cancelled.png) Payment was reverted because of order failure ![A window showing that the order couldn't be completed, which caused the error.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_error_handling_failed_order.png) ## Viewing the Feedback Posted Feedback can be viewed in Point of Sale CMS by navigating to **Advanced > Associate Feedback**. ![The Associate Feedback section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_error_andling_view_feedback.png) To view particular feedback, the user can ‌select “**View**” under the **Details** column. It displays feedback details. ![Feedback details showing for an error in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_error_handling_feedback_details.png) # Establish OneLogin with POS App Integrate your Point of Sale (POS) app with OneLogin to validate store associate credentials. Verify secure communication with Salsesforce and streamline user management using your existing identity and access management tools. Configure your OneLogin portal and CMS settings to enable seamless authentication for both online and offline access. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This article applies to the legacy platform. If you're on Hyperforce, configure POS app SSO through Salesforce Identity instead. See [Configure Salesforce Identity for Point of Sale SSO](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_config_sso_salesforce_identity.htm&release=264.0.0&type=5 "Connect Point of Sale to your identity provider (Azure AD or OneLogin) through Salesforce Identity."). Prerequisites: - Modern POS App Build: 7.11.5 or greater - Files: [Store Associate Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_store_ass.htm&release=264.0.0&type=5 "The store associate feed drives the functionality that creates store associates for all stores. If an associate exists in Point of Sale, all of the data is updated with content from the file.") containing store associate IDs, names, store IDs, and roles. This will be necessary to provide the mapping between the 3rd party providers and Point of Sale's backend subsystems. [OneLogin](https://www.onelogin.com/) is used to validate the credentials of a store associate. After the login information is validated, communication with Point of Sale cloud is established. For information about integrating OneLogin for CMS, see [Enabling OneLogin with CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_enable_onelogin.htm&release=264.0.0&type=5 "Integrate OneLogin with Point of Sale CMS to validate user credentials during login. After the login information is validated, establish communication with Point of Sale."). ## OneLogin Portal Configuration Create a OneLogin application. 1. Go to your OneLogin's portal account. 2. Go to **Applications > Applications: Add App > OpenId Connect (OIDC)**. 3. Under **Configuration**, set the redirect URL (for example com.yourcompany.pos.oidc://callback). 4. Under **SSO**, set **Application Type** to "Native" and Authentication Method to "**None (PKCE)**". ## Configure Point of Sale CMS and OneLogin Integration Configure Point of Sale CMS to integrate with your OneLogin account. 1. Go to **Advanced > Single Sign-On Configurations**. 2. Select **Create** on the top right of the screen or select an existing configuration. 3. Turn on **Enable**. To disable integration with OneLogin, turn it off. This advises the app to treat it as inactive. 4. Fill out the required areas by referring to the following: 1. **Provider Name**: Select "**One Login**". 2. **Consumer Key**: Enter the consumer key of your OneLogin account, which can be found by going to **{Application} > SSO > Client ID**. 3. **Redirect URL**: Enter the URL in your OneLogin account, which can be found by going to **{Application} > Configuration > Redirect URI's**. 4. **Default Scopes**: Provide a scope that will determine the information you recieve about a user during the authorization process. For example, "**openid email profile**". 5. **Token Endpoint URL**: Enter the token issuer URL. For example, "https://tokenEndpointURL.com". 5. Save your changes. ![The Edit Single Sign-on configuration in Point of Sale CMS, where you enter your ONeLogin credentials.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_onelogin_gne_settings.png) ## Authentication Whether logging into POS in online or offline mode, each user has a single store associate ID. Store associate details can be found in the CMS by going to **Store Management > Associates > Search Associates > Pencil.** Depending on which mode the user is in determines the password the user provides to authenticate into the Modern POS. | Modern POS Online/Offline State | Authentication | | --- | --- | | User is "online" | OneLogin | | User is "offline" | Password stored in CMS | | User is transitioning from "offline" to "online" | OneLogin | ## Sesion Timeout Idle session timeout can be enabled in which the user will be required to log in after a period of inactivity. This can be configured in Point of Sale CMS: 1. Go to **Apps > All >**. 2. Edit an app config. 3. Go to **Modules > Settings**. 4. Turn on **Enable Session Timeout**. 5. Under **Session Timeout in Seconds**, specify how long the app can be idle before the user reenters their credentials. 6. Save your changes. ![The Single Sign-on Session Timeout settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_sso_timeout.png) As the session is approaching expiration, the user is prompted with the following message notifying them their session is about to expire.![An SSO session expiry warning window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_sso_expiry_warning.png) After the session expires, the user sees this screenshot. If they cannot provide valid credentials, they are logged out and shown the login screen.![The Please Login to COntinue window in the POS app that users see when their SSO session expires.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_sso_expired_reauth.png) ## Manager Approval When a sales associate logs into POS, specific features require manager approval. Such features include: - [Till Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_till_mgmt.htm&release=264.0.0&type=5 "Use the Point of Sale (POS) app to manage tills in-store and reconcile all tills at the same time.") - [Price Correction](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_discounts_corrections.htm&release=264.0.0&type=5 "Efficiently manage pricing adjustments and errors at checkout using manual discounts and price corrections in the POS app. Discounts can be applied, for instance, to damaged items. You can also set checks and manager approval rules to limit the changes that associates can make. Configure these settings in CMS before using them in the POS app.") - [No Receipt Returns](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_nrr_overview.htm&release=264.0.0&type=5 "Allow returns for customers who don’t have a purchase receipt or a customer profile. No Profile, No Card, No Receipt Returns (NRR) in Point of Sale are performed at the lowest historical price and only if the returning item is still available in the system.") - [Cycle Count](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_creating_or_starting_cycle_counts.htm&release=264.0.0&type=5 "Create cycle counts to accurately manage inventory records. You can create them in the Point of Sale (POS) CMS, the POS app, or with an API.") When a sales associate attempts to perform one of these actions they are prompted for manager approval. ![The Manager Login window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_sso_manager_login.png) Upon tapping "**APPROVE**", a manager is prompted to enter their credentials. ![The onelogin screen in the POS app where managers enter their credentials before approving an associate's actions.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_sso_manager_approve.png) The manager enters their username and password. After the manager approves the action, the associate can continue. ## Troubelshooting When using iOS 14 and earlier, you can wrongfully dismiss the login modal via swiping or tapping outside the window. If this happens, restart the POS app. # Establish Security Compliance with an Outbound Connections Allowlist Gain greater security and control over outbound connections. The new Outbound Connections screen in Business Manager lists recently used endpoints that you can select from. You can also configure new endpoints and add them to your allowlist. Connections defined under Service credentials are automatically allowed from the B2C Commerce platform. **Where:** This change applies to B2C Commerce. **Who:** This feature is available to users with access to the Services Business Manager module. **How:** In Business Manager, click the App Launcher, and then select **Administration** | **Operations** | **Services** | **Outbound Connections**. Add endpoints (1), and verify automatically allowed endpoints (2). Enforce your allowlist (3). ![Outbound Connections Screen in Business Manager](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_9/b2c_rn_manage_outbound_connections.png) #### See Also - [Configure Service Credentials for the Near Real-Time Connected App](https://help.salesforce.com/s/articleView?id=cc.b2c_data_cloud_near_real_time_configure_service_credentials.htmcc.b2c_metrics_dashboard.htm&language=en_US) # Estimate Delivery Dates with AI Tools Prepare your delivery estimation configuration and quote delivery promises to customers in one conversation. With headless Order Management, the AI client reads and updates your estimation setup and returns a delivery date. ### Required Editions
View supported editions.
Delivery estimation depends on a layered configuration—processing times, carrier methods, routing, and business hours—that's easy to get wrong and hard to validate. With headless Order Management, an operations manager can tune that configuration in a conversation. A service agent can quote a reliable delivery date from the same live setup. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Because an AI client uses large language models, which are probabilistic, results can vary from one run to the next. If you get an unexpected result, describe to the agent what happened so that it can help you diagnose and adjust. You don't need a specific model. ## Scenario Cloud Kicks is preparing for a holiday surge. Dana, an operations manager, must confirm that delivery estimates hold up before traffic spikes. Rather than click through processing time and carrier pages, Dana asks the AI client to show the processing time hierarchy. Dana asks it to extend a carrier method, add holiday closures, and turn on in-store pickup for a set of stores. Later, a service agent asks the same client to estimate whether a stock keeping unit (SKU) can reach a customer by a target date. In a single request, the agent returns an estimated delivery date. When standard shipping misses the date, it re-runs the estimate for in-store pickup. ## Requirements Complete the shared setup in [AI Agent Use Cases for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_steelthread_overview.htm&release=264.0.0&type=5 "Use an AI agent to set up Order Management and complete common Order Management tasks conversationally, such as finding and canceling order items."). This use case also needs: - Order Management configured with Delivery Estimation setup: locations, location groups, carriers, and carrier methods for at least one managed carrier region. - Fulfillment routing configured with at least one rule group assigned to the Delivery Estimation setup. - An org-default processing time on at least one location, and business hours on locations so the agent can derive pickup windows. - The Order Management Operations Manager permission set to change delivery estimation configuration. To quote a delivery date without changing configuration, the Order Management Agent permission set is enough. If your org doesn't include Omnichannel Inventory, use Order Management: Operations Manager without Omnichannel Inventory or Order Management: Agent without Omnichannel Inventory. The estimation functionality comes from the **Salesforce Order Management APIs** (Generally Available), which read and update the delivery estimation configuration and run the estimation pipeline. This use case is recommended for operations managers who tune delivery configuration and for service agents who quote delivery dates. It assumes familiarity with processing times, carriers, and fulfillment routing. ## Agentic Tips - Describe your goal in your own words. For example: - "Show me the processing-time hierarchy for my locations." - "What's the delivery estimate for SKU BOOT-WOMENS-BRN-8 shipped to 94105 by Friday?" - "Can this SKU reach 94105 by Friday? If standard shipping misses it, does in-store pickup make the date?" - Include the SKU, the destination, the target date, and which shipping or pickup options to consider. - Have the agent read the current configuration before it acts. Make one change at a time, and then have the agent read the configuration back to verify. - Approve each configuration change. Review and confirm each write before the agent applies it. Quotes are read-only and don't need approval. - Avoid pasting credentials into a prompt. The agent acts as your authenticated user through the connected org. ## Design Considerations - A delivery quote records the estimate but doesn't place an order. - Estimates reflect your current configuration. If standard shipping misses the target date, ask the agent to re-run the estimate for an alternate option, such as in-store pickup. ## Tune Configuration and Quote a Delivery Date Review and update delivery estimation configuration, then quote a delivery date. ### Required Editions
View supported editions.
1. Confirm that your AI client is connected to Order Management as an authenticated user. The user needs permission to read and write estimation configuration and run the estimation pipeline. 2. Ask the agent to show the processing-time hierarchy. The hierarchy is the org-default time and the more specific per-location times that override it. 3. Ask the agent to update processing times, add a carrier method, set category-level processing times, add holiday closures, or enable in-store pickup for selected locations. The agent gathers the requirements it needs before it writes any configuration, and confirms each write. 4. To quote a customer, ask the agent for the delivery estimate for a SKU shipped to a location by a target date. The agent evaluates availability, routing, carrier transit, and your configuration, then returns an estimated delivery date. 5. If standard shipping misses the target date, ask the agent to re-run the estimate for an alternate option and show whether it meets the date. For configuration changes, ask the agent to read the configuration back; it reflects the new processing times, carrier methods, holiday hours, and pickup settings. For a customer quote, the agent returns an estimated delivery date that reflects your current configuration and the selected shipping or pickup option. # Event Inventory Export Troubleshooting Resolve issues by verifying complete file uploads and checking feed logs for errors. If setting up a new Inventory Event Export Job in CMS, if the file is delivered in extension `.part`, this can indicate the file wasn't uploaded completely. This can also be due to a broken connection by the server resulting in a partial transfer. If this occurs, try a full file extension. In case the file isn't uploaded to your destination, check **Feeds > Feed Logs** to make sure that ASN was received without any errors. If no ASN issues, check **Inventory Export Events** under **Feeds > Export Logs**. If there are no logs showing up in the CMS export logs (**Feeds > Export Logs**) for inventory events, switch `async.adjust.inventory.on.submit.order` in store settings as TRUE. # Example Promotions When you configure a promotion, you customize it based on what you would like customers to receive and how they qualify. The examples show you how to combine basic discount and qualifier options to create different outcomes. Use them as a starting point, try your own unique combinations, and incorporate more advanced settings to create the promotions that you need. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Order-Level Promotion Examples](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_examples_order.htm&release=264.0.0&type=5)** To create different types of promotions for a customer’s total order, use these discount and qualifier settings. You don’t need to specify a discount target for an order-level promotion. - **[Product Promotion Examples](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_examples_product.htm&release=264.0.0&type=5)** To create different types of promotions for specific products, use these discount and qualifier settings. - **[Product Category Promotion Examples](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_examples_product_category.htm&release=264.0.0&type=5)** To create different types of promotions for products in a product category, use these discount and qualifier settings. - **[Advanced Promotion Examples](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_examples_more.htm&release=264.0.0&type=5)** When you’ve familiarized yourself with the basics of creating a promotion, here are a few ways to customize them. # Example: Customize a Store Based on a Shopper's Locale Acme Retail is a global fashion retailer that sells to customers in the United States and Europe. Acme can manage an online store in three languages (English, French, and German) by using markets and assigning locales to them. It can also offer different products, prices, promotions, entitlements, and ship-to countries for each market. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) When a shopper selects Germany from the country picker, the website refreshes to show text in German and prices in euros. Because the locale (German | DE) is assigned to the European market, products, pricing, promotions, entitlements, and ship-to countries for the European market are used. If the shopper selects United States, the text switches to English and prices switch to dollars because the locale (United States | EN) is assigned to the United States market. Products sold in and shipped only to countries in the European market are hidden, and pricing and promotions specific to the US market are applied. ![Select your location.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_select_locale.png) #### See Also - [Segment a Store into Markets Based on Locale](https://help.salesforce.com/s/articleView?id=commerce.comm_markets.htm&language=en_US) - [Connect REST API Developer Guide: Commerce Webstore Application Context](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_application_context.htm) - [Connect REST API Developer Guide: Commerce Webstore Cart Items](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_cart_items) ## Assign Locales and Ship-To Countries to a Market This example assumes that you have created your markets and locales, have set up your B2B store’s pricebook, entitlement policies, currencies, and ship-to countries, and have assigned them to the store. 1. In the navigation sidebar, select the Acme store from the **Store** dropdown. 2. Select **Settings | Store**, and then click **Markets**. ![Markets screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_select_locale_markets.png) 3. Select the Alpine Coffee D2C Europe market to assign the French and German locale‌s to it. 4. Select **Related**. ![Related screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_select_locale_related.png) 5. Next to Locales, select **Assign**, deselect **en\_US**, select **fr** and **de**, and click **Assign**. ![Assign locales.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_select_locale_assign.png) 6. Next to Supported Ship-To-Countries, select **Assign**, add France and Germany, and select **Submit**. ![Assign ship-to countries.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_select_locale_ship_to.png) 7. In the navigation sidebar, select **Website Design**, and at the bottom left, select the Experience Builder. 8. In the components palette, drag the Country Selector component to a page in your store. When a customer goes to your store, they can use the Country Selector to select their locale: United States | EN, France | FR, or Germany | DE. ![Select a locale from the Country Selector.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_select_locale_selector.png) 9. At the top right of the Experience Builder, select **Publish**. ## Change Shopper’s Locale with Headless API If you don’t want to use the built-in Country Picker component in your B2B store, you can pass the `language` query parameter directly to the Connect API. All APIs that internally reference entitlements, pricing, promotions, currency, and ship-to countries support the `language` parameter. Here are two examples. - [Commerce Webstore Application Context](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_application_context.htm) - [Commerce Webstore Cart Items](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_cart_items.htm) If a store is segmented into markets, these APIs look at the language parameter added to the URL to determine the shopper’s locale and return the appropriate values. In the examples, `language=de` is the German locale for the Alpine Coffee D2C Europe market. To retrieve the market currency and the ship-to countries that can be used during checkout, use the [Commerce Webstore Application Context](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_application_context.htm) resource API. ``` https://yourInstance.salesforce.com/services/data/v63.0/commerce/webstores/0ZExx0000000001GAA/application-context?language=de ``` To use market-specific pricing and promotions when adding a product to your cart, use the [Commerce Webstore Cart Items](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_cart_items.htm) resource API. ``` /commerce/webstores/webstoreId/carts/cartStateOrId/cart-items?language=de ``` # Example: Limit Product Visibility in a B2B Store Based on Qualification Rules Alpine Coffee sells to retailers across the United States. Two of the distributors for Alpine Coffee are Alpine Distributor and Go Coffee Distributor. This example uses disqualification rules to specify that buyers for Alpine Coffee see products and product categories that are specific to Alpine Coffee, and buyers for Go Coffee see products and product categories that are specific to Go Coffee. ### Required Editions
View supported editions.
To enable this scenario, we’ve created a custom field, AccountCategory, on the Account object to differentiate between distributors in our store. See [Create a Custom Field](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&language=en_US). For Alpine Distributor, the value of AccountCategory is AlpineSupply, and for Go Coffee Distributor, the value is GoSupply. The goal is for buyers for Alpine Distributor to see products from only the category AlpineSupply, and buyers for Go Coffee Distributor to see products from only the categories GoBar, GoBrew, and GoGoo. Category disqualification rules can specify the appropriate visibility for the two distributors. These are steps to implement this example.These steps assume that qualification rules are enabled in the store. See [Enable Qualification Rules in Your B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_enablequalificationrules.htm&language=en_US). 1. Create an account category field for product and product category disqualification rules. 1. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. Select Object Manager, and in the Quick Find box, enter and select **Product Category Disqualification**. 3. Click **Fields & Relationships**. 4. Create the field AccountCategory of the type Picklist, and save your changes. 2. Create the product category disqualification rule. 1. In the App Launcher, find and select **Product Category Disqualification**. 2. Click **New**. 3. Select the product, and the effective from and effective to dates for the disqualification rule. 4. Save your changes. 3. Extend the context definition and map the AccountCategory attribute. 1. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In Quick Find, find and select **Context Definitions** under Context Service. 3. Select **Extend** from the quick actions menu for **CommerceProductDiscoveryContext**. 4. Enter **ExtendCommerceProductDiscoveryContext** as the name of the extended context definition, and save your changes. The extended context definition is listed in the Custom Definitions tab under Context Definitions. Add the **AccountCategory** attribute to the extended context definition. Changes made to the context are visible within the Structure tab of the extended context definition. 5. Click **Map Data**. 6. Select **Edit SObject Mapping** from the quick actions menu for CommerceProductQrMapping. 7. Select the account node, and map the AccountCategory attribute. ![Screenshot of CommerceProductQRMapping with AccountCategory field](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_qualificationrules_qrmapping.png) 8. Save your changes, and activate the extended context definition. 4. Update decision tables to look up the qualification rules. 1. In the App Launcher, find and select **Lookup Tables**. 2. Select **Commerce Category Disqualification Decision Table**. 3. Deactivate the decision table. You cannot edit an active decision table. 4. Click **Edit**. 5. Add a lookup field corresponding to the AccountCategory attribute you created earlier. ![Screenshot showing AccountCategory added as a field in the decision table](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_qualificationrules_decisiontable.png) 6. Save your changes. You can view the updated table from the Table tab of the decision table. 7. Activate the updated decision table. 5. Associate the extended context definition with a qualification procedure. 1. In the App Launcher, find and select **Qualification Procedures**. 2. Select **Commerce Default Qualification Rule Procedure**. 3. Click **Edit**. 4. Select the context definition you created earlier, to associate it with the qualification procedure. 5. Save your changes. 6. Add the custom attribute to the qualification procedure. 1. Click Commerce Default Qualification Rule Procedure under Qualification Procedure Versions. 2. Add the AccountCategory attribute to the Category Disqualification element. 3. Save your changes and activate the qualification procedure. 7. Update the procedure plan. 1. At the top of the page, click ![Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In Quick Find, find and select **Procedure Plan Definitions**. 3. Select **Default PQ Procedure Plan Definition**. 4. Deactivate the procedure plan. 5. Select the updated context definition and qualification procedure. 6. Save your changes and activate the procedure plan. #### See Also - [Manage Qualification Rules for Products in Revenue Cloud](https://help.salesforce.com/s/articleView?id=ind.product_catalog_qualification_rules.htm&language=en_US) - [Manage Qualification Rules for Products in Revenue Cloud](https://help.salesforce.com/s/articleView?id=commerce.comm_qualificationrules.htm&language=en_US) # Exception Not Thrown When Building a To-One Relationship Under some rare, specific conditions, exceptions of type `ORMMandatoryException: Can't unset mandatory to-1 relationship` were thrown if the target object didn't change. This issue has been fixed, eliminating some errors that occur when customers place orders. # Exchanges with RMA Returns Overview An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer. - **[Exchanges with RMA Setup](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_setup.htm&release=264.0.0&type=5)** After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns. - **[Place an Exchange with an RMA Return](https://help.salesforce.com/s/articleView?id=commerce.om_uneven_exchanges.htm&release=264.0.0&type=5)** Place a post-fulfillment exchange when a shopper or buyer needs to substitute a product after it has already been fulfilled. These exchanges can be uneven, so the new product doesn’t always have the same value as the original product. In this case, the exchange results in a refund or additional funds owed. - **[Close a Return Order for Exchange with RMA](https://help.salesforce.com/s/articleView?id=commerce.om_close_exchange_rma.htm&release=264.0.0&type=5)** After you've received the returned order items from your exchange, you can close the return order. Closing the return order completes the return portion of the exchange. The funds necessary to fund the new products only become available after the return order is closed. #### See Also - [Uneven Exchanges API Flow Implementation](https://developer.salesforce.com/docs/atlas.en-us.248.0.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_exchanges_playbook.htm) # Exchanges with RMA Setup After you have installed and configured either an Order Management, B2B Commerce, or D2C Commerce org, configure Exchanges with RMA Returns. To set up Exchanges with RMA, complete these steps in order. 1. [Set Up Prerequisites for Exchanges RMA](https://help.salesforce.com/s/articleView?id=commerce.om_complete_prereq_exchanges_rma.htm&release=264.0.0&type=5 "There are a few prerequisites necessary before you can set up Exchanges with RMA for your org.") 2. [Activate the Exchanges with RMA Flow Template](https://help.salesforce.com/s/articleView?id=commerce.om_activate_exchanges_rma_flow.htm&release=264.0.0&type=5 "The Exchanges RMA flow lets a customer service representative create even, uneven, and post-fulfillment exchanges. To use the flow, copy and activate the flow template, and then clone or customize the flow as needed.") 3. [Configure Flow for Exchanges with RMA](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_flow_ensure_funds_refunds.htm&release=264.0.0&type=5 "Exchanges with RMA support both EnsureFunds and EnsureRefunds. These variables must be configured properly in your org.") 4. [Add the Exchanges with RMA Flow to an Object Page](https://help.salesforce.com/s/articleView?id=commerce.om_add_exchanges_rma_flow_object_page.htm&release=264.0.0&type=5 "Give customer service representatives easy access to the Exchanges RMA flow by adding it to the Actions & Recommendations component on a Lightning page for an object. Because all orders are associated with an order summary, add the flow to the Actions and Recommendations component on the order summary page.") 5. [Add Country and State Picklists](https://help.salesforce.com/s/articleView?id=commerce.om_add_country_state_picklists_oobo.htm&release=264.0.0&type=5 "To let customer service representatives (CSR) select state and country codes for an address from a dropdown menu, enable state and country picklists. If you don’t enable picklists, the CSR must enter the state and country code into the address, which can introduce errors.") 6. [Connect B2C Commerce and Salesforce](https://help.salesforce.com/s/articleView?id=commerce.om_connect_b2c_and_salesforce_oobo.htm&release=264.0.0&type=5 "To get product and pricing data from B2C Commerce, set up a connection between B2C Commerce and your Salesforce org.") 7. [Add a Web Store Inventory Source for Exchanges with RMA (B2C Only)](https://help.salesforce.com/s/articleView?id=commerce.om_webstore_inventory_source_exchanges_rma.htm&release=264.0.0&type=5 "To use reservations when adding a new item to an exchange order, add a web store inventory source. Reservations help reduce out-of-stock errors by holding a product as soon as it’s placed in a cart.") 8. [Payments for Exchanges with RMA](https://help.salesforce.com/s/articleView?id=commerce.om_payments_exchanges_rma.htm&release=264.0.0&type=5 "Because an exchange can result in a partial refund for the customer, you must configure payments to process this refund. You can find payment activity in the order payment summary for each order.") #### See Also - [Exchanges with RMA Returns Overview](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_overview.htm&release=264.0.0&type=5 "An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer.") # Exit Business Manager Sessions Without Auto Reauthentication You are no longer automatically logged into Account Manager or Business Manager again to reauthenticate when you end a session. Previously, accounts linked to Salesforce were automatically reauthenticated, making it difficult to exit the application if you're using unified authentication. **Where:** This change applies to B2C Commerce. # Experience a More Efficient Workflow with the Control Center Lightning UI The updated Control Center UI now aligns with Salesforce Lightning Design System (SLDS) standards. This update enhances the user experience with a more consistent design. Users can still access the same workflows while enjoying a refreshed interface. The new Lightning UI is the Control Center default option and is widely used by the majority of customers. Except for the audit logs, this update removes all links to the Classic UI. To access the Control Center Lightning UI, See [Control Center UI](https://controlcenter.commercecloud.salesforce.com/). # Experience Improved Rule-Based Categorization Rule-based categorization import and export is more efficient and accurate. It handles special characters better and export processes now automatically default to x-default when encountering an undefined locale. # Expiring API Access Token Notification If you use API access tokens, you now receive email notification of their pending expiration. Why: This feature help you manage your API access tokens and avoid unexpected expired tokens. How: Email notifications about expiring API access tokens are sent in these intervals before the expiration date. - 90 days - 60 days - 45 days - 30 days - 15 days - Every day less than 15 days # Explain Order Routing Decisions with AI Tools Ask why an order was routed to a specific location, and why it split, without reading logs or filing a ticket. With headless Order Management, the AI client reads the recorded routing explanation and returns the winning rule, the competing scores, and a per-shipment reason. ### Required Editions
View supported editions.
Understanding a routing outcome normally means reading logs or escalating to someone who can. With headless Order Management, an analyst or a service agent can ask why an order was routed the way it was. The answer is an authoritative, plain-language reading of the recorded routing decision. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Because an AI client uses large language models, which are probabilistic, results can vary from one run to the next. If you get an unexpected result, describe to the agent what happened so that it can help you diagnose and adjust. You don't need a specific model. ## Scenario Northern Trail Outfitters ships from a network of stores and distribution centers. Sam, a supply chain analyst, gets a question about why a single order was shipped from two locations instead of one. Rather than pull logs, Sam asks the AI client why the order was routed and split the way it was. In seconds, the agent returns the routing explanation. It shows which rule won, the scores of the competing locations, and how an override rule outranked a higher proximity score for one shipment. A service agent later uses that explanation to give the customer a plain-language summary of why the order arrived in two packages. The summary leaves out internal rule details. ## Requirements Complete the shared setup in [AI Agent Use Cases for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_steelthread_overview.htm&release=264.0.0&type=5 "Use an AI agent to set up Order Management and complete common Order Management tasks conversationally, such as finding and canceling order items."). This use case also needs: - Order Management configured with locations, location groups, and a live routing rule group for at least one region. - A rule group that includes proximity, overstock, and override rules, so the agent can explain both consolidated and split outcomes. - The Order Management Agent or Order Management Operations Manager permission set. If your org doesn't include Omnichannel Inventory, use Order Management: Agent without Omnichannel Inventory or Order Management: Operations Manager without Omnichannel Inventory. The routing-explanation functionality comes from the **Salesforce Order Management APIs** (Generally Available), which read the recorded routing explanation for an order. Recommended for supply chain analysts who validate routing behavior and for service agents who explain outcomes to customers. Assumes familiarity with fulfillment routing rules and location scoring. ## Agentic Tips - Describe your goal in your own words. For example: - "Why was order 00035107 fulfilled from the Dallas location?" - "Why did this order split into two shipments?" - "Explain the routing decision for order 00035107 in plain language I can share with the customer." - Include the order number. For a customer-facing summary, tell the agent to leave out internal rule details. - Have the agent explain the routing decision. Ask for the explanation, and then ask the agent to rephrase it as a customer-safe summary when you need one. - Don't approve a change. The routing explanation is read-only. - Avoid pasting credentials into a prompt. The agent acts as your authenticated user through the connected org. ## Design Considerations - The routing explanation is read-only. The agent explains a past routing decision. It doesn't re-run or change routing. - The recorded routing decision is the same for the analyst and the service agent. The agent reads that decision back, so both always see the same authoritative result. ## Explain a Routing Decision Ask why an order routed to a location, and why it split. ### Required Editions
View supported editions.
1. Confirm that your AI client is connected to Order Management as an authenticated user with read access to the routing explanation. 2. Ask the agent why an order was fulfilled from a particular location and shipped as one package. The agent retrieves the routing explanation. It shows which rule won, the scores of the competing locations, and the inventory context that led to a consolidated shipment. For an order that split into multiple shipments, ask why it split instead. The agent explains each shipment separately: why each item routed to its location, and how an override rule outranked a higher proximity score. 3. To brief a customer, ask the agent for a plain-language summary that leaves out internal rule details. The agent returns the routing explanation for the order you asked about. The explanation includes the winning rule, the per-rule contributions, and, for split orders, a per-shipment reason. # Export and Review Order Data Point of Sale offers data export options, such as Transaction Log (TLog) Export, Store Inventory Delta Export, and Electronic Journal Data Export. Data exports help retailers analyze transaction data, track inventory changes, and manage electronic journal information. By leveraging these exports, retailers gain valuable insights into their operations, optimize processes, and make data-driven decisions. Use TLog to review and analyze order data. - **[TLog Export FAQs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog_export_faq.htm&release=264.0.0&type=5)** Find answers to frequently-asked questions about the Point of Sale TLog export. - **[TLog FAQ](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog_faq.htm&release=264.0.0&type=5)** Find answers to frequently-asked questions about the Point of Sale TLog. - **[Benchmarks and Best Practices for Orders and Transaction Export](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog_benchmarks.htm&release=264.0.0&type=5)** Exporting orders and transactions from POS to an external system can be done in multiple ways. Learn about the various export options available, and understand the specific artifacts that can be exported. You can integrate POS data with other systems. Having the flexibility to export orders and transactions ensures comprehensive data management. - **[Export Store Inventory Delta](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_store_inventory.htm&release=264.0.0&type=5)** Export only the changes to your Point of Sale store inventory to improve efficiency and save time. The Store Inventory Delta Export runs daily and exports inventory data from the previous day. With a focus on efficiency, you can maintain data continuity. - **[Schedule an Export Job for Electronic Journal Data](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_electronic_journal.htm&release=264.0.0&type=5)** Schedule export jobs for Point of Sale Electronic Journal data to extract and analyze transaction records. Exporting data regularly helps you gain insights into sales trends, customer behavior, and operational performance. You can then use these insights to optimize your retail strategies and improve decision-making. Schedule these jobs to automate the process and ensure that you always have access to the latest data. - **[Export Quiz Data](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_quiz_data.htm&release=264.0.0&type=5)** Schedule an export job in Point of Sale to extract quiz data that provides customer-relevant information. You can export data, such as customer IDs, question IDs, and updated quiz answer times. Use the exported data to analyze customer responses and improve engagement. # Export Commerce Data for B2B Stores Export up to 300,000 products to a CSV file. Only product columns, including product variations, are included in the export. Large exports can result in more than one CSV file. Filters and sorting applied to the product workspace are reflected in the export file. All product fields, both standard and custom, that appear in the workspace are included in the export file. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Exporting translations isn’t supported. Products are exported in the language in which they were created. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Products**. 3. Click **Export** from the dropdown menu. 4. Click **Start**. You’re notified when the export is complete. 5. To see the export status and download the CSV file, go to **Settings** | **Store** | **Export**. The export and import CSV files use the same header format. To make bulk updates, you can edit the export CSV file and then use it as the import CSV file. See [Import Data Using a CSV File to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_import_products_global.htm&release=264.0.0&type=5 "Import up to 10,000 products and related entities in bulk using a CSV file. Use the imported products in your B2B stores."). # Export Controls Notice In compliance with export control and economic sanctions laws and regulations where Salesforce operates, service to and from Cuba, Iran, North Korea, Syria, the regions of Crimea, Luhansk, or Donetsk is restricted without prior government authorization. As a result, customers, merchants, and shoppers from restricted locations are unable to access Salesforce-supported sites. # Export Documents in CMS The Document Export feature lets merchants export documents, such as finance contracts, as PDF files to their SFTP or FTP servers. By configuring an export job in CMS, you specify key details such as the destination and file naming. Contract files convert to PDF, transfer to Retail Cloud's backend, and forward to your specified server. You can also update or delete export jobs as needed. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Point of Sale plans to deprecate support for ExaVault. Merchants who still require a way to export documents are recommended to use the Document Export feature instead. 1. In CMS, navigate to **Feeds** | **Export Document.** 2. Configure the export as follows: 1. Configuration Type: Select the type of export protocol (e.g., SFTP, FTP). 2. Export Destination URL: Enter the full URL for the server where files will be exported (e.g., ftp://predictspring.exavault.com) 3. Port: Specify the port number used for communication with the server (e.g., 22). Common port numbers include 21 for FTP and 22 for SFTP, but this may vary depending on your server configuration. 4. Username: Provide the username required to log in to the export destination portal. 5. Password: Enter the corresponding password for the export destination portal. 6. Folder: Specify the folder path on the server where the exported files will be stored (e.g., /logs/cyclecount). Important: This path is case-sensitive and must match the directory structure on the server. 7. File Name Suffix: Add a suffix to the exported file’s name for identification purposes (e.g., -daily-report). 8. _(Optional)_ Send E-Receipt: Enable this option to send an email receipt for the order.![A dialog shows the options for document export.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_export_docs.xml.png) 3. Click **Update** to save the export configuration. 4. To delete the export, click **Delete**. # Export Multiple Sites and Locales in a Single CSV Export File You can now export multiple sites or locales in a single CSV file. # Export Quiz Data Schedule an export job in Point of Sale to extract quiz data that provides customer-relevant information. You can export data, such as customer IDs, question IDs, and updated quiz answer times. Use the exported data to analyze customer responses and improve engagement. For information on how to create a quiz, refer to [Create a Quiz](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_quizzes_create.htm&release=264.0.0&type=5 "Use quizzes in Point of Sale to understand your customers' preferences and gather valuable data. Create engaging quizzes, forms, or polls to capture user feedback and information. Add surveys after successful checkouts and include mandatory questions to ensure you get the data you need. You can create quizzes that will allow users to answer a question and see the results of the poll in real-time after submitting their answer."). ## Set Up Field Mappings Field mapping is optional, but it allows you to export quiz data into your merchant-specified fields, ensuring readability on your side. If no field mapping is configured, Point of Sale's backend will use the following default header names for export, which will appear in TLogs: `CustomerID, OrderID, ProductID, UpdatedOn, QuestionID, QuestionText, Answer` If mappings are configured, Point of Sale's backend will use the fields specified under PS Field and generate the query to retrieve the data accordingly. Please note that the backend will always query the following fields: `_ProductIds, _TlogCustomAttributes, _ProductNames` But the above fields will only be added to the TLog if mapping is configured. 1. In CMS, go to **Feeds** | **Field Mappings** | **Export Quiz**. 2. Under PS Fields, map the fields to your fields under Output Fields. ![A screenshot shows the mapping of Point of Sale fields to output fields.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_export_quiz_data_map.png) 3. Fields under Output Fields can be added in multiple ways (manually, uploading file, or using default mappings) by clicking the blue icon next to Output Fields. ![A screenshot shows the options for output fields.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_export_quiz_data_output_fields.png) 4. Save your changes. ## Schedule an Export Job for Quiz Data Scheduling export jobs is similar to scheduling feeds. For the basics of creating scheduled jobs in the CMS refer to the article on [Schedule Feed Runs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule."). 1. In the CMS, go to **Feeds** | **Export Jobs**. 2. Click on the + icon to create an export. 3. Select **Quiz Responses**. 4. Under Quizzes, select one or more quizzes to export their data. 5. Complete the rest of the fields by referring to [Schedule Feed Runs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule.") and click **SAVE**. ![A screenshot shows the settings for a scheduled quiz data export.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_export_quiz_data_schedule.png) 6. Back in CMS, go to **Store Management** | **Store Settings** | **Advanced**. 7. Under Quiz, toggle on the flag, Use filename pattern configured in CMS. By enabling this feature, the exported file will be properly named with the date and time configured. Save your changes. ![A screenshot shows the flag use for name pattern configured in CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_export_quiz_data_flag.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note An example file of the exported data can be found at [Example Quiz Export Data](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_quiz_data.htm&release=264.0.0&type=5). ## Known Issues & Restrictions As part of the 8.10.1 app build, the pre-checkout quiz was adjusted to include the CartID instead of the OrderID. In general, the CartID and OrderID will match. However, in some cases, they will not match if there was an error with the cart conversion and a new OrderID ends up being created during execution. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Example Quiz Export Data: [sample quiz export data.csv](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/sample-quiz-export-data.csv) # Export Store Inventory Delta Export only the changes to your Point of Sale store inventory to improve efficiency and save time. The Store Inventory Delta Export runs daily and exports inventory data from the previous day. With a focus on efficiency, you can maintain data continuity. ## Set Up the Store Inventory Delta Job 1. In CMS, go to **Feeds** | **Export Jobs**. 2. Create a new job by clicking on the + sign. 3. Select Store Inventory Delta. 4. Fill out the required fields. See [Configure and Manage Export Jobs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_export_jobs.htm&release=264.0.0&type=5 "Use export jobs to extract data from Point of Sale by using Secure File Transfer Protocol (SFTP). Configure and schedule these jobs in CMS to automate data extraction, and monitor their progress in the Export Logs for timely, efficient data retrieval.") for instructions on how to do so. ![A screenshot shows the settings for a store inventory delta export.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_export_store_inventory_settings.png) 5. Click **SAVE.** ## Update Store Inventory When placing an order in the POS app, adjusting the product’s store inventory or [uploading a store inventory feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_store_inv_price.htm&release=264.0.0&type=5 "The Point of Sale store inventory feed is used for the Find-In-Store feature. On the PDP, a user can opt to see if a product is available in a nearby store.") in CMS will refresh the inventory data. When the Store Inventory Delta Export is running, it will export the updated products with the field mappings if configured. ![A screenshot shows the field mapping for a store inventory delta export.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_export_store_inventory_field_mapping.png) ## Check the Exported File To check an exported file, access the destination folder you configured when setting up the Store Inventory Delta Job. Check the latest exported file by verifying the updated products and exported columns. ![A screenshot shows an example store inventory delta export.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_export_store_inventory_export_example.png) # Exporting Inventory Events in Point of Sale CMS Create an inventory export event in the CMS to export inventory data from the Retail Cloud Backend via Secure File Transfer Protocol (SFTP). # ExportOrders Job Step Order Status Behavior Updated Three parameters on the ExportOrders job step have changed. The Export Status default value is now `Ready for Export`, and the Created and Failed parameters have been deprecated. #### See Also - [Job Step ExportOrders](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/DWAPI/jobstepapi/html/api/jobstep.ExportOrders.html) # Expressions in Commerce Components Expression Language is a specialized syntax that pulls data into an LWR component in Experience Builder. You can use expressions instead of static text to make your B2B store more customized and dynamic. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Custom expressions aren't supported inside Nested Expressions. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Adding an Expression to a Commerce Component](https://help.salesforce.com/s/articleView?id=commerce.comm_components_expressions_add.htm&release=264.0.0&type=5)** Enter expressions into any LWR component on a page with data providers. In some components, you can select an expression from a provided list. You can also combine expressions or add values. - **[Control When a Commerce Component Is Visible](https://help.salesforce.com/s/articleView?id=commerce.comm_expressions_visibility.htm&release=264.0.0&type=5)** Create dynamic visibility rules to control when a component is visible on the storefront. Use Expression-Based Visibility (EBV) to show and hide storefront components based on ecommerce data-driven conditional expressions. - **[Create Multiple Versions of a Commerce Component](https://help.salesforce.com/s/articleView?id=commerce.comm_expressions_variation.htm&release=264.0.0&type=5)** Create multiple versions of a component, and assign visibility rules to target specific customer groups with each variation. Use Component Variations to tailor the shopping experience for different customers. - **[Data Expressions for Commerce Cart Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components_expressions_cart.htm&release=264.0.0&type=5)** Use these data expressions in any component on the cart page. - **[Data Expressions for Commerce Order Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components_expressions_order.htm&release=264.0.0&type=5)** Use these data expressions in any component on the order summary details page of your B2B store. - **[Data Expressions for Commerce Product Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components_expressions_product.htm&release=264.0.0&type=5)** Use these data expressions in any component on the product page of your B2B store. - **[Data Expressions for Commerce Search Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components_expressions_search.htm&release=264.0.0&type=5)** Use these expressions in any component on the Search page of your B2B store. - **[Data Expressions for Commerce User Fields](https://help.salesforce.com/s/articleView?id=commerce.comm_components_expressions_user_fields.htm&release=264.0.0&type=5)** Use these data expressions on any LWR store page. #### See Also - [Use Expressions to Add Dynamic Data to LWR Sites](https://developer.salesforce.com/docs/atlas.en-us.exp_cloud_lwr.meta/exp_cloud_lwr/advanced_expressions.htm) # Extend Combining and Excluding Promotions with New Attributes Three new attributes provide you with extended promotion exclusivity and combinability. To make grouping promotions easier, add promotions to Exclusivity Groups. Then set individual promotions or entire Exclusivity Groups as Combinable Promotions or Mutually Exclusive Promotions. # Extend Payment Processing with Salesforce Payment APIs Use the new Salesforce Payment APIs to connect with third-party order management systems or platform-specific custom features. The APIs support capture, cancel, refund, and updates. For example, you can directly cancel or refund a payment in an order failure event by cleaning up payment authorizations. The APIs are available as Script APIs. # External Credit Card Reader Transactions Use an external credit card reader that isn’t connected to the Point of Sale app to process sales and refunds. This article outlines the setup and usage of the POS with an external credit card reader that is not meant to be connected to the POS. Such a credit card reader requires the manual input of certain values while processing both sales and refunds. ## Prerequisites - Modern POS App build: 5.12.3 and later - Platform Support: iPad only - Offline Support: yes ## CMS Setup To use an external credit card reader in an app, select External from the list of Card Readers For Store Associate Checkout for that app.![The External option checked in the Supported Card Readers for Store Assocaite Checkout wndow in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_external_card_cms_setup.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note You’ll also want to set the default card reader as External as well. To add credit card types, go to **Store Management > POS Store Settings** in the CMS. Type in a list of card type names for the value of **Applicable Credit Card Types**.![The Applicable Credit Card Types setting in the POS Store Settings section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_applicable_card_types.png) ## POS App Setup To set the card reader to External from within the app, select Choose Reader from the sidebar menu. Then, make sure External is selected in the list in the middle of the screen, as shown.![The Choose Card Reader window in the POS app, with External selected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_external_card_app_setup.jpeg) ## POS App Sale Flow If making a sale that'll be paid for with a credit card, you'll be presented with a form requiring these pieces of information: - Amount - Card Type - Last Four Digits of Card - Authorization Code While this form is presented, carry out the transaction on the external card reader. After the transaction is complete, the card reader provides the authorization code. As shown, this form will be presented both in multitender mode and only if a single credit card is used to pay![The Add Card window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_external_card_pos_flow.jpg).![The Authorization window after you add your card and try to make a payment.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_external_auth_card.jpg) ## POS App Refund Flow If processing a refund with an external card, a similar form with this information shows: - Amount - Card Type - Last Four Digits of Card - Authorization Code - First Name - Last Name - Email (optional)![The Authorization window that shows in the POS app when you enter your card information to get a refund.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_refund_authorization.jpeg) # Fail Order Process Optimization The order failure process is optimized to reduce inventory lock times. This improvement increases order throughput in high-load situations by up to 400%. #### See Also - [OCAPI 20.3 diff since 20.2](https://documentation.demandware.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2FOCAPI%2Fcurrent%2Fv20_3_diff_since_v20_2.html&cp=0_12_1_0) - [OCAPI 20.3 usage](https://documentation.demandware.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2FOCAPI%2Fcurrent%2Fusage%2FOpenCommerceAPI.html&cp=0_12) # Faster Stores Page Performance B2C Commerce has significantly improved the performance of the Stores page in Business Manager. Users now experience much faster load times when searching for stores and viewing search results. This enhancement makes it easier and more efficient for merchandisers to manage, search, and update stores within the Business Manager module. Previously, users encountered performance issues when displaying 200 results per page in the Business Manager store module. # Feature Switches (Toggles) Review the new B2C Commerce Feature Switch (Toggles) features in the 20.9 release. - **[Use the 404 Error Caching Feature Switch](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_w7883524_404_ft_mjb.htm&release=264.0.0&type=5)** Customers with administrator access can now manage feature switches (toggles) for web tier caching of 404 error responses. - **[Use the Web Adapter Cache Key Ignore Feature Switch](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_w7888302_wa_cache_key_ignore_ft_mjb.htm&release=264.0.0&type=5)** Customers with administrator access can now edit the Web Adapter Cache Key Ignore feature switch (toggle) to manage the caching of query strings. # February 2024 SCAPI Features - Shopper Search - With B2C Commerce 23.3: - The select query parameter in the [Product Search API](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=productSearch) endpoint filters the response payload by a specified field or set of fields. This allows you to focus on the data that's important to you and improve page loading speed. - Save time and improve product listing page (PLP) performance by using the enhanced [Product Search API](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=productSearch) endpoint. Use the new optional expansion on the Product Search API endpoint to retrieve product metadata and avoid the use of additional API calls to Get Products. Use these features to provide the additional information needed to render your PLP: - Allowable value: promotions value in the expand query parameter - Query parameters: `perPricebook`, `allImages`, and `allVariationProperties` - Responses: `productPromotions`, `imageGroups`, `priceRanges`, `tieredPrices`, `variants`, and `variationGroups` - Shopper SEO - With B2C Commerce 24.3: - Updated getUrlMapping to support [URL redirects](https://help.salesforce.com/s/articleView?id=cc.b2c_url_redirects.htm&language=en_US). For more information, see the [URL Resolution guide](https://developer.salesforce.com/docs/commerce/commerce-api/guide/url-resolution.html). - Updated [getUrlMapping](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-seo?meta=getUrlMapping) to support the following hooks: `dw.shop.seo.url_mapping.beforeGET` and `dw.shop.seo.url_mapping.modifyGETResponse`. - With B2C Commerce 24.2: - Updated getUrlMapping's response to include the optional property `resourceSubType`, which indicates whether the resolved object is a Page Designer content asset or a Content Slot asset. - Custom APIs - With B2C Commerce 24.2, Salesforce Commerce Cloud now provides a new framework that enables you to write custom B2C commerce script code, such as controllers, and expose this functionality as a custom REST API endpoint under the SCAPI framework. Those custom API endpoints accept the same AuthN/AuthZ model as our Shopper and Admin APIs. - With the transition from Beta to General Availability (GA), future changes to B2C Commerce Custom APIs will follow our [change policy](https://developer.salesforce.com/docs/commerce/commerce-api/guide#change-policy). - If you are new to Custom APIs, see [Custom APIs](https://developer.salesforce.com/docs/commerce/commerce-api/guide/custom-apis.html) as a starting point. - New features (non-breaking changes) not included in the Beta: - Added the [RestResponseMgr Script API class](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/upcoming/scriptapi/html/api/class_dw_system_RESTResponseMgr.html) to simplify writing custom APIs. - Added support for local references of [shared objects](https://developer.salesforce.com/docs/commerce/commerce-api/guide/custom-api-components-references.html) in the API contract. - Added support for the `AmOauth2` method for Admin APIs. For details, see [Custom API Authentication and Authorization](https://developer.salesforce.com/docs/commerce/commerce-api/guide/custom-api-authentication.html). - If you participated in the Custom APIs Beta, the transition to General Availability causes the following BREAKING changes. Review and update your code as needed: - Custom endpoints now require custom scopes. For details, see [Scopes](https://developer.salesforce.com/docs/commerce/commerce-api/guide/custom-api-authentication.html). - Storefront quota limits are now enforced. Review these limits and fix any errors. For details, see [API Quotas](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/quota/html/API_Quotas.html). The quota limits relevant for Custom APIs are the ones marked as `Storefront Limit`. - We've added Circuit Breaker functionality that is similar to what exists for hooks to Custom APIs. This is a protective measure that blocks API requests when the error rate is too high. For details, see [Circuit Breaker](https://developer.salesforce.com/docs/commerce/commerce-api/guide/custom-api-circuit-breaker.html). B2C Commerce Custom APIs support HTTP GET requests as well as DELETE, HEAD, and OPTIONS. Future transaction support with POST, PUT, PATCH is being planned. - Shopper BasketsWith B2C Commerce 24.1, [Shopper Baskets V2](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets-v2?meta=Summary) is available. - Custom Request Headers - Developers can send custom request headers that are passed and made available in server-side custom implementations. - The required pattern is: `c\_{yourHeader}`. - [Update order](https://developer.salesforce.com/docs/commerce/commerce-api/references/orders?meta=updateOrder) now supports the ShopperTokenTsob security scheme. - Introduced new load shedding functionality that: - If the system reaches a load threshold, an HTTP 503 response is returned for a subset of API families. - Covers APIs not covered by rate limits that are considered non-critical, for example: endpoints related to search, products, and authentication. Load shedding is not used for checkout-related endpoints, such as Shopper Baskets and Shopper Orders, to ensure that shoppers can complete an in-progress checkout. - Includes additional HTTP response headers that allow you to understand the current system load: `sfdc_load`, which represents a load percentage with higher percentages indicating higher loads, and `sfdc_load_status`, which is a enum `WARN|THROTTLE` that helps you understand the relative health of the system. - Replace Firewall Rules with New Custom Rules. For additional details, see: [eCDN Custom Rules](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-zones-custom-rules.html). SLAS - SLAS Admin UI: Added client name to the client list and detail pages. - SLAS API: Added support for the `DoNotTrack` (DNT) query parameter in token calls for headless customers. This is in preparation for a future SCAPI B2C Commerce rollout. Additional documentation will be provided. - SLAS to B2C Commerce Data consistency: Addressed a limitation around customer records synchronization between B2C Commerce and SLAS. - SLAS third-party IDP configuration is tolerant of missing `idToken` when refreshing third-party IDPs. For more detailed information, see[B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). # February 2024 PWA Kit and Managed Runtime Managed Runtime - Cookie Support - Use Runtime Admin to enable server-side cookies. This feature is available as an alternative to enabling server-side cookies by using the [Managed Runtime API](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/mrt-admin?meta=projects_target_partial_update). Using server-side cookies helps you enhance privacy and security and supports more tailored personalization and marketing. See [Personalize with Cookies](http://review-app-sdb2c-com-pr-1078.herokuapp.com/docs/commerce/pwa-kit-managed-runtime/guide/personalize-with-cookies.html). - Source Maps for Debugging - Use Runtime Admin to enable source maps. This feature is available as an alternative to enabling source maps by using the Managed Runtime API. Source maps are designed to greatly improve the development and debugging experience by enhancing error stack readability. See [Debug Using Source Maps](https://review-app-sdb2c-com-pr-1036.herokuapp.com/docs/commerce/pwa-kit-managed-runtime/guide/debugging.html#debug-using-source-maps). # February 2025 SCAPI, OCAPI, and SLAS For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI: - Runtime version update for internal SCAPI supporting applications. No customer impact is anticipated. - - API request path validation now identifies empty path segments and handles them consistently across various components. - Support added for CORS headers with ports. - Update to the 01/07/2025 correlation ID header announcement: The new `sfdc_correlation_id` response header for the SCAPI Correlation ID is now fully enabled for SCAPI on all instances: - On sandbox and development instances, the deprecated `x-correlation-id` response header is no longer returned. - On staging and production instances, the deprecated `x-correlation-id` response header is still available, but is subject to removal in a future release. - Security updates. No customer impact is anticipated. - With B2C Commerce version 25.2: - The [Shopper Search](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=Summary) and [Shopper Products](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-products?meta=Summary) APIs now support Page Meta Tag Rules. You can create Page Meta Tags in Business Manager (Merchant Tools > SEO > Page Meta Tag Rules) using a rule-based approach to enhance storefront pages with unique meta tag content and increase the SEO value across Product List Pages (PLPs) and Product Detail Pages (PDPs). A new optional `page_meta_tags` expansion, which controls the inclusion of page meta tags rules, has been added to `/product-search` and `/products`. OCAPI: - With B2C Commerce version 25.2: - Fixed an issue with the [createScapiRemoteInclude()](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/scriptapi/html/index.html?target=class_dw_system_RemoteInclude.html) script functionality when used in combination with a Shopper API. As an example, this led to a 500 exception during the use of the Shopper Baskets API. SLAS: - [SLAS 4xx Logs](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#view-slas-error-logs-in-log-center) are now available in Log Center. Log information includes the `correlationID`, which you can use for end-to-end request tracking. - SLAS now supports custom query parameters for the [/login](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-login?meta=authenticateCustomer) endpoint. - SLAS now supports merging claims for [Azure IDP](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-identity-providers.html#supported-identity-providers). - The SLAS [PasswordReset](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-password-reset.html#slas-password-reset-flow) flow no longer requires PKCE. You can now make password reset requests using the new, optional `hint` query parameter instead of a Proof Key for Code Exchange (PKCE) `code_challenge` and `code_verifier`. For details, see [Password Reset](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-password-reset.html). - Improved error handling and validation to return more meaningful error messages for [Auth0 IDP](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-identity-providers.html#supported-identity-providers). - The `channel_id` (site) parameter is now required when requesting a guest access token with a `grant_type` of `client_credentials`. This change enhances security by preventing unauthorized access across different storefronts. Existing customers must update their implementation to include the `channel_id` parameter in the client credential call in guest flows. For details, see [Guest Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#guest-tokens). - The original schedule was 09/01/2024 for all sandbox tenants and 10/01/2024 for all other non-production tenants. We will now implement this change for all non-production tenants starting 02/10/2025. - As of 02/10/25, we are now strictly enforcing the [documented rate limit](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#slas-rate-limits) of 25 requests per minute (RPM) for the [/jwks endpoint](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-login?meta=getJwksUri). - In preparation for the removal of the SLAS\_ORGANIZATION\_ADMIN (Account Manager API-Client) and SLAS\_TRUSTED\_AGENT\_READ\_ONLY (Account Manager User) Account Manager roles, these roles were removed from the SLAS code base. Because these roles were never made available for SLAS production use, no customer impact is anticipated. - Additional performance improvements included. # February 2025 PWA Kit and Managed Runtime **PWA Kit–Support for Social Login** This feature is generally available from Retail React App version 6.0. Improve shopper experience with reduced implementation time. With social login, shoppers can quickly log into your site and create profiles by using their social network accounts. See [Implement Social Login](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/social-login.html). **PWA Kit–Support for Password Reset** This feature is generally available from Retail React App version 6.0. Improve shopper experience with reduced implementation time. With password reset, if shoppers forgot their password, they can use a verification code or a link in an email or text to regain access to their account by creating a new password. See [Implement Password Reset](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/password-reset.html). **PWA Kit–Support for Passwordless Login** This feature is generally available from Retail React App version 6.0. Improve shopper experience with reduced implementation time. With passwordless login, shoppers can securely log into your site using a verification code or a link in an email or text instead of a password. See [Implement Passwordless Login](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/passwordless-login.html). **PWA Kit–Tracking Consent Banner** A tracking consent banner is generally available with Retail React App template version 6.0 or later. Preserve shopper trust and reduce implementation costs. With the tracking consent banner, your shoppers can opt in or out of activity tracking on your site. See Protect Privacy with a [Tracking Consent Banner](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/tracking-consent.html). **Managed Runtime** You can now deploy your PWA Kit projects with [Node 22!](https://nodejs.org/en/blog/announcements/v22-release-announce) To update your Node.js version, follow the instructions in [Upgrade Node Version](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/upgrade-node-version.html). Every year, versions of Node.js exit formal support. To ensure a strong security posture and smooth developer experience, we restrict the Node version of projects deployed to Managed Runtime. Node 18 has an end-of-life date of September 1, 2025. We strongly recommend that you upgrade your production projects well ahead of the end-of-life date. Depending on your PWA Kit version, you can update to Node 20 or 22. # February Build Summary ( 8.8.1) Build summary for Modern POS version 8.8.1, including what new features and changes it contains. ## Overview of all Features and Changes | Theme | Feature | | --- | --- | | Reporting | [PBL reporting](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Reporting | [Date selector for Recon report](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Promotions | [Best Price Promotion](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Promotions | [Promo Max discount](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Promotions | [Coupon Warning in Cart](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Product Cell | [Product cell configuration with customized (CMS) list of product properties (Except interstitial, Inventory, and BOPIS screens)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Omni | [SPI for shipping options](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Core POS | [Predictive Cash Tendering](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Core POS | [Quote Deeplink and Search](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Inventory | [Inventory Enhancements: QTYOH adjustment and Cycle Recount Labels](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Gift Cards | [Gift card support for SVS via Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Other Feature Enhancements | [Collection of customer-impacting feature enhancements made to optimize existing functionality](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | | Bugs | [Collection of customer-impacting bugs addressed in the month](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_8_1.htm&release=264.0.0&type=5) | ## Reporting ## Pay By Link **What it does**: Track and reconcile Pay By Link transactions at the store level or by all stores with our dedicated report. **Where to access**: [https://labs.salesforce.com.com/cms/pay-by-link-report](https://labs.salesforce.com.com/cms/pay-by-link-report) ![The Pay by Link screen in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_pay_link.png) **Learn More**: [Point of Sale Pay by Link (PBL) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_pbl_overview.htm&release=264.0.0&type=5 "Point of Sale's POS app offers Pay by Link functionality with two distinct payment flows. The In-Store Payment flow lets customers pay right away by scanning a QR code with their phone. The Remote Payment flow lets customers get an email link to pay later. Both payment flows are supported by Adyen and Verifone payment gateway terminals.") ## Date Selector for Recon Report **What it does**: See past 7 days for in-app sales report. This is a core update with no additional configuration required. **Where to access**: POS App - Reconciliation Report ![The Data Selector in the POS App Reconciliation Report.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_recon_report.png) **Learn More**: [Access Reconciliation Report on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_reconciliation_report.htm&release=264.0.0&type=5 "View key fields from from any of the past seven days in the reconciliation report and print it on a receipt printer.") ## Promotions ## Best Price Promotion **What it does**: Give your customers the best value in the cart when there are multiple promotions configured. **Example**: Merchant has two promotions active and applicable to the products in the cart. There is $600 of promotable products in the cart. If Best Price Wins is enabled, promotion #2 will be applied. - Promotion #1 - Get 15% off - Discount: $90.00 - Total: $510 - Promotion #2 - Spend $500.00, get $100 Off (Best price) - Discount: $100.00 - Total: $500 How to Configure: [https://labs.salesforce.com/cms/server-settings-all-v2?q=bestPriceWins](https://labs.salesforce.com/cms/server-settings-all-v2?q=bestPriceWins) ![The Best Price Promotion setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_best_price.png) Learn More: [Create Promotions in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_promotions.htm&release=264.0.0&type=5 "Create promotions and automatically validate those promotions in the Point of Sale (POS) app.") ## Promo Max Discount What it does: Gate the total $ amount of discount applied to an order for a percentage off or BOGO percentage off promotion. Example: In the following example, "Buy 3 chairs get a footstool for 50% off - up to $100 savings": Buying three chairs and a footstool for $100 will save $50. Buying three chairs and a footstool for $200 will save $100. Buying three chairs and a footstool for $250 will save $100 because even though the footstool is $125 with 50% off, the max discount was set at $100. How to Configure: [https://labs.salesforce.com/cms/promotion-v2/create/ORDER\_PERCENT\_OFF](https://labs.salesforce.com/cms/promotion-v2/create/ORDER_PERCENT_OFF) ![The Has Max Discount Per Promotion setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_promo_max.png) Learn More: [Create Promotions in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_promotions.htm&release=264.0.0&type=5 "Create promotions and automatically validate those promotions in the Point of Sale (POS) app.") ## Coupon Warning in Cart What it does: Notify the associate when a coupon is valid, applied to the cart but not applicable to the cart yet. If there is a change in the cart (e.g., adding qualifying products), and the promotion does become applicable then it will be automatically applied without having to scan or manually enter it again. ![The POS App with a Coupon Warning in the cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_coupon_warning.png) **Learn More**: [Create Promotions in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_promotions.htm&release=264.0.0&type=5 "Create promotions and automatically validate those promotions in the Point of Sale (POS) app.") ## Product Cell ## Customized Product Cell Configuration (Cart, Return, and Order History Only) What it does: Select and configure the titles and fields displayed and tracked in the Product Cell. You can also add a custom string if you have custom string fields mapped. (Please note changes will only apply to Cart, Return and Order History. Inventory, interstitial and BOPIS/BOFIS screen updates will be in the next release) How to Configure: [https://labs.salesforce.com.com/cms/server-settings-v2/pos/product](https://labs.salesforce.com/cms/server-settings-v2/pos/product) ![The Product CellAttribute Label Configuration page in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_cust_prod_cell.png) Learn More: [Configure Product Display Labels](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_product_display_labels.htm&release=264.0.0&type=5 "Select which product identifiers can be shown throughout the Point of Sale (POS) app to help confirm the items in an order for a faster and more efficient checkout process.") ## Omni ## SPI for Shipping Options What it does: Improve Omni Ship to Home orders with our Shipping Options SPI. This SPI shows the shipping cost and delivery times for a third party in a Point of Sale cart summary. How to Configure: [https://labs.salesforce.com/cms/server-settings-v2/pos/store-fulfillment](https://labs.salesforce.com/cms/server-settings-v2/pos/store-fulfillment) (requires 3rd party software for shipping data) ![The Omni Settings page in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_spi_omni.png) Learn More: [Configuration & Setup in API, SPI, & Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#configuration--setup) ## Core POS ## Predictive Cash Tendering What it does: Present cash-tender options for your sales associates to select from when taking cash payments. - The exact order amount will always be the first option. - The next multiple of 5 after the exact order amount. - The next multiple of 10 after the exact order amount. - The next multiple of 20 after the exact order amount. - The next multiple of 50 after the exact order amount. How to Configure: In CMS go to **Apps > All > Modules > Cart and Enable Predictive Cash Tendering** ![The Enable Predictive Cash Tendering setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_pred_cash_cms.png)![The Cash Payment window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_red_cash_pos.png) Learn More: [Predictive Cash Tendering](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_predictive_cash_tendering.htm&release=264.0.0&type=5 "Point of Sale's Predictive Cash Tendering improves efficiency during the cash tendering process. Enable the feature to allow the POS app calculate up to five predicted cash-tender amounts. Select a predicted cash tender amount or manually enter it in the text field.") ## Quote Search What it does: Search for a quote in the App by Customer information instead of scrolling through a list of saved carts. (Works for both Point of Sale and Netsuite created quotes. Only available Online.) How to Configure: Add Quote Lookup as a Deeplink in your hamburger menu or any other layout. ![The Search window in the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_quote_search.png) Learn More: [Create and Manage Customer Quotes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_create_manage_customer_quotes.htm&release=264.0.0&type=5 "Merchants can create and track customer quotes on the POS app. Each quote has a unique number and includes customer information. Store associates can work with customers on merchandise and pricing, either in-store or over the phone, and then email the quote for review or print it on A4 paper. Customers can save the quote, delete it, or complete the checkout process.") ## Inventory ## Quantity On-Hand Adjustment What it does: Enter quantity changes in inventory management in the App instead of having to choose +/- for each item difference. ![The Inventory Adjustment window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_on_hand_adj.png) ## Cycle Count Recount Tracker What it does: Cycle count recount function now shows as a label and tracks the number of recounts instead of a static icon in the app cycle count screen. ![The Cycle Count March window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_cycle_count_recount.png) ## Gift Cards ## SVS Support via Adyen What it does: Allow merchants to use SVS gift cards with their Adyen terminal Learn More: [Gift Cards via Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_gift_cards_terminal.htm&release=264.0.0&type=5 "Configure Point of Sale's Point of Sale (POS) to accept gift card payments, add value, cash out, and check balances, using a payment terminal. Merchants can select the integration approach that suits their needs, verifying all transactions are available through gateway reporting.") ## Other Feature Enhancements
Title Description Helpcenter link if applicable
Fiscalization for Spain Further fiscalization support for sequential order tracking for Spain Fiscalization Requirements for Spain
SFOMS v57 API supported - SFCC 23.1 support Salesforce Order Management and Commerce version compatibility.

Salesforce (SF) Order Management System (OMS) Integration Guide

Synchrony token pass through + cleanup Token rotation and optimizations to support refunds with Netsuite via Synchrony. NetSuite Integration Guide
Receipt Layout - Line Truncation Property Customizable line truncation setting for grid in Receipt Layout Receipt Layouts
Approval Policies - add search to listing results, improve validation, add unit tests, and refactoring Usability enhancement to search approval policies CMS Store Associate Approval Policies
Add 4 columns in download promotion csv Added fields to Promotion CSV download Discount type+ Percent off / amount off + Can be combined with + Promotion rules Known promotions Issues and Restrictions
Create Cycle Count - Update "productCategoryList" key to "partialCycleCountProductAttributeValueList" Partial cycle counts can now also include product attributes (e.g., color) Create Cycle Count in CMS
Deep Link - Add check gift card balance deep link Deeplink for check gift card balance Gift Cards Support in POS
Cycle Count - Add ability to cancel a cycle count that is in progress Ability to cancel cycle count in CMS Gift Cards Support in POS
Clienteling SPI - Update customer Updates to Clienteling SPI Configuration & Setup in API, SPI, & Webhook Specs
Field Mappings - Revert PS Field Values for Export Order Order Export Field Mappings Updated Export Orders Field Mappings
Store Settings - Add icon for the Promotion module Promotion Module added as menu item in Store Settings
ERP Config - Add custom field option: "Location" Location as custom field in ERP configuration
SFOMS Billing Address Billing Email Address as an available field in order creation payload for SFOMS
Add item promotion title for order history Show promotion title in order history
Fix purchase order start event not working Ability to track transfer started
Unique id for inv adjustment export file Inventory Adjustment Event IDs for tracking
ERP Config - add setting to enable/disable OMS as Master of Record Can enable OMS as Master of Record for all orders
Bugs
Title Description Helpcenter link if applicable
Associates - Fix missing column data: "recently processed order" Recently processed order now has data
Register build report data calibration Register Version Report Register Count Updates
Unable to change fulfillment type in editorder mode Bug fix for changing fulfillment type in edit order
Check # missing Check number is now populating data
Merchant Default Enhancement for Roles Default roles for newly created merchants
Incorrect behavior when normal and GC products are in the cart Corrected behavior to not show discount on a gift card
Reprint receipt issue: SFOMS syncOrder refactor Reprint receipt for PayByLink
Receipt Print Count Fixed receipt print count Print Tags Configuration
Quiz - bug fixes

Bug Fixes for:

Answers preselected on layout load

Answers automatically selected/deselected when the quiz is scrolled

Selected/Deselected images mismatch with actual state of answer

# February Build Summary (10.7.1) Build summary for Modern POS version 10.7.1, including what new features and changes it contains. | Feature | Benefit | | --- | --- | | **Analytics/Reporting** |   | | [Omit Nonmerchandise SKUs from Sales Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_7_1.htm&release=264.0.0&type=5) | Use the improved product class setting to exclude items like gift cards, warranties, and donations to maintain accurate sales-related metrics in reports. | | [Export Register Vitals via Webhook](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_7_1.htm&release=264.0.0&type=5) | You can now export your register's important data. This helps you find and fix any problems quickly to keep the system stable and reliable. | | **Integrations** |   | | [Apply Rewards with Synchrony Credit Cards Purchases](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_7_1.htm&release=264.0.0&type=5) | You can now look up available rewards and apply them during checkout for greater payment flexibility. | | **Inventory Management** |   | | [Validate Cart via SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_7_1.htm&release=264.0.0&type=5) | Allows the POS app to send a cart to a merchant's external system for validation before order placement. The SPI also reserves inventory, making sure that items are held for the customer until the order is confirmed. | | [Delivery Group Enhancements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_7_1.htm&release=264.0.0&type=5) | SPI has been enhanced to support new delivery date functionality, allowing you to decide which products support a delivery date picker and which won't. | | [Simplify CMS Inventory Reporting with Enhanced Filtering and Direct Email Delivery](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_7_1.htm&release=264.0.0&type=5) | Download the Inventory Overview report straight to your inbox for easy access and improved inventory management. | | [Streamline Inventory Management with Enhanced Filtering on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_7_1.htm&release=264.0.0&type=5) | Filter inventory by product keywords (title, description, ID, or variant), with results limited to 2,000 items. Additional filters by inventory bucket and condition (operation and value) permit grouping by product ID or variant group ID. | | [Other](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_7_1.htm&release=264.0.0&type=5) | Various | ## Analytics/Reporting ## Omit Nonmerchandise SKUs from Sales Reports What it does: The improved product class setting allows you to exclude items like gift cards, warranties, and donations from sales and refund metrics in all sale reports. This establishes more accurate sales data and can help avoid inflating sales figures with nonrevenue items. How to configure in CMS: 1. Go to **Products > Product Class**. 2. Create or edit an existing Product Class. 3. Turn on **Exclude** from **Sales Reports**. ![The Exclude from Sales Report toggle in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_exclude_non_sku.png) Learn more: [Set Up Non-Merchandise SKUs](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_non_merchandise_sku.htm&release=264.0.0&type=5 "POS enables you to configure non-merchandise SKUs, such as postage stamps and gift certificates, to meet your business needs. You can also configure the checkout rules that apply to these items. Control if these items are discountable or taxable, and set other rules.") ## Export Register Vitals via Webhook What it does: Vitals data can be exported through webhooks. After being received by Salesforce's backend, events are posted to the merchant-specified API endpoint. The JSON payload includes a snapshot of vitals (all captured metrics) and register metadata, such as the capture date/time, for the specific register on the current schedule for publishing vitals to Point of Sale. How to configure in CMS: 1. In CMS, go to **Store Management > Integrations > Custom Connectors**. 2. Select **Create** in the upper right. 3. Under **Connector Type**, select "**Webhook**". 4. Under **Endpoint Name**, select "**POS\_Vitals**". 5. Configure the rest of the fields. 6. Save your changes. ![Configure the Webhook POS\_Vitals in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_pos_vitals_webhook.png) Learn more: [POS App Register & Hardware Vitals](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_register_hardware_vitals.htm&release=264.0.0&type=5 "Monitor the status of individual registers, store connections, and offline readiness using the Point of Sale (POS) Vitals feature.") ## Integrations ## Apply Rewards with Synchrony Credit Cards Purchases What it does: You can now look up available rewards for a customer and apply them during checkout for greater payment flexibility. How to configure in CMS: 1. In CMS, go to **Custom Connectors**. 2. Select **Create**. 3. Under **Connector Type,** select "**SPI**". 4. Under **Endpoint Name**, select "**REWARD\_LOOKUP**". 5. Configure the rest of the required fields by referring to Salesforce’s API/SPI Spec. ![A form displaying custom connection configuration details.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_synchrony_config_reward_lookup.png) Learn more: [Set Up Processing of Synchrony Credit Card Purchases using Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony.htm&release=264.0.0&type=5 "The POS app, in combination with an Adyen terminal, supports the recognition of Synchrony cards and enables financing transactions. During checkout, when a customer chooses to pay with their Synchrony PLCC and the card is presented, the store associate can process the payment. If the order total meets a set threshold, the store associate can offer financing, which requires the customer to sign an electronic disclosure and financing contract. The threshold, electronic disclosure, and financing contract terms are customizable in the CMS.") ## Inventory Management ## Validate Cart via SPI What it does: This enhancement allows the POS app to send a cart to a merchant's external system for validation before the order is placed. Additionally, the SPI reserves inventory during this process, guaranteeing that items are held for the customer until the order is confirmed. This feature helps reduce the risk of selling too many items and makes customers happier by checking if items are available after the order is finished. ![A cart validation error with correlation ID in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_cart_error_pos.jpg) How to configure in CMS: 1. In CMS, go to **Integrations > Custom Connectors**. 2. Select **Create** in the upper right. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**CART\_VALIDATION**." 5. Under **API Endpoint**, provide the external endpoint. 6. Under **Integration Type**, select "**HTTP\_POST**." 7. Under **JSON Headers**, provide headers to be passed. 8. Configure the rest of the fields as needed. 9. Save your changes. ![Example of settings for the SPI.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_validate_cart_spi_settings.png) Learn more: [https://help.salesforce.com/s/articleView?id=commerce.rt\_pos\_orders\_process\_validate\_cart\_spi.htm&language=en\_US](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_process_validate_cart_spi.htm&language=en_US) ## Delivery Group Enhancements What it does: SPI now supports a delivery date picker, allowing you to select which products offer this option. This can help control customer expectations by giving them personalized delivery dates based on product availability. It also checks to make sure only eligible products have this option. How to configure in CMS: ![The Delivery Date selection option available in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_omnichannel_delivery_date_inventory.png) 1. In CMS, go to **Integrations > Custom Connectors**. 2. Select **Create** in the upper right. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**DELIVERY\_GROUP**." 5. Under **API Endpoint**, provide the external endpoint to retrieve delivery groups. 6. Under **Integration Type**, select "**HTTP\_POST**." 7. Under JSON Headers, provide headers to be passed. 8. Configure the rest of the fields as needed. 9. Save your changes. Learn more: [https://help.salesforce.com/s/articleView?id=commerce.rt\_cms\_modules\_omnichannel\_delivery\_groups.htm&language=en\_US](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_delivery_groups.htm&language=en_US) ## Simplify CMS Inventory Reporting with Enhanced Filtering and Direct Email Delivery What it does: You can now filter inventory overviews in CMS by product keywords, including title, description, ID, or variant. You can only find results for 2,000 items. Additional filters by inventory bucket and condition (operation and value) turn on grouping by product ID or variant group ID, offering more precise results. The added benefit of downloading the report directly to your inbox provides easy access and enhances inventory management efficiency. How to configure in CMS: 1. Go to **Inventory > Inventory Overview and Bucket Adjustment**. 2. Configure the filters. 3. Select **Search**. 4. To download the report, select **Download** beneath the search filters. After the report is ready, you receive an email that is used to log into CMS with a download link, which expires after seven days. ![Enhanced Inventory Filtering options in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_inventory_enhanced_filtering.png) Learn more: [Inventory Overview and Bucket Adjustment Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_inventory_overview.htm&release=264.0.0&type=5 "Use the Point of Sale Inventory Overview report to check product counts across locations and identify inventory.") ## Streamline Inventory Management with Enhanced Filtering on the POS App What it does: You can now filter the inventory overview report on the app by product keywords, including title, description, ID, or variant. You can only find results for 2,000 items. Additional filters by inventory bucket and condition (operation and value) turn on grouping by product ID or variant group ID, offering more precise results. How to configure in CMS: 1. To set a deep link to access the report on the POS app, edit a layout, hamburger menu, or a tab. 2. Using the deep link picker, go to **Store Associate > Inventory Management**. 3. Select **Inventory Overview**. ![The Inventory Overview Report Filter in the POS app with a build later than 10.7.1.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_report_filter.png) Learn more: [View Product Inventory in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_view_product_inventory.htm&release=264.0.0&type=5 "View inventory at the item or variant group level, and based on inventory buckets.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Support Product Add-ons with PunchOut Webviews | You can now link add-on products directly to the cart from a web view for a smoother shopping experience. | [Supporting PunchOut Webpages on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_punchout_webpages.htm&release=264.0.0&type=5 "Integrate web-based workflows, like adding custom products, directly into store transactions using the Point of Sale (POS) app. Launch preconfigured web pages from the POS app to securely pass data and trigger actions via URL parameters. The POS app receives a message upon completion, which streamlines tasks such as customer login and cart navigation, enhancing the in-store shopping experience.") | | Increase Credit Card Refund Flexibility with Customizable Processing Policies | Select your preferred refund processor based on the order type (online, in-store, mixed cart, or web orders) and order controller for credit card transactions. You can also decide if unreferenced refunds are supported. | [Configure Point of Sale Refund Processing Policies for Credit Cards](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_configuring_refund_processing_policies_for_credit_cards.htm&release=264.0.0&type=5 "Configure your preferred refund processor for credit card orders by order type. You can also support unreferenced refunds in the POS app.") | | Prevented Multiple Unreferenced Refunds with Improved Refund Process | Multiple app-initiated refunds for a single order will be blocked. This includes multiple credit card unreferenced refunds or a combination of unreferenced credit card and gift card refunds. | [Refund Validation Limitations in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_validate_refunds_limitations.htm&release=264.0.0&type=5 "Review these limitations for validating refunded amounts via Adyen Refund Webhooks in Point of Sale.") | | Duplicated Till Reconciliations Due to Network Issues | Improved till management prevents duplicate reconciliations caused by timeouts or network issues. | [Managing Tills in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_till_mgmt.htm&release=264.0.0&type=5 "Use the Point of Sale (POS) app to manage tills in-store and reconcile all tills at the same time.") | # February Build Summary (9.8.1) Build summary for Modern POS version 9.8.1, including what new features and changes it contains | Theme | Feature | Benefit | | --- | --- | --- | | SPI | [Configuring & Printing Shipping Labels via SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5) | New SPI allows integration with third party shipping services to select and print shipping labels from fulfillment flows (BOFIS, Store-to-Store transfers, and Return to vendor). Preconfigured boxes and item weights can be added to CMS to speed flow of store operations. | | SPI | [Supporting Loyalty Across the Customer Experience with Salesforce’s SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5) | Shopper rewards can be redeemed through the POS. New enhancements provide tags for printing loyalty rewards on receipts and having loyalty rewards tracked in Electronic Journal (EJ). | | Inventory Management | [Bulk Adding Inventory to Store to Store Transfers](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5) | Ability to enter item quantity rather than scanning individually for a Store to Store transfer. | | Webhook | [Suspended Cart Data via Webhook](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5) | Webhook provides real-time export of suspended carts for use in external audit systems. | | EJ/tlog/JSON | [EJ Save and Share Reports in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5) | Ability to save EJ filters as reports for regular review—can select to share access or keep private. | | Receipts | [PS email and Print Receipt Tags for Attributed Associate (Line and Order)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5) | New receipts tags permit you to show the associate number and name of the attributed associate on the sale. | | Core Platform | [Orders as a Separate Permission Option for CMS Roles](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5) | More granular control to separate CMS user permissions between order reports vs other analytic reports (previously it was all or none) | | Core Platform | [Offline Register Logs](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5) | Access logs for offline events to view details such as the reason for going offline and a descriptive explanation. | | Other | [Other Feature Enhancements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_8_1.htm&release=264.0.0&type=5) |   | ## SPI ## Configuring & Printing Shipping Labels via SPI What it does: Integration with shipping services provides item weights and box dimensions for online, BOFIS, Store to Store transfers, and Return to Vendor transfers. Further enhanced capability to print labels right from POS and to create multiple boxes as needed during the packing process. Generating a shipment label with box dimensions: 1. Tap the **Store Fulfill Orders Ready to Ship deep link** to ship ready orders.![The drrp link that allows you to start generating a label.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bofie_generate_label.png) 2. Locate the order and tap **Ship** to the right of it. On the shipping screen, the number of boxes are shown on the list of ready-to-ship orders. Hit **Generate Label** to start the shipping label flow.![The Ship button next to the order in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bofis_ship.png) 3. You see predefined weights and dimensions if dynamically obtained from your feeds. Alternatively, you can enter your own.![Select and configure the shipping box information in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_boxes.png) 4. Tap **Done** and the next screen permits you to select a shipping option.![A window in the POS app where you select shipping options for an order and select Confirm.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_shipping_options.png) 5. Select **Confirm** and you can print the shipment label. Learn how to configure end-to-end: [Configuring & Printing Shipping Labels via Point of Sale SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_shipping_labels_spixml.htm&release=264.0.0&type=5 "Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing.") ## Supporting Loyalty Across the Customer Experience with Salesforce’s SPI Point of Sale has added a new system to its loyalty rewards system. This system prints the loyalty points that customers have redeemed on their receipts, so they can see them right away. New print and email tags provide more visibility of discount rewards on receipts. Additionally, loyalty transactions are now recorded in the Electronic Journal and Reconciliation Report, streamlining tracking. ![Available Rewards in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_coupons_app.png) Learn how to configure end-to-end: [Point of Sale Loyalty SPIs](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_loyalty_spis.htm&release=264.0.0&type=5 "Use Point of Sale's SPI to connect your loyalty program to the POS app. Make it easier to find loyalty customers and show rewards.") ## Inventory Management ## Bulk Adding Inventory to Store to Store Transfers What it does: Ability to enter item quantity rather than scanning individually for a Store to Store transfer if bulk scanning is enabled in CMS. ![A window in the POS app that prompts you to confirm the quantity of an item to add to the STS transfer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_add_quantity_xfer.png) How to configure: 1. In CMS, go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Turn on **Enable Bulk Receiving of Items**. ![Store Settings for bulk item reception in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_bulk_receive_settings.png) Learn more: [Manage Store to Store Inventory Transfers in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands.") ## EJ/TLog/JSON ## Suspended Cart Data via Webhook What it does: Measure and track suspended carts in downstream systems in real time if integrated with Salesforce’s webhook APIs. How to configure: 1. In CMS, go to **Integrations > Custom Connectors**. 2. Select **Create** in the upper right. 3. Under **Connector Type**, select "**Webhook**". 4. Under **Endpoint Name**, select "**SUSPEND\_CART**". 5. Configure the rest of the fields and save your changes. ![The CMS shows settings for a webhook to export data for suspended cart.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_process_export_suspend_void_data_suspend_webhook_settings.png) Learn more: [https://help.salesforce.com/s/articleView?id=commerce.rt\_pos\_orders\_process\_export\_suspend\_void\_data.htm&language=en\_US](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_process_export_suspend_void_data.htm&language=en_US) ## EJ Save & Share Reports in CMS What it does: Expanded ability to save EJ filters as reports and add them to public saved lists for quicker access to standard queries, ![The Save Report Window for an Electronic Journal Report](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_reports_save_ej_report.png) Learn how to generate EJ reports: [Viewing & Generating Electronic Journal (EJ) Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_view_generate_ej_reports.htm&release=264.0.0&type=5 "Provide digital records of Point of Sale sales transactions and order details to help merchants track sales and manage inventory. Generate reports by configuring stores, date, time, and time zone to view the data.") Learn how to save reports: [Saving and Sharing Electronic Journal Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_saving_sharing_ej_reports.htm&release=264.0.0&type=5 "Track and document sales transactions in Point of Sale CMS. Include details such as the date, customer information, item description, quantity sold, and the corresponding financial amounts.") ## Receipts ## PS Email and Print Receipt Tags for Attributed Associate What it does: New receipts tags that permit you to show the associate number and name the original sale belonged to. List of print receipt tags: [Comprehensive Print Tags List](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_list.htm&release=264.0.0&type=5 "Show dynamic data in your layouts by using Point of Sale print tags as placeholders. Each tag includes its description, location, receipt components, group list, and data mapping. Grouped lists output multiple data points for each tag.") List of email receipt tags: [Configure Email Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_email.htm&release=264.0.0&type=5 "Email tags in Point of Sale are placeholders for email and print templates that pull specific information from data that are then shown instead of the actual placeholder.") ## Core Platform ## Orders as a Separate Permission Option for CMS Roles What it does: Provide greater security and visibility to reporting with the ability to assign reporting access to a CMS user role. How to configure: 1. In CMS, go to **Advanced > User Management > Roles**. 2. Select the **Plus icon** to create a custom role. 3. Give the role a name and define its permissions. 4. Save your changes. Learn more: [CMS User Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_user_management.htm&release=264.0.0&type=5 "Customize users in CMS to control access to reports, configurations, and other features within a company.") ## Offline Register Logs What it does: Ability to access logs for offline events to view details such as the reason for going offline and a descriptive explanation. How to access: 1. In CMS, go to **Reporting and Analytics > Offline Register Logs** 2. Select **store**, **date range**, and **register ID** Learn more: [View Offline Register Logs in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_offline_register_logs.htm&release=264.0.0&type=5 "Access vital information about network connectivity mode changes in the the Point of Sale (POS) app. See the time that the offline or online switch happens, what the reason for the offline switch is, and any additional details of the offline switch.") ## Enhanced Speech Recognition What it does: We partnered with a customer to seed our voice search model with brand-specific terminology so that it can be recognized in a voice search. Reach out to your CSM if you're interested in further using voice search and customizing our model to your needs as part of our beta development of this feature. Learn more about speech recognition: [Configure Speech Recognition (Beta) in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_speech_recognition_beta.htm&release=264.0.0&type=5 "Turn on speech recognition in the POS app to streamline workflows. With voice commands, users can efficiently access features, turning on hands-free operation, and enhancing accessibility. Configure custom voice commands and deep links in CMS to tailor the experience for different languages and actions within the app.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Handling Online Payment Restrictions During Intermittent Network Failures | Handling ‌scenarios if the POS system is online but operating in Adyen's Store-and-Forward (SAF) mode, and a payment confirmation from Adyen is pending. Now, during return transactions, if the payment status remains unverified, the system prevents the return from proceeding. Users will be notified with the error message, "Payment is still processing for this order, return can't be initialized". | [Payment Error Handling](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_error_handling.htm&release=264.0.0&type=5 "An order failure with unknown payment statuses is critical. Point of Sale made enhancements addressing this issue by adding additional parameters and descriptive order statuses in the CMS reporting. Additionally, there is the abort option in the app's user interface to mark the payment status as unknown in case of communication failures between the app and the terminal. This enables you to verify and reconcile the transaction later depending on the order status in the CMS failed order report.") | | Date Format on Email Receipts | Date and time displayed in the date format and language of the store's location. | [Receipt Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_receipt.htm&release=264.0.0&type=5 "Customize Point of Sale receipts to enhance customer experiences. Configure store-level print receipts and use templates for order returns. The Receipt Layout editor allows you to tailor headers, footers, and item details. Understand common challenges and best practices for clear and readable receipts, including managing returns and exchanges.") | | Enhance monitoring to include Advanced Shipping Notice (ASN) feed | ASN as new event type in feed monitoring so you can track failures and performance | [Configure Advanced Shipping Notice (ASN) Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_asn_receiving.htm&release=264.0.0&type=5 "Set up accurate inventory receiving, check merchandise against prearrival notifications, and set reason codes for inventory mismatches in Point of Sale.") | | JSON and XML Parity | Introduction of new fields to both JSON and XML to bring to parity | N/A | | Deposit requirements update | Deposits for orders now enforce full payment for items carried out of the store (cash and carry) and show a warning if the deposit is less than 25%. | [Support Layaways & Deposits in POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_laway_deposit.htm&release=264.0.0&type=5 "POS app supports partial payments/deposits while creating an order. An order is eligible for partial payments if it has online items. Partial payments can be done in two ways in the POS app: creating a layaway order and adding a deposit amount to an order. Only online orders define Layaway orders, while deposits can be a mix of in-store and online orders. The deposit must be more than the total of items in-store. If the deposit is less than 25% of the total for online purchases, a warning is shown.") | # Feeds Deployment Best Practices & Strategy Use Point of Sale to ingest data onto the POS Cloud platform with multiple options. Optimize data setup based on different customer scenarios. This ensures a smooth data flow, enabling retailers to gain valuable insights and make informed decisions. With efficient data ingestion, retailers can enhance their operations and improve the customer experience. Important: All feed files should be saved in a UTF-8 (not to be confused with UTF-8 with BOM) format else you receive an error during upload. ## Point of Sale Solutions **Multi-Country - Local Language Content** Use Case: The customer has stores in multiple countries and each region has its own localized content. Reference: Converse Region: All feeds need to be loaded in their respective regions.
Feed Use Case Frequency RunTime (Approximate)
Full Product Feed Full product catalog has to be loaded with localized content

Once during onboarding.

Annual refresh can be done if needed

1 million rows / 60 mins
Delta Product Feed This file can be loaded to add/update existing product information Once a day
Full Store Inventory-Pricing Feed

Complete store inventory feed has to be loaded to get starting store inventory.

This file also provides store-level pricing

Once during onboarding.

Annual refresh can be done if needed

3.5 million rows / 60 mins
Delta Store Inventory-Pricing Feed This file can be loaded to update store levelpricing/inventory Every 2 hours
Store Feed This file can be loaded to update all store details Once every week
Tax Feed This file can be loaded to update tax tables for online/offline Once every week
Associate Feed This file can be loaded to add new associate Once every week
ASN Feed This file can be loaded to add ASN data Once every week
**Multi-Country - Same Language in All Regions** Use Case: The customer has stores in multiple countries and uses English (or any other language) as a single language for all regions. Reference: SuitSupply Master Region:
Feed Use Case Frequency RunTime (Approximate)
Full Product Feed Full product catalog has to be loaded with localized content

Once during onboarding.

Annual refresh can be done if needed

1 million rows / 60 mins
Delta Product Feed This file can be loaded to add/update existing product information Every 2 hours
Product Pricing Feed This file can be loaded to load product pricing for other regions Once every week
Product Sizing Feed This file can be loaded to load product sizing for other regions Once every week
Full Store Inventory-Pricing Feed

Complete store inventory feed has to be loaded to get starting store inventory.

This file also provides store-level pricing

Once during onboarding.

Annual refresh can be done if needed

3.5 million rows / 60 mins
Delta Store Inventory-Pricing Feed This file can be loaded to update store levelpricing/inventory Every 2 hours
Store Feed This file can be loaded to update all store details Once every week
Tax Feed This file can be loaded to update tax tables for online/offline Once every week
Associate Feed This file can be loaded to add new associate Once every week
ASN Feed This file can be loaded to add ASN data Once every week
All Regions:
FeedUse CaseFrequency
Store FeedThis file can be loaded to update all store detailsOnce every week
Tax FeedThis file can be loaded to update tax tables for online/offlineOnce every week
Associate FeedThis file can be loaded to add new associateOnce every week
ASN FeedThis file can be loaded to add ASN dataOnce every week
**Multi-Locale - Within a Region** Use Case: The customer has stores in a country that has multiple locales. Reference: Bouclair Region: All feeds need to be loaded in their respective regions.
Feed Use Case Frequency RunTime (Approximate)
Full Product Feed Full product catalog has to be loaded with localized content for each country as additional rows

Once during onboarding.

Annual refresh can be done if needed

1 million rows / 60 mins
Delta Product Feed This file can be loaded to add/update existing product information Every 2 hours
Full Store Inventory-Pricing Feed

Complete store inventory feed has to be loaded to get starting store inventory.

This file also provides store-level pricing

Once during onboarding.

Annual refresh can be done if needed

3.5 million rows / 60 mins
Delta Store Inventory-Pricing Feed This file can be loaded to update store levelpricing/inventory Every 2 hours
Store Feed This file can be loaded to update all store details Once every week
Tax Feed This file can be loaded to update tax tables for online/offline Once every week
Associate Feed This file can be loaded to add new associate Once every week
ASN Feed This file can be loaded to add ASN data Once every week
## Data Exports These export jobs are supported by Point of Sale. Master Region:
FeedUse CaseFrequency
Orders (Backup of API)Export TLog of order in XML / JSONRealtime / Once a day
EJFull export of all store eventsOnce a day
Delta Store InventoryExport of product with inventory movement for the current dayOnce a day
Inventory Movement EventsRealtime export of inv events based on receiving, STS, RTVRealtime
QuizAssociate survey responsesOnce a day
Digital ContractsHomemakers use cases to push customer acknowledgments for financing contractsOnce a day
## FTP Providers Point of Sale feeds can work with any service that provides an FTP connection. These are some of the FTP service providers who are currently deployed with POS: Exavault, FileZilla, Goanywhere MFT. ## References See [Review Feed File Specifications](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs.htm&release=264.0.0&type=5 "Use data feeds to import and update critical product, inventory, pricing, and store data in Point of Sale. Data feeds include detailed specifications and examples, such as ASN, category, notification, and POS register feeds. Note that the POS register feed only updates existing registers and does not create new ones. You can also manage product bundles, inventory, promotions, store associates, and tax rates using data feeds. With data feeds, you can ensure your Point of Sale data is accurate and up-to-date, which leads to improved sales and customer satisfaction.") the specifications of each of the data feed. # Feeds Overview Use feeds to efficiently import bulk data, such as products, categories, and stores, into Point of Sale. Feeds streamline the process of updating your Point of Sale platform with the latest information. You can schedule and manually upload feeds, then review logs to ensure data accuracy. Point of Sale supports various feed types and configurations to meet your data import needs. ![A diagram shows how data is fed into and exported from the Point of Sale platform.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_overview.png) ## Data Imports Data imports allow you to feed data like a product catalog or stores list into the Point of Sale platform. ## Imports Get details about import data feeds. ### Feed Files A feed file contains data like products, categories, or stores. Point of Sale ingests different types of feed files in different configurations. Depending on the feed type, uploading a new file can either replace or upsert the existing data. See [Review Feed File Specifications](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs.htm&release=264.0.0&type=5 "Use data feeds to import and update critical product, inventory, pricing, and store data in Point of Sale. Data feeds include detailed specifications and examples, such as ASN, category, notification, and POS register feeds. Note that the POS register feed only updates existing registers and does not create new ones. You can also manage product bundles, inventory, promotions, store associates, and tax rates using data feeds. With data feeds, you can ensure your Point of Sale data is accurate and up-to-date, which leads to improved sales and customer satisfaction.") . #### Product Feed Product feeds are the primary product catalog feed and replaces existing data when uploaded. This contains all necessary details about a product i.e. name, title, price etc. Online inventory of an item is also part of the product feed. This feed can run in two modes and both exhibit different behaviors: - Full Product Feed - This is the primary source of truth for all product information. When a full product feed is loaded, all prior load data is erased and data from this file is loaded and indexed. These feeds are configured to run typically once a day in the morning or at regular intervals of 4-6 hours. If no records are processed, then the previous day's catalog is left intact. - Delta Product Feed - Delta feeds are a subset of Product Feed. Subset both in terms of rows and columns. At a minimum, the delta feed needs to have 1 row and 2 columns: ProductId and any other attribute that needs to be updated for a product. Only the products that are present in this file are affected on this feed run. Deltas are run more frequently throughout the day and intervals can vary from 15 mins to 1 hour. If new products are added via Delta feed and are not present in Full feed, on the next run of full feed these will be erased. Ideally, full feed should have all products. If for any reason new products that are added via Delta feed cannot be added to Full feed then, both feeds Full and Delta need to be scheduled as a Pipeline feed to run sequentially ensuring no products are lost. #### Category Feed Category feed must be run along with Product feed. It cannot be executed separately. Category feeds update merchandising hierarchy and ranking / sort order of products. #### Store Feed Store feed is the master Store catalog providing all details of stores. Once a feed is executed, the previous feed execution is replaced by the contents of this file. This file is usually loaded once a week. #### Store Inventory Feed Store Inventory feeds are necessary when Point of Sale is not the inventory master. This type of feed upserts data when uploaded. At the onset this is a very simple feed with 3 columns. StoreId, ProductID (a.k.a. sku id) and Quantity. There are 2 types of Store Inventory feeds - Full Store Inventory Feed - This is the primary source of truth store inventory. Typically loaded once a day before stores open and all records are loaded in. The previous days data is erased. - Delta Store Inventory Feed - This is an incremental feed where changes to inventory are published to Point of Sale. It can be run in 2 modes. Absolute quantity or increment/decrement. In Absolute quantity mode, Point of Sale will overwrite existing inventory number. In case of increment / decrement, the inventory positions will get updated accordingly. This feed can also be used to update store level pricing and specify serial numbers and prices of clearance items in a given store. Additional details can be found in the [Store Inventory & Pricing Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_store_inv_price.htm&release=264.0.0&type=5 "The Point of Sale store inventory feed is used for the Find-In-Store feature. On the PDP, a user can opt to see if a product is available in a nearby store.") spec. #### Pipeline Feed Pipeline Feed is nothing but a scheduler that allows a merchant to configure the sequence of file imports that are needed. It runs in an all or nothing manner. If even one file fails in PipeLine the entire job is terminated and no updates are made. #### Associate Feed Store Associate feed is loaded daily with Associate store details and credentials. This type of feed upserts data when uploaded. ### Upload A feed import job can be initiated by manually uploading the feed file in the CMS or scheduling it to upload from an SFTP server. To validate successful feed runs or troubleshoot failed ones, you can review the Feed Logs. #### Scheduling Feeds To learn how to schedule feeds, see [Schedule Feed Runs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule."). #### Manually Uploading Feeds To learn how to manually upload feeds, see [Run Feeds Manually](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_manual_run.htm&release=264.0.0&type=5 "Sometimes you need to run a data feed right away. You can manually run data feeds in Point of Sale to update your data immediately, rather than waiting for the next scheduled run. Implement these steps when you need the most current data."). #### Feed Logs The Feed Logs report which feeds have run and whether or not they were successful. When debugging issues related to a feed, the Feed Logs is the first place to start. For more details, see [View Feed Logs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_logs.htm&release=264.0.0&type=5 "Quickly identify the success of Point of Sale data feeds by using feed logs. When you review feed logs, you can begin troubleshooting issues. The feed logs page shows the runs for each feed and their status."). ### Special Configurations Get details about special configurations in data feeds for multi-region feeds, the feed pipeline, feed deployment best practices, and offline feeds. #### Multi-Region Feeds For a merchant that has stores deployed across different regions, it is possible they want to use the same file across different regions. Currently when a file is imported in FTP mode, FeedJob will rename the file as .bkp once processing is done. As a result another region will not be able to process the same file. By importing the file as SFTP, FeedServer does not rename the file hence can be used across different regions. To learn more on multi-region feeds and how to set it up, see [Multi-Region Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_multi_region.htm&release=264.0.0&type=5 "Point of Sale multi-region feeds let merchants with operations in multiple regions run feeds in the master region. Merchants can also configure other regions to perform product searches against the master catalog. By using multi-region feeds, merchants can streamline their operations and ensure that product searches are accurate across all regions. This feature saves time and improves efficiency by centralizing feed management."). #### Feed Pipeline A feed pipeline allows you to schedule two or more feed types to run in a specified order on a set schedule. To learn more on this topic and how to set it up, see [Create a Feed Pipeline](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_pipeline.htm&release=264.0.0&type=5 "Create feed pipelines in Point of Sale to schedule feed types to run in a specified order. Running feed pipelines on a set schedule keeps your data current and accurate. Configure the pipeline, add the feed types, and set the schedule. You can also edit a pipeline as business needs change."). #### Feed Deployment Best Practices The Point of Sale platform supports multiple options to ingest data onto its POS Cloud platform. [Feeds Deployment Best Practices & Strategy](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_best_practice.htm&release=264.0.0&type=5 "Use Point of Sale to ingest data onto the POS Cloud platform with multiple options. Optimize data setup based on different customer scenarios. This ensures a smooth data flow, enabling retailers to gain valuable insights and make informed decisions. With efficient data ingestion, retailers can enhance their operations and improve the customer experience.") provides recommendations on how the setup should be in different customer scenarios. #### Offline Feeds Offline feed files help ensure the proper functioning of the POS app. To enable offline capabilities, the POS app requires at least one online session to download the necessary files. To learn more about the requirements, see [Offline Feed File Extracts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_offline_feed_file_extracts.htm&release=264.0.0&type=5 "Offline feed files help the Point of Sale (POS) app function properly, where at least one online session is needed to download the required files."). ### Field Mappings The raw columns or attributes inside the feed file are transformed and mapped onto fields that the Point of Sale backend understands. To learn more about field mappings, see [Map Data Feed Fields](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5 "Set Field Mappings in Point of Sale to transform data from external sources into the format that Point of Sale uses. Field mappings use transformations and regular expressions. When you import data feeds, the field mappings ensure that your data is accurate and consistent. This consistency helps to streamline your retail operations."). ## Data Exports Data exports enable you to export data from the Point of Sale platform, such as TLog or quiz data. An export file is generated and transmitted via SFTP. Each feed file contains the data, and you can refer to [Configure and Manage Export Jobs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_export_jobs.htm&release=264.0.0&type=5 "Use export jobs to extract data from Point of Sale by using Secure File Transfer Protocol (SFTP). Configure and schedule these jobs in CMS to automate data extraction, and monitor their progress in the Export Logs for timely, efficient data retrieval.") for more details. The data from the Point of Sale backend can be transformed and mapped into the desired format using [Field Mappings](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5 "The raw columns or attributes inside the feed file are transformed and mapped onto fields that the Point of Sale backend understands."). ## Frequently Asked Questions Get answers to frequently asked questions regarding data feeds, feed types, and specifications. Learn about feed operations, scheduling, and file format requirements. Review troubleshooting tips, data handling capabilities, and information on inventory, store data, pricing, and regional support. ### **Feed Types and Specifications** What are the different types of feeds? The available feeds are listed under[Review Feed File Specifications](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs.htm&release=264.0.0&type=5 "Use data feeds to import and update critical product, inventory, pricing, and store data in Point of Sale. Data feeds include detailed specifications and examples, such as ASN, category, notification, and POS register feeds. Note that the POS register feed only updates existing registers and does not create new ones. You can also manage product bundles, inventory, promotions, store associates, and tax rates using data feeds. With data feeds, you can ensure your Point of Sale data is accurate and up-to-date, which leads to improved sales and customer satisfaction."). What are your feed specs? Specs for the data feeds along with examples are provided in [Review Feed File Specifications](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs.htm&release=264.0.0&type=5 "Use data feeds to import and update critical product, inventory, pricing, and store data in Point of Sale. Data feeds include detailed specifications and examples, such as ASN, category, notification, and POS register feeds. Note that the POS register feed only updates existing registers and does not create new ones. You can also manage product bundles, inventory, promotions, store associates, and tax rates using data feeds. With data feeds, you can ensure your Point of Sale data is accurate and up-to-date, which leads to improved sales and customer satisfaction."). Can product feed be sent as XML? No, we do not support XML files. ### **Feed Operation and Scheduling** How do feeds work? Brands load files on File Transfer Protocol (FTP), schedule the frequency of import in Point of Sale's CMS and from there we ingest files. Different feeds have different recommended frequencies that are specified in [Feeds Deployment Best Practices & Strategy](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_best_practice.htm&release=264.0.0&type=5 "Use Point of Sale to ingest data onto the POS Cloud platform with multiple options. Optimize data setup based on different customer scenarios. This ensures a smooth data flow, enabling retailers to gain valuable insights and make informed decisions. With efficient data ingestion, retailers can enhance their operations and improve the customer experience."). What about scheduling and import frequency? All Feeds can be scheduled via CMS based on business needs. Point of Sale recommendation is to run full product and inventory files once a month or once a quarter (based on frequency of change) and send Delta files once a day. How do Product, Store, and Store Inventory files work together? Product Feed is product catalog data. Store feed is store catalog data. StoreInventory binds the two. An entry is needed in this file for an item to be linked to a store. Having zero inventory is fine, but an entry is needed to associate a product with the store. When feeds are running, what is the application status? Can it be used by associates? Specifically, for an international deployment from Australia, Europe, and the US using a single multi-country feed. How should feeds be scheduled? When feeds are in flight and being loaded, the system continues to work as normal as we first load all data in our system. It indexes everything in one go after all files are processed. Can you roll back feeds? No, currently we do not have a rollback feature. To restore, we will load the full product feed from the merchant. ### File Format Requirements What format should the file be saved in? All feed files should be saved in a UTF-8 format. ### Troubleshooting Feed Issues Why did my feeds fail? - Check that the file type is correct (CSV, TSV, Pipe Delimited). - Check that the field mappings are set. - Check that the headers match the field mappings. - If the file does not include headers, then define the field mappings. - Check the required data for the feed. - Are quotes missing? Are there special characters causing issues? - Was it saved in a UTF-8 format? Store Inventory feed failed with data truncation, are the fields too long? Please ensure that the country code is a two-digit ISO code and not three-digit. What about alerting/monitoring in case files are not loaded? These can be found in CMS. ### **Data Handling and Capabilities** How much data can you handle? We have indexed catalogs of over 1 million SKU's per region. We have processed over 8 million store inventory entries. How much time does it take to load and index? A million SKU file takes approximately 20 minutes to load and index. During the day, if we need to change pricing or add some products, how can that be done? You can send Product Delta files at a higher frequency during the day. Product Delta is a true subset (e.g., rows and columns) and we will update only the data that is present in file. If you send a Product Delta every hour, prices will get updated. Another alternative is API's which we will cover in a separate section. What is the default logic for pricing? Store-level is the default pricing we look for. If null, we fall back to the list price. Product and Catalog Information How do we load product and catalog information into Point of Sale? Product Feed is the primary source for product and catalog information. Delta Product Feeds can be used to augment and enrich this data with additional columns from different systems. My product information is in a PIM system, pricing data is in a Merch system, and images are in a local system. How do I send all this data to Point of Sale? You can use our Feed Pipeline to load Primary product data as Product Feed and other files as Product Delta files along with setting up a PipeLine Job. This will ensure all data is imported, staged, loaded, and indexed together. If one file fails, the whole operation rolls back without any disruption. Prerequisites for this feature are: (1) Same ProductId column and values in all files; (2) No spaces in column names. See [Create a Feed Pipeline](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_pipeline.htm&release=264.0.0&type=5 "Create feed pipelines in Point of Sale to schedule feed types to run in a specified order. Running feed pipelines on a set schedule keeps your data current and accurate. Configure the pipeline, add the feed types, and set the schedule. You can also edit a pipeline as business needs change."). How do you handle prices, MSRP, markdowns, and store-level pricing? We support three prices: ListPrice, SalePrice, and SalePrice. ListPrice maps to MSRP, SalePrice maps to MarkDowns, and StorePrice is the price of item at a Store Level. List and Sale Price are imported via Product and Delta Product Feeds. Store Price is imported via Store Inventory feed Do you support store-level list pricing and sale pricing? How does store-level list price work in conjunction with the product feed provided list price? Our data model supports list and sale price at the product level. Additionally, it supports list, sale, and store price at a store level. List Price on POS App: If StoreLevel List price is present and the store setting of hasStoreLevelPricing is enabled then the store level listPrice (store level MSRP) is displayed on the cart. Sale Price on POS App: This is the basis of all cart calculations. There is no difference in the mode of the cart, i.e., Online / InStore.If store-level pricing is available in the store inventory and pricing feed then there are two possibilities: - a. If StoreSetting of "store price overrides sales price" is enabled then store price is sent as the sales price. - b. If the above setting is disabled, then the lower of the sale or store price is sent as the sales price. What about images? Are you hosting images? We does not store product catalog images. These are hosted by merchant CDN or eCom system. In Product Feed we need links to these images. How do you support product grouping/styles? ProductID / SKUID / UPC are the most granular level metadata of product we support. A style that has five colors, four sizes maps to 20 productId's, and 1 variantId. ProductId is mapped to id in FieldMapping and variantID is mapped to item\_group\_id. What is the product hierarchy SKU, productid, groupid, upc, external id? UPC is the lowest level of product identifier. Each UPC is tied to a productId. Multiple productId's are linked to a itemGrouId / VariantID / StyleId. In retail, the typical hierarchy is Retail > Master/Style/SKU. How is it in Retail Cloud? The corresponding hierarchy is as follows: VariantID / SubVariantId / ProductID. What about merchandise categories? Merchandise categories are part of product feed under ProductCategory column. Multiple values can be sent that are separated by "|" character. What about custom product attributes, can we show them? Can we search/filter them? Brands can send in different attributes about a product. Point of Sale has standard fields for most of the commonly used attributes in Retail. For others, CustomFields are available to map these values via Field Mappings. Once FieldMappings is done and data ingested, brands can define search and filter rules on these values. Point of Sale also supports a lightweight data transformer. See [Transformations & Regular Expressions](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_regx.htm&release=264.0.0&type=5 "Point of Sale data mapping uses transformations and regular expressions so you can get values in the correct formats. Use transformations such as applying arithmetic operations, formatting text, and converting date and time values. Regular expressions use patterns to find and replace strings to refine your data mapping."). Do you support rich text/HTML? We have limited support for HTML tags as this is bound by Apple's web view limitations. Do you support pricing at the Variant Group ID level, and the price will be inherited by all Product IDs in the variant group? No, merchants need to provide the entire product metadata including pricing at the Product ID/SKU level. How do you remove the Sale Price of a product in the Product Catalogue? To remove the sale price of a product, run a delta file selecting 'update products' and set the sale price value to 0. ### **Inventory and Store Data** How is inventory handled? Please refer to the following two questions. What is online inventory? Online Inventory is the availability of an item in ecomm system. This is passed in Product Feed as a single value for an item and can be updated via Product Delta Feeds after initial value is provided in Product Feed. What is store inventory? Store inventory is the inventory position of an item in a given store. This can be sent via full load at the start of the day. Point of Sale can also be master of Record of Inventory leveraging its inventory management module. See [Inventory Management Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses."). What about store data? Store feed is a separate feed where brands can provide all metadata about a store. Can we see products only in a given store? Yes, under search filters there is an option to show only in-store items for the current store of an associate. Can we see inventory positions in other stores? Yes, on PDP a link can be configured to see availability of an item in nearby stores. Can we see a detailed inventory breakdown in the current store? Yes, we have a concept of inventory panel that can show a detailed breakdown of available inventory in a given store. See [Inventory Lookup on PDP via SPIs](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_lookup_inventory_spis.htm&language=en_US). What about Corporate? How do they see this data? Corporate users can see all inventory data on our CMS tool under the Inventory section. What about Associates data from our system? How is that loaded? Associate data can be provided using the [Store Associate Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_store_ass.htm&release=264.0.0&type=5 "The store associate feed drives the functionality that creates store associates for all stores. If an associate exists in Point of Sale, all of the data is updated with content from the file."). ### Pricing and Regional Support Do you support country-level pricing? Country/region-specific pricing should be handled if the merchant has multiple /different CMS instances for each country. Otherwise the order of pricing (top to bottom) is list price > sale price > store price. There is no regional pricing outside of each region having its own environment. We will first look for store-level pricing, then fall back to sales price (if store level is null), then to list price (if both others are null). The list price is for the merchant's region/country. We are going to launch in multiple regions and have the same catalog across regions. How can we send a single file? We do support multi-region feeds. See [Multi-Region Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_multi_region.htm&release=264.0.0&type=5 "Point of Sale multi-region feeds let merchants with operations in multiple regions run feeds in the master region. Merchants can also configure other regions to perform product searches against the master catalog. By using multi-region feeds, merchants can streamline their operations and ensure that product searches are accurate across all regions. This feature saves time and improves efficiency by centralizing feed management."). ### **Special Product Handling** What about products with $0 pricing? By default, Point of Sale will not import products with a $0 list price or sale price. To import these products from Product Feed, disable the server setting to block zero-dollar products. What about pre-sale items or specials to be visible after a certain time? Product Feed does support the ability to add availability time windows for a product. Once this is passed in feed, search configuration can be built on these columns to show / hide products based on selected criteria. ### **API and Integration** Do you have APIs for product data? Yes, we have APIs for product data which brands can use to create and update products Can you pull product data via API? No, we do not use APIs to import data. Import is only via Feed files. What's the best method for supporting multiple API calls (e.g., 50-60k)? If the merchant is utilizing a Distributed Order Management (DOM) system, we recommend going the feed path/SFTP route. The merchant can provide one-time files to refresh/seed the data from the DOM. # File Format Guidelines for Modifying SKUs with Omnichannel Inventory Use a CSV or JSON file to import, update, or delete SKUs. When you construct the inventory file, specify column headings that correspond to location, SKU, quantity, and availability information. If other fields are included, they’re ignored. We recommend that you use the provided sample CSV filei. ### Required Editions
View supported editions.
Each row in the file represents a product and its quantities. The column headings are case-insensitive, and the columns can be in any order. The file can be up to 3.5 MB. The upload time depends on your file size and internet connection. | Column heading | column value | | --- | --- | | Location ID | ID of the location containing the item. | | SKU | Unique code that’s assigned to each product in your inventory to track availability and movement. | | Quantity On Hand | Physical inventory available. | | Safety Stock | Inventory that’s intentionally held in reserve that isn’t included in available to fulfill (ATF) and available to order (ATO). | | Effective Date | Date and time the on-hand inventory data is available. ISO 8601 format required. | | Future Date 1 | Date the specified quantity for a SKU will be available to order. ISO 8601 format required. | | Future Quantity 1 | Inventory available for pre-order or backorder or that’s expected in the future. Must be greater than 0. | | Future Date 2 | Date the specified quantity for a SKU will be available to order. ISO 8601 format required. | | Future Quantity 2 | An additional group of inventory available for pre-order or backorder or that’s expected in the future. Must be greater than 0. | | Group Eligibility Exclusion | Excludes the group from aggregating the location or SKU. | #### See Also - [Import or Delete Inventory with a CSV or JSON File](https://help.salesforce.com/s/articleView?id=commerce.inv_import_bulk_csv.htm&release=264.0.0&type=5 "Use the Omnichannel Inventory app to add, update, or delete inventory in bulk. You can use either a CSV or JSON file that contains the inventory SKUs.") - [Omnichannel Inventory Impex API Endpoints](https://developer.salesforce.com/docs/commerce/commerce-api/references/impex?meta=Summary) - [Omnichannel Inventory App](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_app.htm&release=264.0.0&type=5 "Use the Omnichannel Inventory app to view, add, and edit inventory SKU counts and manage locations, location groups, and location group assignments.") # Filter POS Reports by Franchise ID Corporate admins can use the franchise ID filter to narrow report data to a specific franchise or compare performance across franchises. 1. Open any Analytics, Order, or Electronic Journal report. 2. Locate the franchise ID filter in the report filters section. 3. Select one or more franchise groups from the dropdown. 4. To view data for all franchise groups, leave the filter blank. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip To compare performance across specific franchise locations or between owned-and-operated stores and franchise stores, combine the franchise ID filter with store filters. #### See Also - [_Salesforce Help:_ Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5 "Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations.") # Filter Testing IP Addresses from Reports and Dashboards Internal performance and load testing tools can contaminate the data you see in Reports and Dashboards, making it difficult to distinguish between generated traffic and actual customer behavior. You can now specify IP address ranges to filter out traffic from your internal testing tools, ensuring your analytics reflect genuine customer interactions. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note IP filtering applies only to future data collected after the IP ranges are configured. Previously collected data is not affected. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Merchant Tools** | **Site** | **Site Preferences** | **Intelligence Platform**. #### See Also - [Configure Commerce Intelligence Preferences for IP Filtering](https://help.salesforce.com/s/articleView?id=cc.b2c_configuring_cidr_ip_filters.htm&type=5&language=en_US) # Final Version of Endless Aisle and Module Code Endless Aisle 2.5.4 is the final version of the reference app. No maintenance or support will be available for any version of the reference app after September 30, 2021. Verson 2.5.4 includes the Endless Aisle module code, available in a new repository (ea-modules). **How:** You can access the module code at [https://github.com/SalesforceCommerceCloud/ea-modules](https://github.com/SalesforceCommerceCloud/ea-modules). The repository includes a script to build the modules and place the libraries in the Endless Aisle app. Consult the README file for details. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note This final version release does not change Endless Aisle functionality. It includes the new modules repository, and version changes to the es-app and ea-api repositories. # Find a Page Designer Page Using Search Suggestions You can now implement search suggestion support for Page Designer pages. When a customer starts to enter a search term on the storefront, the storefront application suggests related search terms. And the customer can select from a list of Page Designer pages applicable to the suggested search terms. Why: This feature allows customers to find a Page Designer page as easily as any other page. How: Page Designer pages don't reside in folders like other content assets. We implemented a new `setFilteredByFolder()` method for the SearchModel API that allows a developer to disable searching by folders. When `setFilteredByFolder()` is disabled, search suggestions find content assets not in folders. For more information, see [Enable Search and Search Suggestions for Page Designer Pages](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-dev-for-page-designer.html). # Find and Cancel Order Items with AI Tools Look up an order by order number and cancel every eligible item in a single conversation. A service agent describes the goal in natural language. The AI client checks eligibility, submits the cancellation, and confirms the result without opening the Order Management console. ### Required Editions
View supported editions.
Canceling order items is a high-volume servicing task. To do it by hand, you navigate the order, check each line item's remaining quantity, and submit a change order. The agent does that work through the Order Management APIs. The person doing the job stays in a single conversation and keeps oversight of every change. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Because an AI client uses large language models, which are probabilistic, results can vary from one run to the next. If you get an unexpected result, describe to the agent what happened so that it can help you diagnose and adjust. You don't need a specific model. ## Scenario Northern Trail Outfitters runs a high-volume support desk. Priya, a service agent, takes a call from a customer who wants to cancel two items on order 00035107 before they ship. The console path is to open the order, read each line item's quantity available to cancel, and select a reason, then submit a change order. That navigation takes several minutes per call. Instead, Priya asks the AI client to pull up the order and cancel the eligible items. In under a minute, the agent confirms the order, cancels the items that Order Management hasn't allocated or fulfilled, and reports the refunded amount. Priya handles more calls with fewer misfires, and every cancellation follows the same eligibility checks. ## Requirements Complete the shared setup in [AI Agent Use Cases for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_steelthread_overview.htm&release=264.0.0&type=5 "Use an AI agent to set up Order Management and complete common Order Management tasks conversationally, such as finding and canceling order items."). This use case also needs: - Active orders with items that are still eligible to cancel—not yet allocated or fulfilled. - The Order Management Agent or Order Management Operations Manager permission set. If your org doesn't include Omnichannel Inventory, use Order Management: Agent without Omnichannel Inventory or Order Management: Operations Manager without Omnichannel Inventory. - Order numbers that match between your storefront and Order Management. The order-servicing functionality comes from the **Salesforce Order Management APIs** (Generally Available), which read the order summary and submit the item cancellation. This use case is recommended for service agents who are comfortable with order servicing. It assumes familiarity with order status, allocation, and fulfillment. ## Agentic Tips - Describe your goal in your own words. For example: - "Find the last five orders." - "Pull up order 00035107 and cancel the items that are still eligible." - "Cancel the backordered items on order 00035107." - "Which items on this order can I still cancel? Go ahead and cancel them." - Include the order number, the items to cancel, a cancellation reason, and whether to cancel shipping. - Have the agent find the order and report which items are eligible before it acts. You confirm the items, and then the agent submits the cancellation and rereads the order to verify the result. - Approve the cancellation. Review the eligible-items list and confirm it before the agent submits. - Avoid pasting credentials into a prompt. The agent acts as your authenticated user through the connected org. ## Find and Cancel Eligible Order Items Find an order by order number and cancel every eligible item. ### Required Editions
View supported editions.
1. Confirm that your AI client is connected to your Order Management org as an authenticated user with permission to read orders and submit cancellations. 2. Ask the agent to find the order by order number. The agent returns the order number, status, account, order total, order date, and the number of line items. 3. Ask the agent to cancel items. The agent checks each line item's quantity available to cancel and tells you which items are eligible. 4. Choose the items and a cancellation reason, and decide whether to cancel shipping. 5. Review the request and confirm it. The agent submits all eligible items in a single cancellation. 6. Let the agent reread the order to confirm the result. The agent reports that the cancellation was submitted and shows the updated order status. A change order is created, the order totals are updated, and the status of each canceled item reflects the remaining ordered quantity. If payment was already captured for the canceled items, the excess funds are refunded. The agent reports the outcome for each item and doesn't treat a partial failure as a clean success. # Find and Switch Apps and Modules with the Enhanced App Switcher Use the enhanced Business Manager app switcher to search for apps and modules in Business Manager, and use keyboard navigation to browse through options. **How:** To access the enhanced App Switcher, the waffle icon in the top-left corner of the Salesforce interface. From there, you can search to quickly find the app or module you need, or use keyboard navigation to browse and select items more easily. # Find Missing Product Images in Your Catalog Use the Advanced Search Image filter to find products that are missing images or need image updates. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Merchant Tools** | **Site** | **Products and Catalogs** | **Products**. Click **Advanced**, and in the Related Information section, select the value for the image field. ![Image Filter](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_10/b2c_rn_25_10_search_image_filter.png) #### See Also - [_B2C Commerce Developer Guide_: Configure Advanced Product Search](https://help.salesforce.com/s/articleView?id=cc.b2c_configure_advanced_product_search.htm&language=en_US) # Find New Static IP Addresses The On-Demand Sandboxes platform now has three new static IP addresses. **Why:** It’s not necessary to allowlist On-Demand Sandbox IP addresses to gain access to them. But sometimes other systems or firewalls require that you allowlist On-Demand Sandbox IP addresses to communicate with them. If you’re responsible for facilitating communication with On-Demand Sandboxes, make sure to add these IP addresses to necessary system allowlists or firewalls: - 34.203.78.166 - 3.208.56.208 - 54.147.234.135 **How:** For instructions on how to find IP addresses for allowlists or firewalls, go to [Allowlist On-Demand Sandbox IP Addresses](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-manage-sb.html). # Find Pages Faster with Improved Page Designer List The Page Designer page list now includes enhanced search, sort, and filter capabilities to help you quickly locate the pages you need to manage. These improvements reduce the time spent navigating through large page collections and improve merchant productivity. The updated Page Designer page list includes: - **Infinite scroll:** Browse through large page collections without pagination. - **Enhanced search:** Search pages by name and ID. - **Sort by folder:** Organize pages by their folder assignments. - **Customizable grid:** Reorder and resize columns to easily read page names and view the information most relevant to your workflow. **Where:** This feature applies to B2C Commerce. **How:** In Business Manager, click App Launcher and then select **Merchant Tools** | **Content** | **Page Designer** | **Pages**. The improved list view is now available with enhanced search, sort, and filter options. #### See Also - [Create a Page Using the Page Designer Visual Editor](https://help.salesforce.com/s/articleView?id=cc.b2c_create_page.htm&language=en_US) # Find the B2C Commerce Release Notes in a New Location The B2C Commerce Release Notes are moving into the standard Salesforce Release Notes for a unified experience. **When:** This change is available starting with the B2C Commerce 26.3 release. **How:** Starting with the B2C Commerce 26.3 release, go to [Salesforce Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_commerce.htm&language=en_US). To access B2C Commerce release notes for previous releases, go to [B2C Commerce Release Notes](https://help.salesforce.com/s/articleView?id=commerce.b2c_parent.htm&type=5&language=en_US). # Finding Items to Be Adjusted Scan and locate serialized items to more easily track inventory adjustments in Point of Sale CMS's Point of Sale (POS) app. You can start scanning items to be adjusted either using an external scanner or the device's camera by tapping the scan icon at the top right. Alternatively, you can search for items using the search function. The product catalog will display, allowing users to search for items by entering text. Alternatively, using an external scanner populates the search field with the product's barcode value. After the item is scanned or found, the adjustment quantity can be set using either -/+ or manually entering a value in the text field. If you decrease the value, it reduces both theOn Hand and Available [inventory buckets](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_buckets.htm&release=264.0.0&type=5 "Point of Sale supports the following inventory buckets - Sellable Quantity, Allocated Quantity, Safety Stock, Quantity On Hand, Quantity In Transit, Quantity On Order, Not for sale, Returned items, and Floor/Demo items."). Conversely, increasing the quantity raises both the On Hand and Available inventory buckets. After confirming, the batch lists the scanned items' details along with the adjusted quantity. ## Serialized Items to Be Adjusted For app builds 10.1.1 or greater, if[serialized inventory](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_serialized_products.htm&release=264.0.0&type=5 "Point of Sale supports the management of serialized product inventory. In inventory processes such as transfers and receivings, any serialized products must have their serial numbers scanned or manually entered. The following inventory flows support serialized products: Blind Receivings, Store to Store (STS) Transfers, Return to Vendor (RTV), and Advanced Shipping Notice (ASN).") is enabled, adjustments to serialized products can only be increased or decreased by one unit. These products are identified by the `SerialNumberRequired` attribute in the [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters."). If this attribute is set to True and serialized inventory is enabled, you'll be prompted to scan or enter the serial number. Conversely, if disabled but the product attribute is set to False, no prompt appears. For increases in adjustments, entering or scanning the serial number is mandatory. For decreases, providing the serial number is optional. Each serialized item is listed individually with a quantity of 1, while nonserialized products are grouped based on duplicate counts. An error message will appear if products share the same serial number. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The POS app only verifies whether serial numbers are duplicates and doesn't validate the accuracy of entered serial numbers. # Fine-Tune Your Site’s Regional Settings You now have full control in Business Manager over all parameters used for converting numbers and dates into strings. Use the new Format Symbols tab and regional parameters to add Locale details. Where: In Business Manager, select **Administration** | **Locales** | **local ID** - The Format Symbols tab is added for Locale details. - The Numeral System settings are removed on the Locale details General Tab. - New Regional setting parameters are added to Export and Import of locales. # Fiscal Checklist Use the fiscal checklist to track action items for fiscalization in supported regions before going live with Point of Sale. This table serves as a checklist for Fiscal regions supported by Point of Sale, including comments and reference articles. Use this checklist to track all necessary action items required for fiscalization in the designated country before going live. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip A file of this checklist template can be downloaded at the bottom of this article.
Task France Germany Portugal Austria Italy Mexico Spain Comments
Create merchant company in EFSTA Portal ✓ ✓ N/A ✓ N/A ✓ ✓  
Enable fiscalization ✓ ✓ ✓ ✓ ✓ ✓ ✓  
Enter tax identifier ✓ ✓ ✓ ✓ ✓ ✓ ✓  
Enter fiscal values for additional store settings that vary from one country to another ✓ N/A ✓ N/A ✓ ✓ N/A  
Receipt configuration ✓ ✓ ✓ ✓ ✓ ✓ ✓

Configuration consists of fiscal data PS tags, paper receipt layout, and transaction e-receipt template.

Order signing fiscal unit via EFSTA Portal N/A ✓ N/A ✓ N/A N/A N/A  
Receipt document series registration N/A N/A ✓ N/A N/A N/A N/A

Register four document series per register through merchant's login account on the Tax Authority website to obtain four ATCUD codes per register.

For Prod environments, manual intervention is currently required from Backend as they need to expose it via CMS. For Staging, Backend can configure dummy ATCUD codes for test registers; no need to register document series.

Receipt ID prefix configuration N/A N/A ✓ N/A N/A N/A N/A  
Configure four ATCUD codes for each document series per register in Backend table N/A N/A ✓ N/A N/A N/A N/A

For Prod environments, manual intervention is currently required from Backend as they need to expose it via CMS. For Staging, Backend can configure dummy ATCUD codes for test registers; no need to register document series.

Activate each POS register N/A N/A N/A ✓ N/A N/A ✓

Point of Sale must provide guidance and support to ensure proper registration/activation of each PROD register via the EFSTA Portal.

Merchant access to EFSTA Portal ✓ ✓ N/A ✓ N/A N/A ✓

Merchant's email required to grant access to the company created in EFSTA Portal.

References: Help article.

Fiscal data download ✓ ✓ ✓ ✓ N/A N/A ✓

Merchant's email required to grant access to the company created in EFSTA Portal.

References: Help article.

Logo Bitmap URL N/A N/A N/A N/A ✓ N/A N/A  
Configure Customer Information and Cart Option layout N/A N/A ✓ N/A N/A N/A ✓

Customer Information and Cart Option layout required to capture the customer's full name and related Tax/VAT identifier information. The layouts need to be configured in Staging and Production environments across all app configs.

References: Customer Info, Cart Option

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If this checklist doesn’t cover your country or fiscal engine, use Point of Sale [Fiscalization SPIs](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bopis_bofis.htm&language=en_US) to connect the POS to an external fiscal system. Fiscalization SPIs support transaction processing, receipt printing, control operations such as login and logout, system health checks, and capture of government response fields in transaction logs. ## Files [Fiscal Checklist (pdf)](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/FiscalChecklist-F.pdf) # Fiscalization Online and Offline Capabilities Quickly learn which fiscalization methods countries support in online and offline mode. Use this when configuring fiscalization in Point of Sale. The table below serves as a quick reference for the online and offline capabilities of specified Fiscal countries. For example, offline mode is supported for Germany and requires a fiscal signature via Fiskaly.
  France Austria Germany Portugal Italy
  Online Mode Offline Mode Online Mode Offline Mode Online Mode Offline Mode Online Mode Offline Mode Online Mode Offline Mode
Fiscalization Method Software Software Software Software Software Hardware - Printer-driven Software Software Software Software
Fiscal Partner EFSTA EFSTA EFSTA EFSTA Salesforce Epson EFSTA Salesforce Epson Epson
Signing Partner EFSTA EFSTA Prime Sign Fiskaly Salesforce Epson EFSTA Salesforce Epson Epson
Transactions Y Y Y Y Y Y Y Y Y Y
Receipt Printing Y Y Y Y Y Y Y N Y N
QR Code (print on receipt)   Y N y N Y Y  
Fiscal Signature (printed on receipt) Y N   Y Y
Reporting Jou files from EFSTA portal Jou files from EFSTA portal RKSV extract from EFSTA Portal RKSV extract from EFSTA Portal DSFIN-k extract from EFSTA Poral DSFIN-k extract from EFSTA Poral SAFT File from PS CMS SAFT File from PS CMS Printer send daily data automatically Printer send daily data automatically
# Fiscalization Requirements for Austria Austrian merchants must register with tax authorities via Finanz Online and digitally sign all Point of Sale (POS) transactions. ## Overview of Country-Specific Fiscalization - Each merchant must sign up with Austrian tax authorities through Finanz Online (FON). They must also have a Web service user who sends data to FON regularly. - Every transaction completed on the Point of Sale (POS) system must be digitally signed and recorded in an electronic journal. - The electronic journal must be retained for seven years. - Printed receipts should include the fiscal signature in the form of a QR code. - Fiscal data reports must be provided upon request by Austrian tax authorities. - Transactions can be completed in offline mode, and the data is synchronized when the POS system is back online. ## Reporting Requirements Reports can be generated on demand from the EFSTA portal, specifically RKSV reports. These reports are requested if a merchant is facing an upcoming audit. The first transaction and annual year-end transactions, known as control transactions, are automatically generated in the RKSV. ## Third-Party Responsibilities (Salesforce) EFSTA is the primary third-party responsible for ensuring that each transaction is sequential, signed, cataloged, and stored for the required fiscal data retention period. EFSTA also provides all the reports needed during an audit. Prime Sign is the third-party software used for digitally signing each transaction. ## Offline Behavior Receipts can be printed in offline mode, but the transaction is only fiscalized after the POS system goes online. Therefore, the receipts indicate that the fiscal service was offline when the transaction was completed. After the POS system goes online, the data is synced with EFSTA to fiscalize the transaction. For more information, review the [offline and online capabilities comparison](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_online_and_offline_capabilities.htm&release=264.0.0&type=5 "Quickly learn which fiscalization methods countries support in online and offline mode. Use this when configuring fiscalization in Point of Sale.") here. - **[Setup and Configure Finanz Online Credentials](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_setup_fiscalization_credentials.htm&release=264.0.0&type=5)** Merchants connect Point of Sale to Austrian tax authorities using Finanz Online (FON) credentials. - **[Access to Reporting - Austria](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_access_to_reporting.htm&release=264.0.0&type=5)** Point of Sale reporting data is available at both the company and register levels. This means auditors can easily request and get the required DEP files. - **[Other Country-Specific Information](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_other_country_info_austria.htm&release=264.0.0&type=5)** Print control transactions and zero transactions from the Point of Sale (POS) app. # Fiscalization Requirements for France Confirm that your Point of Sale (POS) or cash register system in CMS meets criteria like inalterability, security, data retention, and archival. Most European countries have unique fiscalization rules in place to ensure accurate reporting of Value Added Tax (VAT) to tax authorities. Fiscal requirements, at a high level, necessitate that every transaction be sequential, signed, and reported to tax authorities. French Fiscal Regulation implemented since January 1, 2018, mandates that every organization liable for VAT must employ a point of sale (POS) or cash register system meeting specific criteria, including: - Inalterability - Security - Data Retention - Archival These systems must be certified by accredited bodies like Infocert or LNE. Certification is valid for one year, provided there are no software changes affecting the criteria mentioned previous. Infocert certifies Point of Sale's POS software, with the latest certification number being 525/0435–3. The last digit of the certification number increments annually upon recertification. You can find the most recent certificate at the end of this article. The latest version of the certificate can be found on the [Infocert Certificates page](https://certificates.infocert.org/). Go to **Produit | PredictSpring Modern POS** from the dropdown and then select NF525. You should be able to download the certificate. - **[High-Level Requirements - France](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_high_level_requirements_france.htm&release=264.0.0&type=5)** To comply with French fiscal regulations, Point of Sale (POS) software must be certified by French Audit Authorities and record all transactions. - **[Set Up and Configure Merchants- France](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_france_setup_and_configure_merchants.htm&release=264.0.0&type=5)** Set up fiscalization for French merchants by configuring settings in Point of Sale CMS. - **[Access to Reporting - France](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_access_to_reporting_france.htm&release=264.0.0&type=5)** Retrieve required fiscal reports, like FR Journal Archive and FR Fiscal, from the EFSTA portal in Point of Sale CMS for audits in France. # Fiscalization Requirements for Germany Point of Sale integrates with EFSTA to adhere to German fiscal regulations, providing a digital interface for financial administration. ## Overview of Country-Specific Fiscalization Germany's fiscal policy is known as Kassensicherungsverordnung or KassenSichV, for short, which translates to Cash Security Ordinance. ## Fiscalization in Germany requires the following: - All POS transactions must be signed by a Technical Security System (TSE), so they’re tamper-proof. - Produce digital interface of the financial administration for cash register systems (DSFinV-K) files during the audit (Kassennachschau). - Point of Sale integrates with EFSTA to adhere to all German Fiscal regulations. ## Reporting Requirements EFSTA provides DSFinV-K export for fiscal reporting and auditing purposes. DSFinV-K extract is required if the merchant is audited. DSFinV-K export comprises of multiple XML exports providing all the data that is required by the Auditors. Details related to DSFinV-K can be found [here](https://www.bzst.de/DE/Unternehmen/Aussenpruefungen/DigitaleSchnittstelleFinV/digitaleschnittstellefinv_node.html). Effective January 1, 2025, German authorities have mandated additional reporting requirements for electronic cash register systems. ## Offline Behavior Receipts can be printed in offline mode, but the transaction is only fiscalized after the POS system goes online. Therefore, receipts will indicate that the fiscal service was offline when the transaction was completed. After the POS system goes online, the data is synced with EFSTA to fiscalize the transaction. Review the offline and online capabilities comparison [here](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_online_and_offline_capabilities.htm&release=264.0.0&type=5 "Quickly learn which fiscalization methods countries support in online and offline mode. Use this when configuring fiscalization in Point of Sale."). ## Third-Party Responsibilities (Point of Sale) EFSTA is the primary third party responsible for ensuring that each transaction is sequential, signed, cataloged, and stored for the required fiscal data retention period. EFSTA also provides all the reports needed during an audit. - **[Set Up and Configure Merchants - Germany](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_setup_and_configure_merchants_germany.htm&release=264.0.0&type=5)** Merchants in Germany can configure fiscal settings in Point of Sale CMS to turn on fiscalization. - **[Access to Reporting - Germany](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_access_to_reporting_germany.htm&release=264.0.0&type=5)** Download the Point of Sale merchant’s store register data from the EFSTA portal to share with auditors. - **[ELSTER Reporting Requirements](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_elster_german_reporting_requirements.htm&release=264.0.0&type=5)** Merchants in Germany who use Point of Sale CMS must electronically report their systems to their relevant tax office by uploading an XML file to MyElster. # Fiscalization Requirements for Italy Set up Epson FP90III RT model printer and configure Point of Sale CMS to gain fiscalization compliance in Italy. ## Prerequisites - Modern POS App Build: 7.7.2 or later, 9.5.1 for multitender order refunds. - Platform Support: iPhone & iPad. - Offline Support: Yes (partially). ## Offline Behavior FP90 III printers can function in situations where there's no internet connection but an intranet connection is available. In other words, the POS app can connect to the printer in offline mode. However, if there's a complete internet outage, the printer won't operate. While operating in offline mode and connected to the printer, the POS app can perform these functions: - Print regular sale receipts - Print return/exchange receipts - Print X and Z reports - Reprints of receipts while in offline mode, aren’t possible. For a quick reference of the online and offline capabilities, refer to this article. [Fiscalization Online and Offline Capabilities](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_online_and_offline_capabilities.htm&release=264.0.0&type=5 "Quickly learn which fiscalization methods countries support in online and offline mode. Use this when configuring fiscalization in Point of Sale.") - **[Hardware Configuration and Setup - Italy](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_hardware_configuration_and_setup_italy.htm&release=264.0.0&type=5)** Set up your Epson fiscal printer to connect to your POS. Then, obtain the IP address so you can manually add the printer to the POS app and begin fiscalization. - **[CMS Configuration and Setup - Italy](https://help.salesforce.com/s/articleView?id=commerce.rt_cms__fiscalization_configuration_and_setup_italy.htm&release=264.0.0&type=5)** Configure fiscalization requirements for Italy in Point of Sale (POS) CMS and change the logo, department number, and X and Z report settings. - **[POS App Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_pos_app_flow_italy.htm&release=264.0.0&type=5)** The POS app lets store workers do important sales tasks, like printing tax-adjusted receipts after a sale and storing data in the cloud for tax reporting. - **[Troubleshooting - Italy](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_troubleshooting_printing_receipts_italy.htm&release=264.0.0&type=5)** Troubleshoot issues when printing fiscal receipts in Italy with error messages in the POS app, which helps store associates identify and resolve problems. - **[Known Issues & Restrictions - Italy](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_known_issues_and_rstrictions_italy.htm&release=264.0.0&type=5)** Understand the limitations in Point of Sale for printing receipts in offline mode, including different order scenarios and restrictions. # Fiscalization Requirements for Mexico Mexican tax rules require sellers to provide buyers with an electronic proof of payment. Point of Sale integrates with FiscalPop to ensure compliance with Mexico's fiscal requirements. ## Overview of Country-Specific Fiscalization Mexican tax rules say that when a buyer pays for something, the seller must give them an electronic proof of payment. However, this receipt must first gain approval from the Tax Administration (SAT). Buyers have the right to request this electronic evidence at any point during the transaction process. ## Reporting Requirements Point of Sale has seamlessly integrated with FiscalPop to make sure compliance with fiscal requirements in Mexico. All transactions, accompanied by necessary customer information (if available), are promptly transmitted to FiscalPop in real time for reporting purposes and to generate electronic proof of payment. - **[Setup and Configure Merchants - Mexico](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_setup_and_configure_merchants_mexico.htm&release=264.0.0&type=5)** Merchants who want to use Point of Sale's services in Mexico must set up a FiscalPop account. During setup, give Point of Sale key merchant details such as the Stamping URL, Auth Token, and Invoice URL. # Fiscalization Requirements for Portugal Report accurate VAT to Portugal’s tax authorities by following fiscalization requirements in Point of Sale. Most European countries have unique fiscalization rules in place to confirm accurate reporting of Value Added Tax (VAT) to tax authorities. Fiscal requirements, at a high level, necessitate that every transaction be sequential, signed, and reported to tax authorities. The purpose of this article is to provide an overview of Portugal's fiscalization requirements. - **[High-Level Requirments - Portugal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_high_level_requirements_portugal.htm&release=264.0.0&type=5)** Use the Point of Sale (POS) app to meet Portugal’s fiscalization requirements. - **[Offline Behavior - Portugal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_offline_behavior_portugal.htm&release=264.0.0&type=5)** Due to Portuguese regulations, printing receipts in offline mode is unavailable. Transactions are fiscalized when the system is online. Store associates enter the paper receipt number from the preprinted receipt given to the customer into the Point of Sale (POS) app. - **[Setup and Configure Merchants - Portugal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_setup_and_configure_merchants_portugal.htm&release=264.0.0&type=5)** Set up the ATCUD for each register and document type by sharing the required information with your Point of Sale Customer Success Manager - **[Access to Reporting - Portugal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_access_to_reporting_portugal.htm&release=264.0.0&type=5)** Access SAFT-PT files to send them to Portuguese tax authorities monthly. You can download fiscalization reports for each register in a store via Point of Sale CMS. - **[Other Country-Specific Information - Portugal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_other_country_specific_information_portugal.htm&release=264.0.0&type=5)** To comply with Portugal's VAT requirements, merchants accepting gift cards must include a line item with 0% VAT in their VAT file in Point of Sale. # Fiscalization Requirements for Spain Set up Point of Sale CMS to follow Spain's tax rules, including Verifactu and TicketBAI. These tools check how much VAT is being reported and if it's being paid. Starting January 2026, retail merchants subject to corporate tax in Spain shall follow Verifactu, the Spanish Tax Agency’s (AEAT) new invoice reporting system. Merchants that are based in the Basque Country (Araba, Gipuzkoa, Bizkaia) shall also follow TicketBAI. TicketBAI is a set of rules that were created by the provinces. ## Which System Applies to You? Your reporting obligations depend on your company’s fiscal residency, not the physical location of your stores: - **Verifactu**: applies to businesses fiscally registered in all regions of Spain except Navarre and the Basque Country. - **TicketBAI**: Applies to businesses fiscally registered in the Basque Country, even if their stores operate outside that region. ## Key Differences Between Verifactu and TicketBAI | Requirement | **Verifactu** | **TicketBAI** | | --- | --- | --- | | **Transmission** | Real-time or deferred with secure storage | Real-time only | | **Certificates** | Not required | Device certificates required | | **Software Setup** | AEAT compliance | Must be registered with provincial authorities | ## High-Level Requirements Both Verifactu (for most of Spain) and TicketBAI (for Basque Country) aim to combat tax fraud by imposing requirements on POS systems, verifying: - **Traceability and Integrity** - Sequential and unalterable transaction records - XML file generation for all transactions - Secure storage of all generated XML files - **Reporting** - Mandatory use of certified software for electronic invoicing - Capability to send billing records to tax authorities (real time for TicketBAI) - Digital signatures for XML files (TicketBAI) - **Invoice Features** - QR codes and identification codes on invoices ## Receipt Requirements [Verifactu](https://docs.efsta.net/efr/ES/receipt-layout-verifactu/) [TicketBAI](https://docs.efsta.net/efr/ES/receipt-layout-ticketbai/) ## Reporting Requirements Transactions are reported to Verifactu or TicketBAI in real time via EFSTA middleware. Merchants will be granted access to the EFSTA portal to retrieve these reports as needed. Detailed instructions on how to retrieve these files are provided [here](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_accessing_efsta_fiscal_reports.htm&release=264.0.0&type=5 "Generate fiscal reports using Point of Sale and EFSTA to sign every transaction with TSE."). ## Third-Party Responsibilities Point of Sale collaborates with EFSTA, a middleware provider that verifies the fiscalization, security, and archiving of all order data. EFSTA's documentation related to Spain is available [here](https://docs.efsta.net/efr/ES/). ## Offline Behavior Receipts can be printed in offline mode, but the transaction is only fiscalized after the POS system goes online. The receipts indicate that the fiscal service was offline after the transaction finished. After the POS system goes online, the data is synced with EFSTA to fiscalize the transaction. Review the offline and online capabilities comparison [here](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_online_and_offline_capabilities.htm&release=264.0.0&type=5 "Quickly learn which fiscalization methods countries support in online and offline mode. Use this when configuring fiscalization in Point of Sale."). ## Set up and Configure EFTSA Initial merchant setup on EFTSA is performed by the Point of Sale team, and merchant users can log in to the EFSTA portal. Merchants can ‌access their reports on the portal. ### Turn on Fiscalization for Spain Point of Sale CMS groups fiscalization settings in one place. The navigation path you use depends on whether you’re setting up fiscalization for the first time. 1. For new merchants, go to **Integrations > Fiscalization** and create a configuration. If you can’t create a configuration, switch to a merchant region that supports fiscalization. For example, a U.S. merchant region that doesn’t support fiscalization won’t allow you to create one. 2. For legacy merchants, go to **Store Management > Store Settings > Fiscal.** 1. Expand All and enable/configure these settings: Enabling Fiscalization Tax Identifier (merchant tax ID). ### Configure Receipts for Spain Fiscalization Metadata that needs to be included in ‌receipt headers and footers along with other standard fields: | Required Information | Expected Information / [PS Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_print.htm&release=264.0.0&type=5 "Print tags are placeholder strings that dynamically display data in Point of Sale layouts. Add print tags to native or HTML text overlays to display information such as order totals, customer names, or store details. You can also use print tags in certain app-level settings.") | | --- | --- | | Número de identificación fiscal (NIF) | __ | | Version | :ps\_major\_version | | Fecha de la transacción | :ps\_order\_time | | Imprimir fecha | :ps\_current\_timestamp | | Número de impresión | :ps\_print\_number | | Número de líneas | :ps\_transaction\_line\_items\_count | | Transacción | :ps\_transaction\_id | | ID del billete | :ps\_receipt\_id | For printing the Fiscal QR code on printed receipts, specific fiscal tags shall be added to the receipt template (more details on the printed receipt template can be found [here](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts.htm&release=264.0.0&type=5 "Customize your customer's checkout experience by setting up various receipt layouts, including alterations and SKU-level gift receipts in Point of Sale. Efficiently manage invoice documents and meet specific Mexico requirements for order receipts. This flexible configuration process allows you to present essential transaction details clearly and even brand your receipts with a logo image, enhancing customer satisfaction and streamlining record-keeping.")). - :ps\_fiscal\_label - :ps\_fiscal\_value If a merchant intends to use Point of Sale's email receipt template for printing Fiscal data on the email receipts, specific fiscal tags shall be added to the email receipt template (more information on the email receipt templates can be found [here](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_email.htm&release=264.0.0&type=5 "Explore the diverse range of Point of Sale email templates designed to enhance communication efficiency. Retail professionals can quickly generate consistent and effective messages, improving customer engagement and satisfaction.")). - {fiscal\_print\_placeholder\_start} - {fiscal\_print\_label} - {fiscal\_print\_value} - {fiscal\_print\_placeholder\_end} ### Obtain Digital Certificates Merchants shall obtain a company seal certificate for Verifactu compliance. This certificate lets their billing software sign invoicing records automatically and digitally. This makes it safe for tax authorities to verify the records and make sure they're valid. Verifactu - [Process Guide](https://docs.efsta.net/efr/ES/verifactu) by EFSTA. Refer Certificate Setup section TicketBAI - [Process Guide](https://docs.efsta.net/efr/ES/ticketbai) by EFSTA. Refer Certificate Registration section # Five Minute Minimum Period Enforced for WAF Log Retrieval A minimum period of five minutes is now enforced for retrieving WAF logs. This enhancement prevents setting the end time for log requests within five minutes of the current time. **How:** Log entries are made for 60-minute increments of traffic requests to your storefront. For example, The current time is 2 pm. To retrieve a 60-minute increment log file, set the start time at 12:55 pm and the end time at 1:55 pm. The setting is for a 60-minute increment and the end time isn’t within five minutes of the current time (2 pm). This change ensures improved accuracy and reliability in log retrieval and gives you more flexibility and control when querying WAF logs. Adherence to specified time frames is now guaranteed, enhancing the overall querying experience and making it easier for you to access information.
OCAPI Call Example
POST https//<yourvanityhostname>/s/-/dw/data/v18_8/log_requests/ecdn
                                
                                HEADER
                                Authorization: Bearer aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
                                
                                REQUEST BODY
                                {zone_name: "redcliff.de", start_time: "2024-04-04T12:55:00.000Z", end_time: "2024-04-04T01:55:00.000Z"}
                            
# Format the Display of Product Cards on Search Pages in a B2B Commerce Store In Experience Builder, you can change the number of product card columns and the spacing between cards on the product list page. You can also configure your search results or product listing page to show products spanning multiple pages by either page numbers or the Load More button. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Website Design**, and then click **Experience Builder**. 3. In Experience Builder, open the Search page. 4. On the main page canvas, select the Results Grid component. 5. On the Settings tab in the Grid Layout section, enter the column and spacing settings. The number of product cards on the product list page varies depending on the browser width. The columns dynamically adjust for smaller and larger devices, such as a tablet or a wide desktop screen. If you select **Fewer**, product cards are larger. If you select **More**, product cards are smaller. 6. Expand the Results Data section, and from Result Navigation, select **Pagination**, **Pagination Only**, or **Load More**. 7. To change the label, enter another Load More button label. 8. Preview and publish your store. #### See Also - [Website Design for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_customize_template.htm&release=264.0.0&type=5 "Use the Website Design workspace to add basic design elements to your store without leaving the Commerce app. For example, add your logo and set fonts, colors, and button styles. For more advanced design changes, such as configuring store components, pages, or navigation, you can move out of the Commerce app to Experience Builder.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") - [Enable Product Cards on Search and Category Pages in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_product_cards_to_display.htm&release=264.0.0&type=5 "The Results Grid component and the Product Card component enable product cards to display on the product list page. If you’re creating a store after the Summer ‘24 release, the Results Grid component is configured by default. For stores created before Summer ‘24, you must use Experience Builder to add the component and configure it.") # Franchise Management Overview Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations. Franchise management provides granular access control. Franchise users can access only data and settings relevant to their franchise group. ## Use Cases Use franchise management for: - Retailers with franchise operations alongside corporate-owned stores. - Organizations needing to separate corporate and franchise administrative duties. - Businesses requiring franchise-level reporting and user management while maintaining corporate oversight. ## Corporate Admin Capabilities Corporate admins have full visibility and control across all stores (corporate and franchise). Capabilities include: - Create and manage franchise groups (also called Store Groups). - Assign franchise admins to specific franchise groups. - Access all reports and settings across the entire organization. - Define stores under specific franchise groups. ## Franchise Admin Capabilities Franchise admins manage users and settings for their assigned franchise group only. Capabilities include: - Create and manage store associates for franchise locations. - Access reports scoped to franchise stores only. - Limited access to specific CMS modules (no access to Apps, Layouts, or Integrations). ## Prerequisites Before you enable franchise management, ensure that you: - Have corporate admin access to the CMS. - Configure the Merchant Location Region (MLR). - Review your current store structure to identify which stores belong to which franchise groups. #### See Also - [_Salesforce Help:_ Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5 "Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations.") # Franchise Reporting in Point of Sale Franchise Reporting in Point of Sale gives corporate and franchise admins access to report data based on their role. Corporate admins have full visibility across all franchise groups. Franchise admins can access data only for stores in their assigned franchise group. This role-based access keeps franchise data fully separate while giving each user type the visibility they need. Franchise Reporting is available in POS App Build 12.2 and later. ## How Access Works by Role - **Corporate admins:** View and export data across all franchise groups. Corporate admins can use the franchise ID filter to narrow reports to a specific franchise. - **Franchise admins:** View and export data only for stores in their assigned franchise group. The system automatically limits store dropdowns, filters, and exports to stores in their franchise group. - **[POS Reports Available to Franchise Admins](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_franchise_reports_available.htm&release=264.0.0&type=5)** Franchise admins have access to reports that automatically show data only from stores within the franchise admin's assigned franchise group. Store dropdowns don't include stores from other franchises or corporate-owned locations. - **[Filter POS Reports by Franchise ID](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_filter_reports_by_franchise.htm&release=264.0.0&type=5)** Corporate admins can use the franchise ID filter to narrow report data to a specific franchise or compare performance across franchises. - **[Data Exports with Franchise Attribution](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_franchise_data_exports.htm&release=264.0.0&type=5)** All data exports from Point of Sale include franchise attribution. Corporate admins can export reports for all stores and franchise groups. Franchise admins can export reports only for their franchise stores, and exports automatically include their franchise ID. - **[POS Inventory Restrictions for Franchises](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_franchise_inventory_restrictions.htm&release=264.0.0&type=5)** Franchise admins can perform inventory actions only for stores in their franchise group. #### See Also - [_Salesforce Help:_ Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5 "Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations.") # Franchise User Roles and Permissions in Point of Sale Point of Sale grants corporate admins broader access than franchise admins across franchise setup, stores, users, reports, and promotions. Corporate admins manage all franchises and can edit any promotion, while franchise admins are limited to their assigned franchise and can edit only the promotions they create. This table compares access to franchise setup, stores, users, reports, and promotions for corporate admins and franchise admins. | Capability | Corporate Admin | Franchise Admin | | --- | --- | --- | | Enable franchise management | Yes | No | | Create franchise groups | Yes | No | | View all stores | Yes | No, only stores in the assigned franchise | | Create franchise admins | Yes | No | | Create CMS users | Yes | Yes, for the assigned franchise only | | Create store associates | Yes | Yes, for the assigned franchise only | | Access Settings tabs | Full access | Limited: Cart Simulator, Monitoring, and User Management only | | View reports | All stores and franchises | Stores in the assigned franchise only | | Create promotions | Yes, for any franchise, including owned-and-operated stores | Yes, for stores in the assigned franchise only | | Edit promotions | Yes, for all promotions, regardless of who created them | Only promotions the franchise admin created | | View promotions | All promotions, across all franchises | All promotions that apply to stores in the assigned franchise, including promotions created by a corporate admin | #### See Also - [_Salesforce Help:_ Manage Franchises in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_manage_franchises.htm&release=264.0.0&type=5 "Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations.") # Frequently Asked Questions (FAQs) Get answers to common questions about offline extract and files in Point of Sale CMS ## How do you manually trigger offline extract after loading a Store Inventory/Pricing feed? If there is an urgent need to generate store-level extract after loading a Store Inventory/Pricing feed, you can do either of the following: - Change the time of the offline extract in CMS. - Load a Delta or Full Product file with the products in the Store Inventory/Pricing feed. ## When does the app retrieve offline Full and Delta files? When the store associate logins onto the device, the POS app will download the Full file and then list of Deltas after. Each store will get its variant of offline file based on the storeId that is passed from the app to the Point of Sale backend (this comes as one of the headers in API request). The app will re-download the files once the refresh time has expired. ## What if the store associate has logged out? Does the counter continue to run? ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Yes, note that the counter is reset after the store associate logs in again. ## If a store associate has logged out, is the API call made with the storeId attribution? The app stores the current storeId and registerId locally until the values are refreshed again. # Frequently Asked Questions about Promotions Get answers to frequently-asked questions about promotions in Point of Sale CMS.
Scenario Solution
How do I create multiple promotion rewards?

You can create two promotions that run concurrently that can be combined. An example is “Get 15% off and No-cost Shipping”. You can achieve this type of combined promotion by creating a 15% off promotion and selecting which promotion it can be combined with.

Promotions that can be combined will have a * next to their type label in the Promotion List view screen.

How do I suspend a promotion? You can suspend a promotion by switching the Active Switch off regardless of the start and end times of the promotion.
Will a promotion job in Point of Sale be able to consume multiple files in a single run? Yes, a promotion job will be able to consume multiple files in a single run.
If there are no files, why can't the job be completed with a success message such as, "No files found"? If the file isn't found, then the feed job is unsuccessful. The error is provided in the CMS under Feeds > Feed Logs.
Is there any region constraint in the promotion feed as we add more countries and regions (that is, Ireland, US, CA)? Can the single source file have promotion objects for all regions in the same file? If the promotions are region specific, then you can't have a single file. If the promotions are common, a single file can be used by all the region-specific promotion feed jobs.
If the promotion job fails midway, will it fail all promotions in the file or just the bad promotions? Only bad promotions will fail.
How many days-old feed logs do you retain? Point of Sale retains logs for a maximum of one month.
Will there be any alerts/notifications sent to a distribution list to alert us of the job completion, failure, and success? No, this is currently not supported.
In case of failure, do we ‌process the file again? Will Point of Sale support reprocessing and fixing these failures in production? Point of Sale will reprocess the file but only with failed entries. Otherwise, it will create duplicates for the records processed successfully on the first run.
Can we have different employee discount rates at different store locations by setting up employee discount promos with different locations as a condition?

Yes, you can have different employee discount rates at different stores by using the parent promotion feature and location-specific references.

To achieve this, set up a parent promotion that encompasses the employee discount logic. Within this parent promotion, you can specify location (store ID) specific references.

For example, you can configure the promotion to offer an employee discount of $20 at Store A and $40 at Store B. By using location-specific references within the parent promotion, you can tailor employee discount rates to match different store locations as needed.

Is there a way to export the product IDs that have been added to a promotion?

You can export product IDs from a promotion by performing an API GET request on the specific promotion you're interested in. In the JSON response, look for the section "productRules.value", which contains a list of product IDs (productIds) declared in the promotion.

See sample JSON response for example.

Do price overrides exclude promotions or discounts? If you apply a price override, often called a price correction, the item's price is updated to the newly entered value. However, any existing promotions or discounts will still apply to the corrected price. The price override doesn't exclude these promotions or discounts, but rather they'll be applied on top of the new price.
# Fulfill Orders Buy online, pick up in store (BOPIS), buy online, fulfill in store (BOFIS), and reserve online, pick up in store (ROPIS) orders give customers flexible options to receive their purchases. Streamline the fulfillment of these orders in the POS app. Empower your staff to manage these orders efficiently, ensuring customer satisfaction and repeat business. - **[Manage Buy Online, Pickup In Store (BOPIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bopis.htm&release=264.0.0&type=5)** Configure and process Buy Online, Pickup In Store (BOPIS) orders in the POS app. - **[Manage Buy Online, Fulfill In Store (BOFIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bofis.htm&release=264.0.0&type=5)** Process Buy Online, Fulfill In Store (BOFIS) orders in the POS app. Store associates pack, ship, and manage orders fulfilled from the store. - **[Use Reserve Online, Pick Up In Store (ROPIS)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_ropis.htm&release=264.0.0&type=5)** Point of Sale's Reserve Online, Pick Up In Store (ROPIS) feature lets customers reserve items online for in-store trials before buying. After reserving online, the store gets an order, allocates the items, and prepares them for fulfillment, similar to Buy Online Pick Up In Store (BOPIS). Once the order is ready, the customer receives a notification to try the items in-store before purchase. - **[Configure Status Indicators for Pickup Orders](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_status_indicators.htm&release=264.0.0&type=5)** To show status indicators for pickup orders in the Salesforce POS, set the threshold in CMS. - **[Configure Wave Picking for Fulfillment Orders in Salesforce POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_wave_picking.htm&release=264.0.0&type=5)** To process up to 10 fulfillment orders in a single picking workflow, add the Picklist Management deep link to a layout in CMS. Wave picking supports pickup orders, shipping orders, and corporate transfers. # Fulfillment Locations in Omnichannel Inventory Omnichannel Inventory uses three objects to represent the facilities that fulfill orders: Location, Location Group, and Location Group Assignment. The complete set of locations, groups, and assignments is called a location graph. When using D2C Commerce, your location graph is limited to one location and one location group. ## Location Tracks inventory availability for a location, such as a warehouse or retail store. ## Location Group Aggregates inventory availability for a group of related locations, such as within a defined geographic area or belonging to a common brand or store. When a shopper orders through a sales channel associated with a location group, the order can be fulfilled from any location or set of locations in that group. In B2B and D2C Commerce, you can associate a location group with a site or store by using the corresponding inventory list. ## Location Group Assignment The relationship between a location and a location group. A location group has one assignment for each of its locations, and a location has one assignment for each location group that it belongs to. # Fulfillment Objects Learn about the Fulfillment Order objects and fields available for reporting in Order Management. - **[Fulfillment Order Fields](https://help.salesforce.com/s/articleView?id=commerce.om_fulfillment_order_fields.htm&release=264.0.0&type=5)** The Fulfillment Order object represents a group of products and delivery charges on a single order that have the same fulfillment location, delivery method, and recipient. The products can be included in one shipment or split into multiple shipments. A fulfillment order is associated with one order summary. - **[Fulfillment Order Product Fields](https://help.salesforce.com/s/articleView?id=commerce.om_fulfillment_order_product_fields.htm&release=264.0.0&type=5)** The Fulfillment Order Product object represents a product or delivery charge associated with a fulfillment order. It’s associated with one order product summary. - **[Fulfillment Order Product Adjustment Fields](https://help.salesforce.com/s/articleView?id=commerce.om_fulfillment_order_product_adjustment_fields.htm&release=264.0.0&type=5)** The Fulfillment Order Product Adjustment object represents a price adjustment on a fulfillment order product, usually a discount. It’s associated with an order product adjustment summary. - **[Fulfillment Order Product Tax Fields](https://help.salesforce.com/s/articleView?id=commerce.om_fulfillment_order_product_tax_fields.htm&release=264.0.0&type=5)** The Fulfillment Order Product Tax object represents the tax on a fulfillment order product or fulfillment order product adjustment. It’s associated with an order product tax summary. # Fulfillment Order Fields The Fulfillment Order object represents a group of products and delivery charges on a single order that have the same fulfillment location, delivery method, and recipient. The products can be included in one shipment or split into multiple shipments. A fulfillment order is associated with one order summary. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Fulfillment Order object.
Field Label Description
Account The account or person account associated with the fulfillment order. It represents the shopper in the storefront.
Bill To Contact The contact associated with the fulfillment order. It represents the shopper in the storefront when not using person accounts.
Created Date The date when the fulfillment order was created.
Fulfilled Location The location handling the fulfillment order.
Fulfilled To Address The address of the recipient.
Fulfilled To Email Address The email address of the recipient.
Fulfilled To Phone The phone number of the recipient.
Fulfillment Order Number The auto-generated number of the fulfillment order.
Invoice The invoice associated with the fulfillment order.
Is Suspended indicates whether the fulfillment order is suspended. The default is false.
Order Delivery Method The delivery method used for the fulfillment order.
Order Recipient The name of the recipient.
Order Summary The order summary associated with the fulfillment order.
Pretax Total The adjusted total, not including tax, of the fulfillment order line items, including products and delivery charges on the fulfillment order.
Product Adjustments The total amount of the price adjustments applied to the products on the fulfillment order. This value includes adjustments only to fulfillment order line items of type Product Charge. 

Product Adjustments Tax The tax on the product adjustments.
Product Adjustments with Tax

The total amount, including tax, of the price adjustments applied to the products on the fulfillment order. This value includes adjustments only to fulfillment order line items of type code Charge.

Product Adjustments With Tax = Product Adjustments + Product Adjustments Tax

Product Subtotal The price of the products on the fulfillment order. This value only includes adjustments to fulfillment order line items of type code Product.
Product Subtotal Tax The tax on the product subtotal.
Product Subtotal with Tax

The price, including tax, of the products on the fulfillment order. This value only includes adjustments to fulfillment order line items of type code Product.

Product Subtotal with Tax = Product Subtotal + Product Subtotal Tax

Reship Indicates whether the fulfillment order is for a reshipment. The default is false.
Shipping Adjustments The total amount of the price adjustments applied to the delivery charges on the fulfillment order. This value includes adjustments only to fulfillment order line items of type code Charge.
Shipping Adjustments Tax The tax on the shipping adjustments.
Shipping Adjustments with Tax

The total amount, including tax, of the price adjustments applied to the delivery charges on the fulfillment order. This value includes adjustments only to fulfillment order line items of type code Charge.

Shipping Adjustments with Tax = Shipping Adjustments + Shipping Adjustments Tax

Shipping Subtotal The amount of the delivery charges on the fulfillment order. This value includes adjustments only to fulfillment order line items of type code Charge.
Shipping Subtotal Tax The tax on the shipping subtotal.
Shipping Subtotal with Tax

The amount, including tax, of the delivery charges on the fulfillment order.

Shipping Subtotal with Tax = Shipping Subtotal + Shipping Subtotal Tax

Status

The status of the fulfillment order. Each status corresponds to one status category, shown here in parentheses.

Possible values are:

  • Allocated (Activated)
  • Assigned (Fulfilling)
  • Canceled (Canceled)
  • Draft (Draft)
  • Fulfilled (Closed)
  • Pickpack (Fulfilling)

You can customize the status values, but you must include at least one status value for each status category.

Tax The tax on the pretax total.
Tax Locale Type

Indicates the method used to handle tax on the original order associated with the order summary.

Possible values are:

  • Gross—Displays most prices and taxes as combined values. Usually applies to taxes like value-added tax (VAT).
  • Net—Displays most prices and taxes as separate values. Usually applies to taxes like sales tax.
Total Quantity The sum of the quantities of the fulfillment order line items included in the fulfillment order.
Total with Tax

The total, including adjustments and tax, of the products and delivery charges on the fulfillment order.

Total with Tax = Pretax Total + Tax

Type

The type of the fulfillment order. Each type corresponds to one type category, shown here in parentheses.

Possible values are:

  • Download (Digital)
  • Email (Digital)
  • In Store Pickup (Physical)
  • Retail Store (Physical)
  • Supplier (Dropship)
  • Warehouse (Physical)

You can customize the status values, but you must include at least one status value for each status category.

#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Fulfillment Order Product Adjustment Fields The Fulfillment Order Product Adjustment object represents a price adjustment on a fulfillment order product, usually a discount. It’s associated with an order product adjustment summary. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Fulfillment Order Product Adjustment object.
Field Label Description
Adjustment The amount, not including tax, of the adjustment.
Adjustment with Tax

The total amount, including tax, of the adjustment.

Adjustment with Tax = Adjustment + Tax

Campaign Name The name of the campaign associated with the adjustment.
Coupon Name The name of the coupon associated with the adjustment.
Description The description of the adjustment.
Fulfillment Order Product The fulfillment order product to which the adjustment applies.
Order Product Adjustment Line Item Summary The order product adjustment line item summary associated with the adjustment.
Promotion Name The name of the promotion associated with the adjustment.
Tax The tax on the adjustment.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Fulfillment Order Product Fields The Fulfillment Order Product object represents a product or delivery charge associated with a fulfillment order. It’s associated with one order product summary. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Fulfillment Order Product object.
Field Label Description
Adjustments The total amount of price adjustments applied to the fulfillment order product.
Adjustments Tax The tax on the adjustments.
Adjustments with Tax

The total amount, including tax, of the price adjustment applied to the fulfillment order product.

Total Adjustment with Tax = Adjustments + Adjustments Tax

Description The description of the fulfillment order product.
End Date The end date of the fulfillment order product.
Fulfillment Order The fulfillment order associated with the fulfillment order product.
Gross Unit Price The unit price, including tax, of the fulfillment order product.
Line Subtotal The price, not including adjustments or tax, of the fulfillment order product.
Line Subtotal Tax The tax on the line subtotal.
Line Subtotal with Tax

The price, including tax, of the fulfillment order product.

Line Subtotal with Tax = Line Subtotal + Line Subtotal Tax

Order Product The original order product for the order product summary associated with the fulfillment order product.
Order Product Summary The order product summary associated with the fulfillment order product.
Pretax Total The price, including adjustments but not tax, of the fulfillment order product.
Quantity The current quantity of the fulfillment order product. This amount is equal to the quantity on the original order minus cancellations.
Quantity on the Original Order The original quantity of the fulfillment order product.
Quantity Unit of Measure The unit of measure for the quantity, for example, unit, gallon, ton, or case.
Reship Indicates whether the fulfillment order product belongs to a reshipment. The default is false.
Reship Reason

If the fulfillment order product belongs to a reshipment, indicates the reason for the reshipment.

Possible values are:

  • Damaged
  • Lost
  • Unknown
  • Wrong Item
Start Date The start date of the fulfillment order product.
Tax The tax on the pretax total.
Total with Tax

The total amount, including adjustments and tax, of the fulfillment order product.

Total with Tax = Pretax Total + Tax

Type

The type of the fulfillment order product. Matches the type of the associated order product summary.

Each type corresponds to one type code, shown here in parentheses.

Possible values are:

  • Delivery Charge (Charge)—Indicates that the order product summary represents a delivery charge.
  • Order Product (Product)—Indicates that the order product summary represents any other type of product, service, or charge.
Type Code

The type code of the fulfillment order product. Matches the type code of the associated order product summary. Processing depends on this value.

Possible values are:

  • Charge—Indicates that the order product summary represents a delivery charge.
  • Product—Indicates that the order product summary represents any other type of product, service, or charge.

Each type category corresponds to one or more types.

Unit Price The unit price of the fulfillment order product.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Fulfillment Order Product Tax Fields The Fulfillment Order Product Tax object represents the tax on a fulfillment order product or fulfillment order product adjustment. It’s associated with an order product tax summary. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Fulfillment Order Product Tax object. | Field Label | Description | | --- | --- | | Amount | The amount of tax represented by the fulfillment order product tax. | | Description | The description of the adjustment. | | Fulfillment Order Product Adjustment | If this object represents the tax on an adjustment, this value is the fulfillment order product adjustment to which the tax applies. If this value is null, the adjustment applies to a fulfillment order line item. | | Order Product Tax Line Item Summary | The order product tax line item summary associated with the order summary that corresponds to the fulfillment order line item to which the tax applies. | | Rate | The tax rate used to calculate the amount. | | Tax Effective Date | The date on which the Amount was calculated. Important because the tax rate can change over time. | | Type | Indicates whether the amount is actual or estimated. | #### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Fulfillment Processes and Flows Order Management includes an unmanaged package containing sample flows and processes. The samples demonstrate how you can create a fulfillment process to allocate order items to a fulfillment location and generate a fulfillment order. ### Required Editions
View supported editions.
Your Salesforce admin can use Flow Builder to modify and extend the sample flows and processes or configure fulfillment processes using Salesforce APIs and Apex custom code. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Salesforce D2C Commerce allows only one fulfillment order per order summary. If you’re using D2C Commerce, you can’t use the sample flow package. Order Management includes these default statuses for fulfillment orders. - Draft - Allocated - Assigned - Canceled - Picked - Packed - Fulfilled ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Your Salesforce admin can customize the default statuses to match the steps in your fulfillment process. However, the standard Salesforce Order Management fulfillment flows use the default Status Category mapping, so any changes to the default Status Category mapping requires the use of customized fulfillment flows. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_example.png) Example The following steps illustrate a simple fulfillment process. 1. A customer submits an order on your storefront. 2. Order Management receives the order details and runs an automated approval flow. 3. The approved order moves to a draft status and triggers the creation of an order record and an order summary record. 4. The order is allocated to a fulfillment location and assigned to a fulfillment order. 5. Order items from the fulfillment order are retrieved from available inventory (picked) and packed for shipping. 6. The order items are shipped (fulfilled). #### See Also - [Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.om_inventory.htm&release=264.0.0&type=5 "Omnichannel Inventory delivers real-time inventory availability at the location level across all your fulfillment channels. If you’re using Omnichannel Inventory with Order Management, you can get inventory availability data from the Omnichannel Inventory service and use APIs to transfer, fulfill, and release reservations. You can also manage fulfillment locations and location groups using the Omnichannel Inventory app.") - [Distributed Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_distributed_order_management.htm&release=264.0.0&type=5 "Order Management includes tools for distributing orders across your fulfillment network based on custom business logic. If you use Salesforce Omnichannel Inventory, you can also incorporate its availability features into your order routing process.") # Fulfillment Type Combination Rules Configure fulfillment combination rules in Point of Sale CMS to prevent incompatible order types. - Modern POS App Build: 8.10.0 or later. - 9.4.1 or later for bulk change - Platform Support: iPad and iPhone - Offline Support: no Point of Sale enhanced Omnichannel by adding a configuration for fulfillment combination rules. This feature will allow merchants to block certain Omnitype combinations in the POS cart. This can be used, for example, if a store can't process an order that has the fulfillment types, Try at Store, Pickup Later, and Ship to Home in the same order. 1. In CMS, go to **Store Management > Store Settings > Store Fulfillment**. 2. Go to **Omni Settings** and select the pencil icon to configure settings. 3. Select **Advanced** next to the **Enable Mixed Cart mode** switch. 4. Select **Add** on the top right. 5. Select the combination of fulfillment types that aren't allowed with each other in the cart. 6. Select **Set > Save** to save the settings. Any configured rules can be deleted by clicking the delete icon. ## Fulfillment Types - POS App Flow Use the Point of Sale (POS) app to validate fulfillment rules configured in CMS. After rules are configured in the CMS, the app will validate the rules if an order is submitted or if any tender is applied. ### Bulk Change Starting with app build 9.4.1 or greater, enhancements were made to the feature allowing bulk edits within the cart. If certain combinations of items for delivery aren't allowed, associates can change all items that fall under these restrictions. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For app builds before 9.4.1, associates manually adjust the fulfillment types for each item to complete the order. ### Bulk Edit Limitations There are limitations for bulk changes. For example, in the table, if the cart contains a custom-made item set for either "Ship to Home" or "Ship to Store" fulfillment, it isn't possible to bulk change it to either "Try At Store" or "In Store." This is because custom-made items aren't allowed to have a fulfillment type of either "Try At Store" or "In Store". If switching the fulfillment type to "In Store", and there's serialized inventory involved, associates scan each item before proceeding. Additionally, if changing fulfillment types, our system conducts standard inventory and eligibility checks. Any items that are deemed ineligible or not in stock won't be included in the bulk edit. | Cart Items | Fulfillment Type | Non-Permissible Bulk Change | Reason | | --- | --- | --- | --- | | Custom-made item and regular item | Ship to Home or Ship to Store | Try At Store or In-Store | Custom-made items aren't allowed to have a fulfillment type of "Try At Store” or “In Store” | | Alteration item and regular item | In-Store | Ship to Home, Ship to Store, or Try at Store | Alteration items can only have the fulfillment type of "In Store" | | Special item and regular item | Ship to Home | In-Store, or Pickup Later, or Pickup Nearby | Special items can only have the fulfillment type of "Ship to Home" | ### Known Issues & Restrictions If switching the fulfillment type from "Ship to Home" to "In Store", and if an EPC/Serial Number is required, the associate receives scanning prompts based on the number of products, regardless of their individual quantities. For example, if Item #1 has one, and Item #2 has two, scanning is only needed twice instead of three times. # Fulfillment Types Order Management provides three fulfillment categories and six fulfillment types. Each category is associated with one or more types. You can’t change the categories, but you can customize the list of types as long as you associate each category with at least one type. ### Required Editions
View supported editions.
To customize fulfillment types, edit the picklist values for the Type field on the Fulfillment Order object.
Fulfillment Category Default Fulfillment Types
Physical
  • Warehouse
  • Retail Store
  • In Store Pickup
Drop Ship
  • Supplier
Digital
  • Download
  • Email
# Gain Instance-Level Control Over On-Demand Sandbox Availability For flexible and cost-effective sandbox management, create schedulers for individual on-demand sandboxes (ODS). Instance-level schedulers control when an on-demand sandbox instance stops and starts, so you can configure sandbox availability based on usage patterns. Individual instance schedulers override any realm-level schedulers. **Where:** This change applies to all on-demand sandboxes that you manage with Control Center for B2C Commerce. **When:** The change is available in February 2026. **Who:** Control Center admins or users for B2C Commerce. **How:** On the Realm page, select an ODS entry to open the instance page. Click **Scheduler**, and then **Create Operation Scheduler**. Define a start scheduler, a stop scheduler, or both. ![ODS instance scheduler in Control Center](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/26_2/b2c_rn_26_2_instance_scheduler.png) #### See Also - [_Salesforce Help_: On-Demand Sandbox Operation Scheduler](https://help.salesforce.com/s/articleView?id=cc.b2c_cc_ods_scheduler_intro.htm&language=en_US) # Gain Visibility into Instance Filters for All User Accounts All users can view the instance filters that are applied to their Account Manager user roles in their account profile. Instance filters limit a role's scope to specific Business Manager instances. Previously, this information was visible only to account administrators. **Where:** This change applies to Account Manager for B2C Commerce. **How:** View user account roles, including tenant filters, on the Account Information tab in Account Manager. ![Account Information screen in Account Manager, showing instance filters applied to the user's role.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_10/b2c_account_manager_role_filters.png) #### See Also - [_Salesforce Help_: Log into Account Manager in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_login.htm&language=en_US) - [_Salesforce Help_: Roles Managed in Account Manager](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_roles.htm&language=en_US) # General Receipt Component Tags Understand the print and email tags for use in any of Point of Sale receipt components and see the templates they are included in.
Description Print Tag Email Tag Applicable Email Templates
Merchant logo - {MerchantLogo}
  • Share Payment Link
  • Transaction Print Receipt
Print date of the receipt - {print_date}
  • Auto. Customer Order Confirm
  • Customer Order Confirm
  • Gift Receipt
  • Order Print Receipt
  • Order Refund Confirm
  • Purchase Order Receipt
  • Return To Vendor Transfer
  • Share Quote
  • Store To Store Transfer
Receipt lines tag name - {receipt_lines_tag_name}
  • Order Print Receipt
  • Transaction Print Receipt
Receipt line that acts as a placeholder - {receipt_lines_placeholder}
  • Order Print Receipt
  • Transaction Print Receipt
Adds a page break in the template - {page_break}
  • Transaction Print Receipt
Major version :ps_major_version - -
Build number of POS app at time of printed receipt :ps_build_num - -
Build version of POS app at time of printed receipt :ps_build_version - -
Current date :ps_todays_date {store_current_date}
  • Auto. Customer Order Confirm
  • Customer Order Confirm
  • Order Print Receipt
  • Transaction Print Receipt
Current time stamp in "MM/dd/yyy HH:mm a" format :ps_current_time - -
Current timestamp at time of printed receipt :ps_current_timestamp - -
Current timestamp with seconds at time of printed receipt :ps_current_timestamp_with_seconds - -
Register's ID at order level :ps_order_register_id {register_id}
  • Order Print Receipt
  • Transaction Print Receipt
Store register ID :ps_store_register_id - -
Merchant's country code :ps_merchant_country_code - -
Platform :ps_platform - -
NAF code :ps_naf_code - -
Reference receipt ID :ps_reference_receipt_id - -
# Generate a Pay Now Payment Link To create payment links, use the Generate Payment Link flow in Flow Builder. This flow automates payment link generation. You can also customize the flow to pass custom metadata with a payment link. The third-party payment gateway uses this custom data to reconcile transactions and track invoices. ### Required Editions
View supported editions.
1. At the top of the page, click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_setup_icon_no_border.png) and click Setup. 2. In the Quick find box, enter then select Flows. 3. Click **Run** to run the flow, then select which type of payment link you want to create. The predefined amount link is available for an org with Payments on its own, or with Payments and Commerce. A With Products link is available only for an org with Payments and Commerce. 4. Complete the payment link form. 1. Enter a pay now page title, such as your company name. 2. For Predefined Amount link, enter the amount the customer owes. 3. Enter a description to display on the payment page, such as a thank you message or a date when the payment is due. 4. Accept the default payment method set key, or choose another one from the list. The payment method set and key are assigned when you set up your Pay Now store. The set contains the payment methods you selected for your merchant account. To use a different set, go to the Related tab of the merchant account record, create a new payment method set, and enter that key to override the default. 5. (Optional) Select whether you want the link to expire after a single use or after a specific date and time. 6. For a With Products link, select the products that the customer purchased. 7. For a With Products link, specify the link status. 5. Generate the link. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_example.png) Example Here is an example of a completed Predefined Amount link form. ![Predefined amount payment link generation form](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/pay_now_predefined_amnt_form.png) To customize the flow, select the Generate Payment Link flow, save it under a new name, then modify it. You can also build your own application workflow using the Payment Link object and a Salesforce declarative tool, such as Flow or Quick Actions. You can also use a developer tool, like Apex invocable actions. You can also generate a Pay Now link for an invoice, configure the business account ID and payment settings to associate payments with the correct business account in Billing. See [Generate Pay Now Payment Links for Business Accounts](https://help.salesforce.com/s/articleView?id=ind.billing_generate_pay_now_payment_links_for_business_accounts.htm&language=en_US). # Generate a Payment Link for a Single-Currency Org The default Generate Payment Link flow for Pay Now is set up for multi-currency orgs. To generate payment links for a single-currency org, you have to edit the flow and remove all references to the Get Default Currency from Store flow element. ### Required Editions
View supported editions.
1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_setup_icon_no_border.png) at the top of the page, then select Setup. 2. In the Quick Find box, find, and select **Company Information**. 3. In the Organizational Details section, confirm that the **Activate Multiple Currencies** checkbox isn’t selected. That unchecked setting indicates you have a single-currency org. You can’t switch this setting from multi-currency to single-currency. 4. Return to the Quick Find box, and find and select Flows. 5. Open the Generate Payment Link flow and take one of these actions: - If you added the payment link flow to an action in a Salesforce record, update the existing flow associated with the action. - Create a flow from the Generate Payment Link flow by saving it with a new name. 6. In the Predefined Amount path of the flow, edit the **Predefined Amount Payment Link** element and delete the entry for the CurrencyIsoCode field for the Payment Link object. 7. In the With Products path of the flow, complete these modifications: 1. Edit the **Get Price Book Entries** element and delete the CurrencyIsoCode field for the Price Book Entry object. 2. Edit the **Prepare Cart Input** element and delete the CartInput > currencyIsoCode variable. 3. Edit the **Create Payment Link Record** element and delete the CurrencyIsoCode field for the Payment Link object. 8. After you remove all references to the **Get Default Currency from Store** element, delete it. ![Get Default Currency from Store element in the generate payment link flow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/getcurrencyfromstore_flow_element.png) If you edited a flow associated with an action, any subsequent links you generate are suitable for a single-currency org. If you created a new flow, add the flow to an action in a Salesforce record. #### See Also - [Add a Payment Link to a Salesforce Record](https://help.salesforce.com/s/articleView?id=commerce.pay_now_app_integration.htm&language=en_US) - [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&type=5&language=en_US) # Generate a PBL Report in Point of Sale CMS The Pay by Link report shows details that can help with tracking transactions and reconciliation. These details include the gross sales of a store and the sales/percentage of the different payment links. 1. In CMS, go to **Store Management** | **Reporting and Analytics** | **Pay By Link Report**. 2. Configure the search filters. 3. Click **Generate Report**. After you've generated your report, you can view additional information at the store level by clicking **VIEW** under PBL Transaction Details. On this screen, you can view the card type made with the transactions, card amount, order number, and so on. Note that the report excludes any pending orders: - **Remote PBL Transactions**: These may be in a pending state, but they won't appear on the PBL report until the payment is completed and approved. - **In-Store PBL Transactions**: These don't have a pending state. If a payment isn't made within a specific time frame (for example 24 hours), it'll be listed in the Failed Orders report. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip For a comprehensive list of updated sales terminology and definitions, see [Sales Reporting Glossary of Terms and Definitions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_sales_reporting_glossary.htm&release=264.0.0&type=5 "To understand sales data, use this glossary of terms commonly seen in sales and app reports in Point of Sale."). # Generate B2C Payment Records in the Payments Workspace Centralize all payment activity, including payments from B2C storefronts, in the Payments Workspace. To make B2C payments accessible, create a merchant account in the Payments app that is linked to an existing B2C merchant account associated with Stripe. This account consumes payment data from Stripe and generates payment intents listed in the Payments Workspace. You can distinguish B2C, B2B, or D2C payment intents based on the associated merchant account. ### Required Editions
View supported editions.
User Permissions Needed
To change digital experience settings: Customize Application
To ingest B2C payment data, you create a Salesforce Payments merchant account, then modify a few B2C Payments settings in Business Manager. 1. In the Payments app, go to **Settings** and click **Add Account**. 2. Select **Use an Existing Payments Merchant Account** | **Next** | **Go to Stripe**. 3. Log in to Stripe using the credentials for the linked B2C merchant account, then select the proper account from the list. 4. Complete the Stripe account setup. 5. After the Stripe setup is complete, return to the Payments App **Settings**, and verify that you see the new Salesforce Payments Merchant Account in the list view. 6. Go to Business Manager for your B2C org, and select **Administration** | **Salesforce Payments**. 7. Click **Configure** and enter the Salesforce Org ID for the org where you created the Salesforce Payments merchant account. To find your org ID, go back to the org with the Salesforce Payments merchant account, and select **Setup** | **Company Information.** 8. Select the Merchant Account ID for the account linked to the Salesforce Payments merchant account. 9. From the Merchant Account page, click **Configure** and enter the **Salesforce Merchant Account ID** and the **Salesforce Payment Gateway ID** of the Salesforce Payments merchant account. To find these IDs, return to the Payments app and view the Salesforce Payments merchant account and its related Payment Gateway record. After a payment transaction occurs at a B2C storefront, confirm that you can see B2C payment intent in the Workspace. To determine the right payment intent records, look for the merchant account associated with the B2C org. #### See Also - [Salesforce Payments Monitoring](https://help.salesforce.com/s/articleView?id=commerce.payments_reports_intro.htm&language=en_US) # Generic Mapping Logs Enhanced Updated logs and metrics for the Import and Export Generic Mapping feature provide a data source for troubleshooting generic mapping issues. And now there’s a generic mapping performance alert notification for support and engineering. # Get a Higher Level of Time Stamp Accuracy with `ProductInventoryRecord.AllocationResetDate` `ProductInventoryRecord.AllocationResetDate` now supports a higher level of accuracy in the database. The change is backward-compatible. #### See Also - [Release information: `AllocationResetDate` Migration to Millis](https://salesforce.quip.com/aRyXASNONIGR) - [Class ProductInventory](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/scriptapi/html/api/class_dw_catalog_ProductInventoryRecord.html) - [OCAPI product\_inventory\_record](https://developer.salesforce.com/docs/commerce/b2c-commerce/references/ocapi-data-api?meta=type%3Aproduct_inventory_records) # Get Accurate Allocation Amounts with a Null Allocation Payload `PATCH and PUT /product_inventory_records/{product_id}` now supports a null allocation payload while keeping accurate account of product allocation amounts and allocation reset date. Previously, sending a Patch or Put call to set a custom inventory record attribute using a null `allocation` payload resulted in an invalid reset date. # Get Alerts When Two-Factor Authentication Not Enabled for Code Uploads Business Manager now issues alerts if a production instance doesn’t disallow code uploads or a staging instance doesn’t require a client certificate to upload code. For security reasons, we request that customers disallow code uploads to production instances and require a client certificate for code uploads to staging instances. We recommend making these configuration changes as soon as possible and no later than April 1, 2020, when we mandate this configuration. # Get AWS SFTP Stability with Automatic Timeout Adjustment B2C Commerce now boosts the efficiency of SFTP transactions on AWS by preventing prolonged connection times. To mitigate issues related to delayed server responses, the timeout setting for an AWS SFTP connection now has a minimum threshold of 10 seconds. # Get Better Null Basket Handling for Seamless Shopping We improved how null baskets are managed in the cache. If the storefront basket isn’t available or is null in the cache, it’s loaded from storage using the ORM primary key access. Only valid baskets are considered to make the shopping experience smooth and uninterrupted. # Get Better Predictability of Your Service Profile Import Previously, when you imported a service profile with a circuit breaker turned on but no call or interval values set, the values were set to 120 calls and 20000 milliseconds by default. Now both values are set to 0 by default. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Administration** | **Operations** | **Import & Export** | **Services**. Import your services. #### See Also - [Services in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_services.htm&language=en_US) # Get Better SEO Search Results In Business Manager, the Catalog URL rules now use the localizable display value for product attributes with the type Enum of String. The localizable display value improves readability and the SEO value of storefront URLs that use multiple languages. Previously, Product URL attributes used the non-localizable Value. # Get Complete the Set Recommender Types for Products Without Shopper Interactions Einstein Product Recommendation now generates Complete the Set recommender types for products that have no or minimal shopper interactions. Einstein Complete the Set finds the closest matching product with an assigned set and assigns the set to the product. After the product has sufficient product-to-product interactions, it’s assigned to its own natural set. Previously, new products and products with minimal shopper interactions were excluded from Complete the Set recommendations. # Get Consistent Storefront Preview URLs Storefront preview URLs from Business Manager are now reliable and reflect the live storefront experience. The preview URL is generated based on the vanity hostname defined as the SEO alias instead of using the generic hostname. This improved consistency also applies to previews generated from the list and detail pages for Product and Content in Business Manager. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and select **Merchant Tools** | **Site** | **SEO** | **Aliases** (1). If you add an HTTP/HTTPS hostname in Aliases, the preview shows that URL. If you don’t add an alias, the preview uses the first configured vanity host name. Business Manager generates these URLs based on standard URL rules, so they may differ for Composable development models. To preview the storefront, select **Storefront** (2). ![Aliases and Preview Storefront URL](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/26_1/b2c_storefront_preview.png) #### See Also - [_Salesforce Help_: Hostname Aliases](https://help.salesforce.com/s/articleView?id=cc.b2c_hostname_aliases.htm&language=en_US) - [_Salesforce Help_: Configure a Hostname Aliases](https://help.salesforce.com/s/articleView?id=cc.b2c_configuring_hostname_alias.htm&language=en_US) # Get Coupon-Based Promotions with New Script API The `PromotionMgr.getActiveCustomerPromotions(boolean ignoreCouponCondition)` script API returns all active promotions including coupon-based promotions when ignoreCouponCondition set to true. You can use the returned promotions to expose promotions on your storefront. For example, display a callout message for coupon-based promotions on product detail or product list pages. # Get eCDN Zones Ready for Hyperforce and Improve Site Efficiency Now you can migrate legacy zones to proxy zones using B2C Commerce Business Manager and the CDN-API. This migration is a prerequisite for customers moving to Hyperforce. Proxy zones standardize your eCDN configuration, include the latest security and auto-renewing certificate features, and prevent legacy zone hierarchy issues. #### See Also - [Migrate a Legacy Zone to a Proxy Zone](https://help.salesforce.com/s/articleView?id=cc.b2c_migrate_legacy_zone_to_proxy_zone.htm&type=5&language=en_US) # Get Einstein Recommendations for Large Product Catalogs Commerce Cloud Einstein now generates recommendations for product catalogs that exceed 3 million product SKUs. Einstein Product Recommendations enable you to create and manage recommenders and assign strategies that predict the most relevant products to promote to individual shoppers. How: If you have a product catalog that exceeds 3 million product SKUs, Commerce Cloud Einstein compiles a reduced list of 3 million product SKUs by default–no action required. To compile the list, Einstein uses sorting and filtering logic based on [pre-defined criteria](https://help.salesforce.com/s/articleView?id=000395814&type=1&language=en_US). Einstein recommendations are generated from this list. If your catalog exceeds 3 million product SKUs, and you want to ensure that products matching specific criteria appear in the reduced product list, contact Commerce Cloud Support. #### See Also - [Commerce Cloud Einstein Product Recommendations](https://help.salesforce.com/s/articleView?id=cc.b2c_einstein_site_recommendations.htm&language=en_US) - [Getting Started with Einstein Product Recommendations](https://www.youtube.com/watch?v=lEi2HC20KBc) # Get Enhanced Security with TLS v1.3 The B2C Commerce service framework now supports TLS v1.3 for outgoing HTTP calls made from the platform. TLS v1.3 provides enhanced security features that don’t require complex configuration. It offers modern encryption standards that protect against known vulnerabilities and supports secure integration with third-party partners. If you encounter connectivity issues while using TLS v1.3, contact Support for assistance. # Get Help with Product Visibility Issues with the Troubleshooting Assistant To troubleshoot issues with product visibility, ask the Troubleshooting Assistant for help. The Troubleshooting Assistant can help you determine whether a buyer or guest customer can see a product in the B2B store. The Troubleshooting Assistant displays the tasks required to configure a store and its products and which of those tasks have been completed. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**, and then click **Troubleshooting**. 3. Under Troubleshooting Assistant, select the issue that you want help with. 4. Search for and enter the product. 5. Search for and enter the store. 6. If applicable, search for and enter the user you want to see the product as. 7. Click **Submit**. The Results panel shows the product’s status and identifies tasks that aren't complete. #### See Also - [Commerce Workspaces](https://help.salesforce.com/s/articleView?id=commerce.comm_workspaces_intro.htm&release=264.0.0&type=5 "In the Commerce app, you can use multiple workspaces to make your work easier, find and update information, and organize shared content. You can access each workspace without having to leave the Commerce app. Understand the landscape of each workspace and the difference between the Commerce workspace list view and the standard Salesforce list view. Customize list views, apply bulk actions, and edit entries in the workspaces to manage your B2B store’s needs. Manage your store’s registered buyers and shoppers in the Customer workspaces.") # Get Holiday Ready with B2C Technical Solutions Read our latest technical guides to learn how to efficiently build scalable solutions that perform through any sales season. Why: You want your ecommerce site to perform well and be protected during the holidays. Each B2C Commerce Technical Solutions topic provides an in-depth look at the subject with expert implementation advice, so developers and architects of all skill levels can build high-performing B2C Commerce solutions. Topics include: - [Launching a Successful Flash Sale](https://developer.commercecloud.com/s/article/TechnicalSolutions-Launching-a-Successful-Flash-Sale)–Plan for and launch a successful flash sale with these 10 steps. - [Traffic Management for Flash Sales](https://developer.commercecloud.com/s/article/TechnicalSolutions-Traffic-Management-for-Hype-Sales)–Prepare your site to handle the unprecedented traffic a hype sale can generate. - [Bot Mitigation Best Practices for Flash Sale](https://developer.commercecloud.com/s/article/TechnicalSolutions-Bot-Mitigation-Best-Practices-for-Flash-Sales)s–Protect your site from malicious bot activity. - [Caching Strategies for Salesforce B2C Commerce](https://developer.commercecloud.com/s/article/TechnicalSolutions-Caching-Strategies-for-Salesforce-B2C-Commerce)–Implement efficient caching strategies to accelerate website speeds. How: Access these topics on the Commerce Cloud [Developer Center](https://developer.commercecloud.com/s/) by selecting Solutions > Technical Solutions. # Get Improved Search Index Performance B2C Commerce has updated the search index rebuild process. The update decreases resource usage and improves performance, and an unchanged index is no longer published when no changes are detected. Previously, a redundant product update index task was executed following the index rebuild, and a new search index was published when no documents were altered. # Get Information About the Content and Performance of Your Storefront The new Storefront Toolkit is now generally available (GA). The new toolkit provides increased security and performance over the previous version of the Storefront Toolkit, which is now deprecated. The new Storefront Toolkit includes these tools. - Page Information tool: Displays information about the templates, controllers, and pipelines associated with a component. - Content Information tool: Displays links to the product, content asset, or content slot associated with a component. - Search Information tool: Displays sorting rule and search scoring information for a search result. The Cache Information tool indicates which components are cached. - Cache Information tool: Indicates which components are cached. - Request Log: Displays log entries related to requests to the server from the storefront. - Site Preview Settings tool: Lets you view the storefront as it appears at a specific date, for certain customer groups, or using a specific source code. How: To access the new Storefront Toolkit, in Business Manager, select the site to view. Click Toolkit at the top of the navigation bar. The storefront opens with the Storefront Toolkit icons in the upper right corner of the page. If you use the new Storefront Toolkit, we recommend that you disable the previous Storefront Toolkit at **Merchant Tools** | **Site Preferences** | **Deprecated Storefront Toolkit Preferences**. For more information about the new Storefront Toolkit, see [Storefront Toolkit](https://help.salesforce.com/s/articleView?id=cc.b2c_sftk_container.htm&type=5&language=en_US). # Get More Commerce Partner Apps on AppExchange By March 2023, more than 250 Commerce Partner apps are migrated from the Commerce Cloud LINK Marketplace and made available on AppExchange - reducing costs, increasing efficiency, and driving Commerce Cloud customer success. Use Commerce Partner apps to deliver digital and composable experiences faster, easier, and with less cost. Streamline operations while increasing revenue, and create personalized customer moments with dynamic shopping experiences. Where: [Commerce Cloud AppExchange](https://appexchange.salesforce.com/mktcollections/cloud-collections/commercecloud). #### See Also - [Salesforce Expands AppExchange Commerce Ecosystem for Retailers to Find Success Now](https://:salesforce.com/news/stories/link-appexchange-migration/) # Get More Functionality with OCAPI 22.4 With the release of OCAPI 22.4, new functionality has been added to some Data and Shop APIs. You can now search and sort `creation_date` and `lastmodified_date` in more Data API searches. In Shop API, use the new `guest` flag for the Order response document to determine whether the order was created by a guest or a registered customer. How: Search and sort `creation_date` and `lastmodified_date` in these Data API searches. - `/order_search` - `/product_search` - `/customer_lists/{customer_list_id}` - `/customer_search` - `/custom_objects_search` - `/{object_type} /catalog_search` # Get More JavaScript Features and Functionality with Compatibility Mode 22.7 With compatibility mode 22.7, the B2C Commerce server-side JavaScript engine supports more elements from ECMAScript 6 (ES6) and later. You can access new and expanded features, including top-level built-in types and methods for existing classes. #### See Also - [Compatibility Mode Changes](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/site_development/b2c_compatibility_mode_considerations.html) # Get More Storefront Calls The `api.dw.net.HTTPClient.send` quota has doubled. You can now make up to 16 storefront calls. The warning threshold has also been increased from 5 to 10. # Get Near Real-Time Segmentation with Data Cloud B2C Commerce storefronts can now leverage customer segments created in Data Cloud on a near real-time basis, eliminating the need for batch activation. With up-to-date customer segments, your storefronts can provide timely, personalized, and targeted shopper experiences. This feature is generally available in the 25.2 release. #### See Also - [Near Real-Time Customer Segmentation with Data Cloud](https://help.salesforce.com/s/articleView?id=cc.b2c_data_cloud_near_real_time_container.htm&type=5&language=en_US) # Get PayPal Integration in Salesforce Payments When you offer PayPal as a payment method, your shoppers get expanded payment options and you see fewer abandoned carts. You can now add the PayPal payment option to your B2C Commerce storefront. The PayPal integration eliminates customizing PayPal implementations. How: Add a new or existing PayPal merchant account directly from Business Manager. Select PayPal for express or multi-step checkout, and easily add PayPal to payment zones. After setup, the PayPal payment methods appear automatically during checkout. # Get Ready for Multi-Factor Authentication Enforcement in May The requirement to use multi-factor authentication (MFA) when accessing Salesforce products went into effect on February 1, 2022. To help customers satisfy this requirement, MFA is soon to be a permanent part of the B2C Commerce login experience. Starting May 1, 2022 and continuing on a rolling basis through the end of May, Salesforce is enabling and enforcing MFA for all users who log in directly to B2C Commerce applications. Where: This change applies to Business Manager, Account Manager, Log Center, Control Center, and On-Demand Sandboxes for Salesforce B2C Commerce. When: May 1 through 31, 2022 How: Here's what to expect: - On behalf of customers, Salesforce automatically enables MFA for all users who log in directly to B2C Commerce. Users already logging in with MFA aren’t affected. - To enforce MFA, we remove the option for admins to turn off or modify MFA settings for their organizations. - After MFA is enforced, all users must use MFA each time they log in. If a user hasn’t already registered for MFA, they’re prompted to do so before they can get access to their account. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note If you use SSO to access B2C Commerce, Salesforce doesn’t enable or enforce MFA for your SSO identity provider. However, you are contractually required to implement MFA for all your users who access B2C Commerce through SSO. To satisfy this requirement, you can use your SSO provider’s MFA service. There are some use cases that are exempt from the MFA requirement. If any of these situations apply to your implementation, take the following steps before MFA is enforced to avoid potential disruption to your business. - If you use the ROPC grant type, you need to change to the client credential grant type or authorization grant type. See [Password Grant Type Changes for Salesforce B2C Commerce](https://help.salesforce.com/apex/HTViewSolution?urlname=Password-Grant-Type-Changes-for-Salesforce-B2C-Commerce) for more information. - If you use automated user interface testing tools, see “How do I use MFA with system users/automated processes?” in the [B2C Commerce Multi-Factor Authentication FAQ](https://help.salesforce.com/apex/HTViewSolution?urlname=B2C-Commerce-Multi-Factor-Authentication-FAQ). - If you’re planning to use a combination of trusted devices and trusted networks to satisfy the MFA requirement, contact your Salesforce representative. #### See Also - [Salesforce MFA FAQ](https://help.salesforce.com/apex/HTViewSolution?urlname=Salesforce-Multi-Factor-Authentication-FAQ) - [Multi-Factor Authentication Enforcement Roadmap](https://help.salesforce.com/apex/HTViewSolution?urlname=Multi-Factor-Authentication-MFA-Auto-Enablement-and-Enforcement-Roadmap) # Get Ready for the Google Chrome 80 Cookie Change Google Chrome 80, scheduled to be released in February 2020, introduces a new default cookie attribute setting of SameSite=Lax. Previously, the SameSite cookie attribute defaulted to SameSite=None. Also new with Chrome 80, when SameSite is set to None, cookies must be tagged with the Secure attribute indicating that they require an encrypted HTTPS connection. Other browser vendors are expected to make similar changes soon. To get ready for the changes, enable the global security preference Enforce HTTPS. Also, test to see if client-side JavaScript code requires adjustments and to make sure that third-party integrations work as expected. Why: Starting with the B2C Commerce 20.1 Preview Release, we implemented changes to ensure that cookies behave as expected after the Chrome 80 release. The B2C platform specifies SameSite=None for cookies from the server. You have to enable the global security preference Enforce HTTPS so that the server can mark cookies with the Secure attribute and specify SameSite=None. If Enforce HTTPS is not enabled, the server does not specify the SameSite attribute. In that case, the browser uses its own default SiteSame setting and doesn’t send cookies in cross-site contexts. Depending on the significance of the cookie, not sending it can break critical site functionality. If you are using a B2C Commerce release previous to 20.1 Preview, you can enable the global security preference Enforce HTTPS to prepare for the changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note To prepare for the Google Chrome changes, you must enable the global security preference Enforce HTTPS. Enabling Enforce HTTPS as a site preference doesn’t enable the necessary functionality. We recommend that you test enabling Enforce HTTPS on a non-production instance before implementing the change on a production instance. We also recommend that you wait until after the holiday shopping season to make the change. The functionality changes in response to the new Google Chrome SameSite default setting will be available in B2C Commerce as of January 9, 2020, for the 20.1 GA release, and as of January 16, 2020, for the 20.1 GA Update release. If you set cookies using custom client-side JavaScript, test to determine if your code requires adjustments to accommodate the Chrome 80 changes. Also, test cross-site scenarios to make sure that third-party integrations work as expected with the Chrome 80 changes. How: To enable Enforce HTTPS, in Business Manager, go to **Administration** | **Global Preferences** | **Security**. On the Access Restrictions tab, select **Enforce HTTPS**. Click **Apply**. For more information about testing, refer to [Get Ready for the Google Chrome Cookie Attribute Change](https://help.salesforce.com/s/articleView?id=cc.b2c_cookie_attribute.htm&type=5&language=en_US). # Get Recommended Actions to Improve Store Performance Use the available goals and their corresponding recommended actions to achieve specific targets for your B2B Commerce store. You can choose which recommended actions to take. Some are based on insights into your store and unique to your store’s data, and others are general recommended actions. Monitor goal progress over time with data-driven insights into conversion rate, average order value, site traffic and more. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. From the App Launcher, find and select **Goals & Actions**. 2. From the Scope dropdown, select a store to view the available goals. 3. Select a goal to see the corresponding recommended actions. 4. To view the details of a recommended action, click **Get Started**. 5. To proceed with the recommended action, click **Get Started** or close the window to exit. Use the History table to view the date, details, status, and output of accepted actions for the selected goal. #### See Also - [Considerations for Goals & Actions](https://help.salesforce.com/s/articleView?id=commerce.comm_gnr_considerations.htm&release=264.0.0&type=5 "As you begin using goals and actions, keep these considerations in mind.") # Get Runtime Insights for OCAPI 21.8 Requests The new OCAPI Data API `/metrics/{apitype}?offset={Integer}&limit={Integer}` provides insight into runtimes of individual OCAPI requests against the Shop or the Data API. The metrics resource responses are JSON-wrapped metrics in Prometheus Exposition format. # Get Smarter Business Insights with Commerce Intelligence (Pilot) Take a deep dive into customer behavior and key business metrics with Commerce Intelligence dashboards powered by CRM Analytics and Data Cloud. Use the Product Intelligence dashboard to understand the best and worst selling products, categories, and their trends over time. Delve into customer insights like number of active customers, average order value, and segmentation with the Customer Lifetime Value dashboard. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note This feature is not generally available and is being piloted with certain Customers subject to additional terms and conditions. It is not part of your purchased Services. This feature is subject to change, can be discontinued with no notice at any time in SFDC’s sole discretion, and SFDC can choose to never make this feature generally available. Make your purchase decisions only on the basis of generally available products and features. This feature is made available on an AS IS basis and use of this feature is at your sole risk. Who: To participate in the pilot program, contact your account executive. How: From Analytics Studio, create a CRM Analytics App and select Commerce Intelligence. From Administration, turn on the Commerce Intelligence feature switch and set the CRM Analytics URL. # Get Started with Point of Sale Learn about supported hardware, onboarding steps, and store-readiness requirements. Refer to a go-live checklist and ‌general Frequently Asked Questions (FAQs) to guide your deployment process. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In 2024, Salesforce acquired PredictSpring, a provider of modern retail point-of-sale (POS) software built natively in the cloud. PredictSpring was renamed Retail Cloud and is now called Point of Sale. You may still see references to PredictSpring or Retail Cloud in the Point of Sale app and in our documentation. - **[Supported Devices and Platforms](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_intro.htm&release=264.0.0&type=5)** Point of Sale runs on iOS, Android, and Windows devices. Point of Sale supports certified terminals, stands, barcode scanners, printers, and cash drawers. Self-certify legacy hardware from supported manufacturers to use that hardware with the POS app. - **[Go-Live Checklist Tool](https://help.salesforce.com/s/articleView?id=commerce.rt_gs_go_live_tool.htm&release=264.0.0&type=5)** The Go-Live Checklist in the Point of Sale CMS provides a clear overview of a merchant's readiness for launch, ensuring a smooth transition to live operations. Users can quickly access and complete specific checklist items, with easy links to help articles for guidance. This tool streamlines the go-live process, helping users efficiently manage - **[Onboarding Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_gs_onboarding.htm&release=264.0.0&type=5)** Get started with Point of Sale's by understanding the deployment lifecycle and key integration points. Quickly configure feeds, ERP, and payment gateways, and manage your store operations and analytics through the content management system. - **[Miscellaneous Frequently Asked Questions](https://help.salesforce.com/s/articleView?id=commerce.rt_gs_faq.htm&release=264.0.0&type=5)** Find answers to questions about the general features and functions of Point of Sale. # Get Started with Salesforce Commerce Prepare your Salesforce org for Commerce and create a draft store. Explore resources and learn more about Commerce features and functionality. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Set Up Commerce with the Automated Assistant](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&release=264.0.0&type=5)** Use the automated and guided assistant to configure your Salesforce org for Commerce and create an online store. Preview and polish the store before going live. - **[Set Up Commerce Manually](https://help.salesforce.com/s/articleView?id=commerce.comm_csa_automations_features.htm&release=264.0.0&type=5)** If you choose not to use the Commerce Setup Assisant, you can manually set up your Commerce org and store. - **[Start Selling Online](https://help.salesforce.com/s/articleView?id=commerce.comm_createstore.htm&release=264.0.0&type=5)** The store is where shoppers and buyers go to view, select, and purchase your products. We provide the Commerce Store template to get you started creating B2B stores. - **[Learn More About B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_learningmap.htm&release=264.0.0&type=5)** Learn about the possibilities with Salesforce B2B Commerce. Design a store website that showcases your brand and offers engaging customer experiences. Add products to the store, and configure the tax, shipping, and payment services. Optimize store performance using SEO, insights, and recommended actions. # Get Started with the Omnichannel Inventory Console The Omnichannel Inventory console is the first thing you see when you open the Omnichannel Inventory app. Use to look up inventory availability, add and edit SKU counts, and manage locations, location groups, and location group assignments. ### Required Editions
View supported editions.
Use the Omnichannel Inventory console to: - Look up available inventory for a SKU. - Add and edit SKUs. - View, add, edit, and delete locations. - View, add, edit, and delete location groups. - Assign locations to location groups. - Remove locations from location groups. - Commit location and location group updates. If you’re using Omnichannel Inventory and Salesforce B2C Commerce, open the Omnichannel Inventory app by using the App Launcher in your Salesforce org. If you’re using Omnichannel Inventory and Salesforce Order Management, open the Omnichannel Inventory app by using the Navigation bar dropdown in the Salesforce Order Management console or by using the App Launcher. - Location Lookup tab: Use to search inventory availability by SKU and location group and add and edit SKUs. - Location Management tab: Use to view lists of locations and location groups. Open records to see detailed information about locations and location groups. Add, edit, and delete locations and location groups. Synchronize changes that you make in the Omnichannel Inventory Console with the data maintained in Omnichannel Inventory. #### See Also - [Salesforce Console](https://help.salesforce.com/articleView?id=console2_about.htm&language=en_US) - [Omnichannel Inventory App](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_app.htm&release=264.0.0&type=5 "Use the Omnichannel Inventory app to view, add, and edit inventory SKU counts and manage locations, location groups, and location group assignments.") # Get the Active Inventory Integration Mode When code depends on whether B2C Commerce is integrated with Omnichannel Inventory, use the new `dw.catalog.ProductInventoryMgr.getInventoryIntegrationMode()` Script API method to get the active inventory integration mode. It returns a constant defined in the `ProductInventoryMgr` class. # Get to Know No Profile, No Card, No Receipt (NRR) Returns No Profile, No Card, No Receipt (NRR) returns allow retailers to process returns without the original order details. Point of Sale creates a new staged order with the items for return, which enables processing returns or exchanges, even without a receipt. Refunds for NRR returns are issued using the tender configured in the NRR policy. ## NRR vs. Receipted Returns This table outlines the differences between a receipted and a nonreceipted transaction. | NRR | Returns | | --- | --- | | Original order details aren't available | Original order details can be retrieved | | System creates a new staged order, containing all items the customer wants to return without a receipt | No internal or staged order is created as original order details are available | | Returns are processed against the NRR order | Returns are processed against the original order | | Refund can't be issued to the original tender. Instead, the tender configured in the NRR policy is used | Refund can be issued to the original tender | ## NRR Detailed Mechanics If performing NRRs without a purchase receipt, Point of Sale's POS doesn't have the original order. The system makes an NRR order that includes the items you want to return. It then immediately processes a return or exchange (along with any other purchases) on the No Receipt Returns order. For all exchanges and returns involving purchases, a new order is created for the purchased items. The user can see the NRR order being created and it is posted to the Point of Sale OMS and, if needed, to the external OMS. ## NRR Flow Details
description example
NRR (Create) N/A
An NRR order is created, containing all the items being returned without a purchase receipt. The order is always a cash order with a total equivalent to the lowest historical prices of the returning items. The created order is posted to the external OMS.

NRR without Purchase

  • A customer returns item 2001 without a receipt. The lowest historical price is $10.00.
  • NRRs order #PS00001101 is created with item 2001, totaling $10.00 with cash as the tender.
  • The order status is updated to RETURNED, and the amount is refunded using the configured tender.
NRR (Update) N/A
The newly created NRR order is updated with the return or exchange details. The update is posted to the external OMS.

NRR with Even Exchange

  • A customer exchanges item 2001 (Red) for item 2001 (Blue) without a receipt.
  • NRRs order #PS00001101 is created with item 2001 (Red).
  • The order status is updated to RETURNED.
  • A new order #PS00001102 is created for item 2001 (Blue).
New Order (Create) N/A
If a purchase is made along with the NRRs, a new sale order is created for the purchased items. The cash amount from the NRR order is used as one of the tenders. The new order is posted to the external OMS.

NRR with Purchase

  • A customer returns/exchanges item 2001 and purchases item 3131 without a receipt. The lowest historical price of item 2001 is $10.00, and item 3131 is $45.00.
  • NRR order #PS00001101 is created with item 2001, totaling $10.00 as a cash order.
  • The order status is updated to RETURNED/EXCHANGED.
  • A new order #PS00001102 is created for item 3131, totaling $45.00. The order uses $10.00 (cash) from PS00001101, and the remaining $35.00 is charged to the customer.
  • The customer pays $35.00 and receives a receipt for order #PS00001102, which can later be used for returns or exchanges.
## Summary of Order Creation and Updates for NRRs | NRR Type | NRR odrer (Create) | NRR ORder (UPdate) | New Order (Create) | | --- | --- | --- | --- | | Pure Return | Y | Y | N | | Return with purchase where payment is performed | Y | Y | Y | | Return with purchase where refund is issued | Y | Y | Y | | Even Exchange | Y | Y | Y | | Even Exchange with purchase | Y | Y | Y | Y Order is created/updated and posted to the external system. N Order isn’t created. # Get to Know the Order Management Console The Order Management Console is the first thing you see when you log in to Order Management. The Order Summary page is the primary workspace in the console. ### Required Editions
View supported editions.
![The Order Management Console in Salesforce Order Management.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_console.png) Use the Order Management Console to manage your work. You can also customize the console to make it your own. - The Navigation bar gives you access to the primary records used to manage the order lifecycle. The tabs place key order details on the same page and minimize clicks and scrolling. - You can access objects and features, including fulfillment orders, payment summaries, invoices, credit memos, accounts, and reports, from quick links and related lists. - Use the split view feature to see all records in a list view while keeping the console workspace tabs and subtabs open. Quickly process cancellations, returns, reshipments, exchanges, refunds, and discounts in the Actions & Recommendations section. #### See Also - [View Records in the Order Management Console](https://help.salesforce.com/s/articleView?id=commerce.om_view_records_in_the_order_management_console.htm&release=264.0.0&type=5 "Your order records display in a list view in the Order Management Console. List views are a great way to sort, prioritize, and analyze the records that are most important to you.") - [Customize the Order Management Console](https://help.salesforce.com/s/articleView?id=commerce.om_customize_the_order_management_console.htm&release=264.0.0&type=5 "Modify settings in the Order Management Console to make it your own. Configure custom tabs and fields, and modify page layouts and components to make it easier for users to find the information that they want.") - [Salesforce Console](https://help.salesforce.com/articleView?id=console2_about.htm&language=en_US) # getCustomersProductList Returns a Pageable Response The Response to getCustomersProductsList now returns a pageable list of all customer's product lists. The default page size is 100. # Ghost Email Share collections and cart via email from any email ID of your choice in the Point of Sale (POS) app. ## Configuration Options ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This article applies to the legacy platform. If you see **Integrations** | **Email Integration** in your CMS, you're on Hyperforce. Follow [Set Up Your System for Email Communications](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_email.htm&release=264.0.0&type=5 "To send emails using Point of Sale, you must verify that you’re authorized to use an email address, domain, or both for each region where your stores operate. Point of Sale uses Amazon Simple Email Service (SES) to verify your email address and domain identities. You can manage identities in the CMS, view verification statuses, and take action as needed. Verify a domain if you send email from multiple email addresses or verify just one email address to send communications.") instead. To send emails from the POS app, Salesforce needs to set up a sender's email profile. Merchants have two options: - Salesforce Backend can add stores@merchant.com or \[yourchoice\]@merchant.com as the sender ID on Salesforce email dispatch service. - Point of Sale can create a subdomain on Salesforce and send the merchant DKIM and DNS record sets that merchants require to put in their DNS. The first option is preferred as it's faster to implement. ## Setting Up a Ghost Email Contact your Salesforce Customer Success Manager with your preferred setup option. - For option 1, provide the email address to use as sender ID. - For option 2, Point of Sale will provide you with the DKIM and DNS record to insert into your DNS. ## IP Address Allow Listing Salesforce emails are sent from these two IP address - 54.240.87.185 - 54.240.87.186 # Gift Card Support in POS Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option. ## Paying with a Gift Card When a store associate clicks on the Set Gift Card Tender deep link, the app prompts the associate to provide the gift card number and pin. After the associate clicks on Apply, the app shows the balance along with a field for entering the amount to apply to the purchase. The associate can either click Cancel to not proceed or Apply to proceed with tendering using this gift card. After applied, the app shows the amount charged to the gift card in the summary section on the bottom right of the cart screen along with the balance remaining. The tendered gift card is also shown in the summary section on the bottom right. If you decide not to use this card, you can remove it by clicking on the remove icon beside the tendered gift card. ## Purchasing a Gift Card When a store associate clicks on the Purchase a Gift Card deep link, the app prompts them to provide the gift card number and the amount to add to the gift card. The store associate can click ISSUE to add this gift card to the cart for purchase and checkout by paying with any other tender to complete the transaction. ## Adding Value to a Gift Card When the store associate taps the Add Value to Gift Card deep link, the app prompts them to enter the amount to add to the gift card. After confirmation, the app adds the gift card along with the added value to the cart. The store associate can check out by paying with any other tender to add value to the gift card. ## Redeeming a Gift Card When the store associate taps the Redeem Gift Card link, the gift card is added to the cart as a returned product. The gift card balance is the return total for that product. ## Returns via a Gift Card When a customer walks in with a gift receipt or with no receipt to return a product, the app will be able to return the amount to a new gift card. The associate can fill the cart with the returned products and go to the cart screen. When the store associate clicks Return, the app shows a list of options to which the tendered amount can be returned. If the Return Policy is set to return to Gift Card, the app shows the option to do so. The associate can select the gift card option and click Confirm. The app prompts the associate to provide the Gift Card number. Only new, unused gift cards can be used for refunds. After VERIFY is clicked and the gift card is confirmed to be new, the appropriate amount is returned to the gift card. ## Receipts Gift card information can be included on email and print receipts using [Email Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_email.htm&release=264.0.0&type=5 "Email tags in Point of Sale are placeholders for email and print templates that pull specific information from data that are then shown instead of the actual placeholder.") and [Print Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_print.htm&release=264.0.0&type=5 "Print tags are placeholder strings that dynamically display data in Point of Sale layouts. Add print tags to native or HTML text overlays to display information such as order totals, customer names, or store details. You can also use print tags in certain app-level settings.").
Description Email Tag Print Tag
Gift card purchase value {gift_card_balance}

:ps_p_gc_balance

Available in 9.2.1 app build

Gift card balance {gift_card_tender_balance}

:ps_gc_tender_balance

Available in app build 9.2.1 for sales, 9.10.1 for refunds/exchanges

Payment tender type (for example Gift Card) {payment_methods}

:ps_payment_tender_type

  • Available in 9.2.1 app build

  • Must be used with "=IF" function to show text and value. See Receipt Layouts.
## Known Issues & Restrictions - Returns back to the original gift card are not supported. - You can't add another product or a gift card while redeeming a gift card. The app throws the error, "_Multiple gift card cash outs not allowed_". Cashing out a gift card is always ‌a separate transaction. - Gift card purchases can't be made using pay by link. If attempted on the POS app, users see the error message: "_Cannot start remote pay by link when there are gift card products in the cart._" ## Configure Gift Card Support in POS POS offers flexible options for gift card support, including buying, balance checks, and payment processing. Integrate gift card services directly, through payment gateways like Adyen and Verifone, or through a Service Provider Interface (SPI) for comprehensive transaction reporting. Merchants manage vendor contracts, while Salesforce provides the tools to configure cash redemption thresholds and enable features like gift card purchases with other gift cards. - Modern POS App Build: 5.1.0 or greater - Platform Support: iPhone, iPad - Offline Support: No - Configure Return Policies for both Offline and Online modes. If not configured, gift card functionalities might not work like issuing a new gift card or adding balance. See [Returns Policy Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_returns_policy_configuration.htm&release=264.0.0&type=5 "The Point of Sale (POS) app lets store associates perform returns on purchased items based on configured policies.") - For direct integrations, we offer out-of-the-box support for Givex, Clutch, and Netsuite. - Via Adyen, we support Givex, SVS, and Fiserv (formerly Valuelink). See [Gift Cards via Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_gift_cards_terminal.htm&release=264.0.0&type=5 "Configure Point of Sale's Point of Sale (POS) to accept gift card payments, add value, cash out, and check balances, using a payment terminal. Merchants can select the integration approach that suits their needs, verifying all transactions are available through gateway reporting."). - Via Verifone Flex, we support Givex and SVS. See [Gift Cards via Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_gift_cards_terminal.htm&release=264.0.0&type=5 "Configure Point of Sale's Point of Sale (POS) to accept gift card payments, add value, cash out, and check balances, using a payment terminal. Merchants can select the integration approach that suits their needs, verifying all transactions are available through gateway reporting."). - Via the Gift Card Service SPI, you can connect to any gift card provider. See [Gift Card Service SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/references/gift-card-spi?meta=Summary) For gift card platforms that overlap between direct and gateway integrations, you can choose the approach that best suits your needs. Opting for the gateway approach ensures that all transactions are available through the gateway reporting. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Merchants are responsible for directly contracting with their chosen gift card vendor. Salesforce doesn't manage vendor contracts for merchants. ### Create Gift Card Integration Each gift card service has its own set of required fields. This configuration is specific to direct integrations via the backend (for example GiveX, Clutch). 1. Go to **Integrations** | **Gift Cards**. 2. Click **Create**. 3. After choosing a service, fill out the required fields. See [Gift Card - Clutch Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_gift_card_clutch.htm&release=264.0.0&type=5 "The Point of Sale (POS) app supports gift card integration with Clutch. Learn how to configure a Clutch account with the supported functionality.") and [Gift Card - Givex Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_gift_card_givex.htm&release=264.0.0&type=5 "Point of Sale's POS supports gift card integration with Givex. Learn how to configure a Givex account with the supported functionality."). 4. (Optional) Under Advanced: 1. Configure Cash Out Config if you want to have a threshold when redeeming cash with a gift card. 2. Enable Allow Gift Card Purchase to permit buying gift cards with another gift card. 3. Enable Require Activation to mandate gift card activation. 5. Save your changes. The cash out configuration is used to determine the threshold when redeeming cash with a gift card. There are two fields: - Default Cash Redemption Threshold: This field specifies the dollar amount specified for the cash redemption. - State-Specific Cash Redemption Thresholds: These are cash redemption limits for specific states. For example, in the state of California, customers can redeem their gift card as cash if the gift card has less than or equal to $15. In the state of Texas, customers can redeem their gift card as cash if the gift card has less than or equal to $25. For all other states, the threshold is $10, because it was set as the default. ### Set Gift Cards as Tender A gift card needs to be added as one of the supported tenders so that it can be shown on the POS app. 1. Go to **App** | **All**. 2. Edit an app config. 3. Go to **Modules** | **Cart**. 4. Turn on the flag, Has Gift Card. 5. Save your changes. 6. Go to **Store Management** | **Store Setting** | **Payment**. 7. Expand **Advanced**. 8. Under Supported Tenders, make sure “GiftCard” is one of the supported tenders. 9. Save your changes. ### Configure Gift Card Deep Links Set deep links on layouts to manage gift card behavior on the POS app. 1. Edit a layout or hamburger menu. 2. Add these deep link(s) for the specific use case: - Set Gift Card Tender: Displays the gift card configuration screen - Purchase a Gift Card: Allows gift card to be added to the cart for purchase - Add to a gift card: Adds value to the gift card - Cash out a gift card: Allows gift cards to be cashed out - Check gift card balance: Checks current gift card balance ### Display & Delete Applied Gift Cards Turn on the POS app to show applied gift cards on the cart screen and provide an option to delete them. 1. In CMS, go to **Apps**. 2. Edit an app config. 3. Go to **Modules** | **Cart**. 4. Turn on the flag, Has Gift Card (HasGiftCard). ### Configure Returns to Gift Card via Tender Mapping Optionally, you can configure mappings to allow returns from any sales tender to be issued as a gift card return. Note that these mappings apply only to returns made within the specified return policy window. 1. In CMS, go to **Store Management** | **Return Policy Configuration**. 2. Edit a policy. 3. Go to **Return Tender Mapping**. 4. Configure the fields. See [Returns Policy Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_returns_policy_configuration.htm&release=264.0.0&type=5 "The Point of Sale (POS) app lets store associates perform returns on purchased items based on configured policies."). # Gift Certificate Report The new Gift Certificate report in Reports and Dashboards provides metrics on gift certificate purchases and redemptions. Why: The report metrics give you insights about the revenue generated through gift certificate sales, the average gift certificate amount, the number of redemptions, and more. You can filter the report by date range, site, device type, customer type, and local. How: Access the report in Reports and Dashboards. Select the Products tab, then select the Gift Certificate tab. ![To access the report, Select the Product tab, then select the Gift Certificates tab.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_2/b2c_20_2_w7044829_giftcert_image_je.png) - Select the **Products** (1) tab. - Select the **Gift Certificates** (2) tab. # Give Access to Person Accounts If you’re using Person Accounts to represent shoppers, give access to the appropriate permission sets to access Person Accounts. 1. From Setup, in the Quick Find box, find and select **Permission Sets**. 2. Select the permission set that controls access for your Order Management users. Typically, it’s named OM Console. 3. In the Apps section, click **Object Settings**. 4. Select **Accounts**. 5. Click **Edit**. 6. In the Account: Record Type Assignments section, select both **Business Account** and **Person Account**. 7. Click **Save**. 8. Repeat this process for the OM Management B2C Service permission set, which provides access to Salesforce records. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Give Order Management B2C Service Permission Set Access to Inventory Objects and Fields If you use Salesforce Order Management and B2C Commerce, give the Order Management B2C Service permission set access to the inventory objects and fields. 1. From Setup, in the Quick Find box, enter Permission Sets, and then select **Permission Sets**. 2. Select **Order Management B2C Service**. 3. In the Apps section, click **Object Settings**. 4. Select **Order Products**. 5. Click **Edit**. 6. In the Field Permissions section, find Reserved at Location and select its **Edit Access** checkbox. 7. Click **Save**. 8. From the objects dropdown, select **Location Group Assignments**. 9. Click **Edit**. 10. In the Object Permissions section, select all of the checkboxes. 11. Click **Save**. 12. From the objects dropdown, select **Location Groups**. 13. Click **Edit**. 14. In the Object Permissions section, select all of the checkboxes. 15. Click **Save**. 16. From the objects dropdown, select **Locations**. 17. Click **Edit**. 18. In the Object Permissions section, select all of the checkboxes. 19. Click **Save**. # Go-Live Checklist Tool The Go-Live Checklist in the Point of Sale CMS provides a clear overview of a merchant's readiness for launch, ensuring a smooth transition to live operations. Users can quickly access and complete specific checklist items, with easy links to help articles for guidance. This tool streamlines the go-live process, helping users efficiently manage ![The CMS shows the go live checklist tool.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_gs_go_live_tool.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This tool helps users understand the approximate status/overview of the merchant's go-live readiness. This tool is not designed to provide a detailed status of the merchant's go-live readiness as of now, although there will be ongoing changes to improve the experience with the tool. ## Accessing the Tool Any user who has at least "SETTINGS" permission or higher access rights would be able to access this tool. For more information about roles/permissions refer to [CMS User Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_user_management.htm&release=264.0.0&type=5 "Customize users in CMS to control access to reports, configurations, and other features within a company."). To access the tool in CMS, open **Go Live Checklist** from the sidebar menu. The tool will be readily available to analyze the status of the merchant's go-live readiness. ## Understanding the Tool There are many tasks and checklist items that are required before the merchant goes live. This tool divides all the checklist items into a few main sections. After all the checklist items are done, the main section of those checklists gets updated as completed. ## Supported Status There are three different statuses for each section and for each checklist item under those sections. - In Progress - Not Yet Started - Completed ## Understanding the Sections in This Tool Go Live Completeness: This section summarizes the overall status of the entire checklist for merchant readiness. - UX and Settings: Contains checklist items related to settings, look, and feel of the store app. - Data Feed: Contains checklist items related to the data feed for the current store. - Store Policy: Checklist to set various configurations for store setup. - Tax: Tax configuration for the store. - Integrations: Checklist for various third-party and in-house integrations. - Promotions: Promotion-related integration for store. ## Known Issues & Restrictions Resetting order IDs in the Order Number Range Configuration (**Advanced** | **Order Number Range Config** from the CMS sidebar menu) before going live may lead to errors caused by duplicate order IDs. You will receive a confirmation prompt if you choose to ignore the warning and proceed.![The confirmation prompt for resetting order IDs.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_gs_go_live_tool_warning.png) # Goals & Actions Get specific actions that you can take to achieve performance goals for your B2B Commerce store. Goals can include improving site conversion and increasing site traffic and average order value. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Considerations for Goals & Actions](https://help.salesforce.com/s/articleView?id=commerce.comm_gnr_considerations.htm&release=264.0.0&type=5)** As you begin using goals and actions, keep these considerations in mind. - **[Get Recommended Actions to Improve Store Performance](https://help.salesforce.com/s/articleView?id=commerce.comm_gnr_recs.htm&release=264.0.0&type=5)** Use the available goals and their corresponding recommended actions to achieve specific targets for your B2B Commerce store. You can choose which recommended actions to take. Some are based on insights into your store and unique to your store’s data, and others are general recommended actions. Monitor goal progress over time with data-driven insights into conversion rate, average order value, site traffic and more. - **[Set a Target to Track Goal Progress](https://help.salesforce.com/s/articleView?id=commerce.comm_gnr_edit_target.htm&release=264.0.0&type=5)** Track the progress of your goal over time, and see how completing recommended actions impacts your progress. The target remains set until you reach the target value or its end date. # Grant Buyers Access to External Accounts for a B2B Store An external account is an account for which the buyer isn’t a contact. You can grant a B2B buyer access to an external account by assigning them the Buyer Manager role. When shopping in a B2B store, the designated buyer can switch to an external account that they have access to. The buyer can purchase on behalf of that account or add and activate users, reset passwords, and view their shopping carts, depending on how you configure their privileges. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) A buyer that you designate to access an external account must be assigned the preconfigured Buyer Manager permission set. The assignment must include system permissions or be assigned an equivalent custom permission set. The buyer must have the Customer Community Plus license or a license with a higher level of privileges. A buyer that you designate to manage buyers in an external account must also have delegated external user administration rights, which you assign to the buyer’s profile. For more information, see [Delegate External User Administration](https://help.salesforce.com/s/articleView?id=platform.networks_DPUA.htm&type=5&language=en_US). The buyer’s account and the external account must be part of buyer groups that are assigned to the same store. You can create up to 200 external managed accounts per user. 1. Configure the buyer’s account. 1. From the buyer’s account record, go to the External Managed Account related list. 2. Click **Configure**. 3. Enter a name for this external managed account record. 4. For User, enter the name of the buyer. 5. For Target Account, enter the name of the external account that the buyer can switch to. 6. Under Authorized Access, select the privilege level to assign to the buyer for the account and move it to the Selected Access list. To allow the buyer to purchase on behalf of the external account, select **Buy For**. To allow the buyer to manage users in the external account, select **Manage Users**. 7. Save your changes. 2. Share the external account with the buyer. You can create Apex-based rules to automate sharing. For more information, see [Sharing a Record Using Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_bulk_sharing_creating_with_apex.htm). 1. From the account record of the external account, select **Sharing** from the dropdown menu. 2. In the Search dropdown, select **Customer Portal User**. 3. Search for the buyer. Leave Account Access as Read Only. 4. Save your changes. 3. Add the Account Switcher option to the profile menu in the store. At present, the Account Switcher supports only business accounts. 1. In Experience Builder, click the profile menu. 2. Under Authenticated User Options, select **Edit Default User Profile Menu**. 3. If the Account Switcher menu item is already added, skip to step g. Otherwise, click **\+ Add Menu Item**. 4. In the Type field, select **Modal**. For older stores built on the Aura platform, select **Event**. 5. In the Event field, select **Account Switcher**. 6. Enter a name for the menu item, for example, Switch Accounts. 7. Click **Save Menu**. When the buyer logs into the store, they can select the Switch Accounts option from the user profile menu and choose an external account. ![Swtich accounts screen showing accounts that can be selected](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/switch_accounts.png) You can use `{!CurrentUser.effectiveAccountId}` as the Account Id attribute value in components that track account IDs. This value updates the data that’s displayed in the component to the account that’s being switched to. For example, the Related Record list component shows the Members list on the Account Management page and uses `{!CurrentUser.effectiveAccountId}` in the Parent Record Id field by default. When the user who is managing the target account switches to the target account, the information on the Account Management page switches to the context of the target account. The managing user can manage target account members from there. To implement behavior based on account switching, you can create a custom component and use the account ID `{!CurrentUser.effectiveAccountId}`. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note When setting up an account-based expression, use the expression User.Commerce.EffectiveAccountId to ensure that the buyer’s selected account is used and not their user account. If you don’t specify an EffectiveAccountId, the system defaults to the user account. #### See Also - [Configure a Business Account as a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_accounts.htm&release=264.0.0&type=5 "Create a business account and then enable it as a buyer account. Add contacts to the buyer account and enable the contacts as customer users.") - [Customize the Profile Menu in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_user_profile_menu.htm&release=264.0.0&type=5 "In Experience Builder, you can define how you want your user profile menu to appear, including using company names and logos.") # Grouped Taxation Applied to Import and Export Orders B2C Commerce now recognizes imported and exported orders created with group taxation and uses the group taxation method to calculate tax for those orders. #### See Also - [Do More with VAT Calculation Method for Taxation](https://help.salesforce.com/s/articleView?id=commerce.rn_vat_calculation_method.htm&type=5&language=en_US) # Guest Basket Lifetime Limit Is Increased The lifetime limit for a guest customer basket is now the lesser of 30 days and the registered customer basket lifetime. Previously, it was the lesser of 7 days and the registered customer basket lifetime. This limit applies to input validation in the BM Basket Preferences UI and Basket Preferences Import. It also affects resolving the guest basket lifetime if it isn’t set, for example, for the basket cleanup job. # Guide Shoppers to Manually Add Coupons The B2C guided shopping agent now helps shoppers manually apply coupons to the cart and clearly shows complex discounts in the cart summary and order confirmation pages. To enable the B2C Commerce Coupon Management agent topic, contact your Salesforce account executive. **Where:** This change applies to B2C Commerce and requires Service Cloud or Sales Cloud in Developer, Unlimited, and Enterprise editions with the Agentforce add-on. #### See Also - [_Salesforce Help_: B2C Commerce | Configure Your Agent to Apply Coupon to B2C Cart](https://help.salesforce.com/s/articleView?id=cc.b2c_shopping_agent_apply_coupon_to_b2c_cart.htm&language=en_US) # Guidelines for Adding Product Images to a B2B Commerce Store Enhance the visual appeal and user experience in your store with product images. Showcase alternate views, list images, banners, and tiles to help customers better understand and engage with your products. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - Product detail images—You can add up to nine alternate views of a product on the product detail page and specify the order in which they’re displayed. The optimal size is 2048x2048 pixels with an aspect ratio of 1:1. - Product list image—You can add one product list image to a product. The image appears in search, the cart, and category view. The optimal size is 800x800 pixels with an aspect ratio of 1:1. - Banner image—The image spans across the width of a page. Use a banner to promote a specific product or category. The optimal size is 1260x600 pixels. - Tile image—Provides a quick view of your product or category. You can add one tile image to a product or category. The optimal size is 500x500 pixels with an aspect ratio of 1:1. If an image isn’t square and scaled to fit, it might not display optimally. Tall images with minimal width are scaled to fit the display area and appear as a vertical line. - Attachments—You can provide detailed information or specifications about a product or category. Attachments appear with the product detail images. - Site logo—The company logo is the smallest image on a store page. The optimal size is 100x100 pixels with an aspect ratio of 1:1, 2:3, or 4:1. #### See Also - [Add Media to Products and Categories](https://help.salesforce.com/s/articleView?id=commerce.comm_prod_cat_media_groups.htm&release=264.0.0&type=5 "To provide more information about your products and categories, add images, videos, and attachments. You can associate media to parent and variation products. You can also associate a banner image to your B2B store’s product category pages.") - [Product Image Optimization](https://help.salesforce.com/s/articleView?id=commerce.comm_product_image_optimization.htm&release=264.0.0&type=5 "B2B Commerce store components that include product images automatically scale the images for optimal performance and remain sharp across different devices.") - [Guidelines for Adding Product Videos to a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_video_guidelines.htm&release=264.0.0&type=5 "Integrate videos into the product gallery to enhance your store and provide a richer shopping experience.") # Guidelines for Adding Product Videos to a B2B Commerce Store Integrate videos into the product gallery to enhance your store and provide a richer shopping experience. ### Required Editions
View supported editions.
These are the guidelines to keep in mind when adding videos to your product pages. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note These limits don't apply to embedded video links.
Attribute Requirement
File names Can contain letters, numbers, spaces, and symbols. Must not begin with a period.
File formats MOV, MP4, and WEBM
File size Maximum of 1 GB
Resolution Maximum resolution of UHD/4K Resolution: 3840 x 2160 pixels
Length
  • Maximum: 10 minutes
  • Minimum: 0.25 seconds
Height and width
  • Maximum: 100 pixels
  • Minimum: 4096 pixels
Maximum frame rate 120 frames per second
Supported aspect ratios
  • 16:9
  • 9:16
  • 4:3
  • 3:4
  • 1:1
Bitrates
  • HLS
    • SD 480: Range from 900 kbps to 2800 kbps
    • HD 720: Range from 2000 kbps to 6500 kbps
    • HD 1080: Range from 3200 kbps to 10400 kbps
  • MP4
    • SD 480: Range from 0.9 Mbps to 1.5 Mbps
    • HD 720: Range from 1.6 Mbps to 4.5 Mbps
    • HD 1080: Range from 2.5 Mbps to 7.2 Mbps
Supported frame rates
  • 60 fps
  • 30 fps
  • 25 fps
Supported resolutions
  • 3840x2160 (UHD)
  • 1920x1080 (1080p)
  • 1280x720 (720p)
  • 854x480 (480p)
Supported codecs
  • Video: H.264 (AVC)
  • Audio: AAC, MP3, Opus
Supported color spaces
  • Rec.601
  • Rec.709
  • Rec.2020
Supported video providers
  • Adis
  • Amplience
  • Brightcove
  • Cloudinary
  • Vidyard
  • Vimeo
  • Wistia
  • Youtube
#### See Also - [Add Media to Products and Categories](https://help.salesforce.com/s/articleView?id=commerce.comm_prod_cat_media_groups.htm&release=264.0.0&type=5 "To provide more information about your products and categories, add images, videos, and attachments. You can associate media to parent and variation products. You can also associate a banner image to your B2B store’s product category pages.") - [Guidelines for Adding Product Images to a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_prod_cat_image_types.htm&release=264.0.0&type=5 "Enhance the visual appeal and user experience in your store with product images. Showcase alternate views, list images, banners, and tiles to help customers better understand and engage with your products.") # Guidelines for Assigning Permission Sets We recommend that you assign permission sets to users that grant them only the required permissions to carry out their jobs. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Follow these guidelines when assigning permission sets to users. - To limit access to top-level functionality, restrict the number of users assigned to Administrator and Commerce Administrator permission sets. - Users assigned to Commerce Administrator and Administrator require no other permission sets. - Buyer, Buyer Manager, and Shopper permission sets allow external users to view and purchase products on your storefront. You can set up guest browsing during store configuration so that external users can view and purchase products without registering. - Follow task-based assignments for your internal users, including Merchandisers and Administrators. Use the permission set descriptions to match users with the personas that meet their required capabilities. #### See Also - [Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_overview.htm&type=5&language=en_US) - [View Permission Set Overviews](https://help.salesforce.com/s/articleView?id=commerce.comm_perm_set_overviews.htm&release=264.0.0&type=5 "The permission set overview page gives detailed information about permission set functionality. From there, view settings such as Object Settings, Flow Access, and System Permissions.") - [Preconfigured Permission Sets for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_preconfigured_perm_sets.htm&release=264.0.0&type=5 "Preconfigured permission sets provide B2B users, from customers to admins, with access to required features and functionality. An admin can customize a preconfigured permission set by cloning it and then modifying the individual permissions in the permission set.") - [Commerce Personas and Permissions](https://help.salesforce.com/s/articleView?id=commerce.comm_personas.htm&release=264.0.0&type=5 "A typical B2B implementation involves several task-based personas, such as commerce administrator, merchandiser, developer, and shopper.") # Guidelines to Assign Featured Products to a Product in B2B Stores Consider these validations when you’re assigning featured products to a product. ### Required Editions
View supported editions.
- You can't assign a product as its own featured product. - You can assign up to 10 featured products for a product. - Featured products must be sellable SKUs. - Variation parents and sets can’t be assigned as featured products, as they aren’t sellable. - Every parent-feature-relationship type combination must be unique. #### See Also - [Product Classes, Variations, and Attributes](https://help.salesforce.com/s/articleView?id=commerce.comm_product_class.htm&release=264.0.0&type=5 "A product class determines whether a product is sold individually or has variations. You can assign a product variation up to five attributes. Each variation has its own SKU so that you can track it.") # Hardware Configuration and Setup - Italy Set up your Epson fiscal printer to connect to your POS. Then, obtain the IP address so you can manually add the printer to the POS app and begin fiscalization.
 
\*\*Setting Up Your Epson Printer\*\* This is an image of an example Epson printer and its available ports. - 1\. USB Port for the numeric keyboard - 2\. Ethernet port - 3\. Display port - 4\. Power port ![Ports marked on an Epson printer](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_epson_italy.png) ## Set up the Printer Follow these steps to set up your printer. 1. Put the display cover in the display so the cable hangs out. 2. Connect the display to the display port (3). 3. Connect the numeric keyboard to the printer through the USB port (1). 4. Connect the Ethernet cable from your router to the Ethernet port (2). 5. Insert the paper roll into the printer. 6. Connect the power port (4) to the printer and turn the switch on. 7. If everything is correctly set up, the display looks like this.![Cash Register Display when printer is correctly set up](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_drinter_display_italy.png) A representative from the tax authority will need to validate the production setup in terms of both hardware and software in the actual store. ## Obtain IP Address The default IP address of the FP90 printer is 192.168.0.2. However, this value may be different. To obtain the IP address, make certain the printer is connected to a network using an ethernet port. 1. Begin when the printer display shows STATO REGISTRAZIONE. 2. Enter 3333. 3. Press CHIAVE. 4. Enter 19. 5. The display should now show the following information:![IP address of register connected to printer](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_ip_address_italy.png) 6. Press SUBTOTALE and the printer will print the IP address along with other network details on the receipt. ## Disabele Auto Opening of Cash Drawer By default, when the receipt is printed, the cash drawer will reopen. To turn this off, press the following combination using the numeric keyboard: 1. Start from the state where the printer's display shows STATO REGISTRAZIONE. 2. Enter 3333. 3. Press CHIAVE. 4. Enter 1. 5. Press SUBTOTALE. This action will print out the menu with index keys for each setting. 6. Check the number of the index for the cash drawer (AP.?AUT.?CASSETTO). It should be index 26. 7. Input the index 26. 8. Change the status by pressing X and the updated status should be 0. 9. Press CONTANTE. 10. Press CHIAVE. ## Enable Rounding on Printer By default, rounding of the total amount will be disabled on the printer. To turn it on, press the following combination using a numeric keyboard. 1. Start from the state where the printer's display shows STATO REGISTRAZIONE. 2. Enter 3333. 3. Press CHIAVE. 4. Enter 15. 5. Press CONTANTE until flag 27. 6. Check that the value is 1 or press 1 to update. 7. Press CONTANTE. 8. Press CHIAVE. ## Enable Printer in POS App Epson fiscalization models can't be discovered automatically in the network. The printer's IP address must be added manually into the POS app. After the IP address is known: 1. Register setup should have the printer set up to the IP connection and the printer type should be Epson All. 2. On the POS app, go to the Device Manager screen. 3. Tap on Add Printer and enter the IP address shown by the printer based on the instructions covered in Obtaining IP Address section of this article. 4. The POS app will connect to the printer via IP. A message will be shown if there has been an error. Otherwise, the printer will be added to the Device Manager screen. ## Enable Reprints on Printer For reprints, a manual login to the printer must be performed. To do that, press the following combination using the numeric keyboard: 1. Start from the state where the printer's display shows STATO REGISTRAZIONE. 2. Enter 3333 3. Press CHIAVE. 4. Enter 39. 5. Press the following keys: 17, 18, 19, 20, 21. 6. Press G. ## Change Logout Time After login is done, by default, the printer will log out again in 30 minutes. To update this time, press the following combination using the numeric keyboard. Make sure to perform the login first to change the logout time frame. 1. Start where the printer display shows STATO REGISTRAZIONE. 2. Enter 3333. # Hardware Topology Setup Point of Sale's Printer and Payment Terminal Topology allows you to determine whether the application is paired with a printer or payment terminal one-to-one (1:1) for an extended period of functionality or whether it's one-to-many (1:N) where it is prompted each time to select the device to use. ## Configuring Printer Topology - 1:1 Select the printer you want to pair and print for an extended session at the merchant or register level in Point of Sale CMS. ### Merchant Level 1. Go to **Store Management > Store Settings > Store register**. 2. Under **Retrieve Current Printer Topology For Merchant**, select "1:1". ![Select 1:1 for Printer Topology on the Store Register screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_printer_topology_1_1_merchant.png) ### Register Level 1. Go to **Store Management > Registers**. 2. Select a store from the dropdown. 3. Edit a register. 4. Go to **Receipt Printer > Printer Topology** and select "1:1". ![Set 1:1 for Printer Topology at the Register level](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_printer_topology_1_1_register.png) ### POS App Flow The 1:1 topology lets you select the printer you want to pair and print for an extended session. If you don't have a printer initially, you'll still be prompted to select a printer at the beginning of the session. If printing a receipt or completing a cash transaction, this dedicated printer will be used. In the Device Manager screen, look for all the printers on the network that are available. For 1:1 pairing, you can select your printer from here. ![1:1 Printer Topology setup in the POS app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_pos_app_1_1_printer.png) ## Configuring Printer Topology - 1:N Select a printer each time the POS app does any printer-related functionality at the merchant or register level in Point of Sale CMS. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: 1:N configuration is not supported if connecting via Bluetooth. ### Merchant Level 1. Go to **Store Management > Store Settings > Store register**. 2. Under **Retrieve Current Printer Topology For Merchant**, select "1:N". ![Set 1:N for Printer Topology at the Merchant Level](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_config_printer_1_n_merchant.png) ### Register Level 1. Go to **Store Management > Registers**. 2. Select a store from the dropdown. 3. Edit a register. 4. Go to **Receipt Printer > Printer Topology** and select "1:N". ![Set 1:N for Printer Topology at the Register Level](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_1_n_printer_register.png) ### POS App Flow If printing a receipt or completing a cash transaction, you'll be presented with a list of printers that have been discovered on your network. Select your printer (denoted by a check mark) and tap **Confirm**. After you select a printer, it’s auto-selected on subsequent flows. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: In a 1:N setup, devices can still see all printers on the floor, including printers connected in 1:1 modes. ![View how 1:N mode functions in the POS app for Printer Topology](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_1_n_printer_topology_app.png) ## Configuring Payment Terminal Topology - 1:1 Select the payment terminal you want to pair and use it for an extended session. Configure the setup at the merchant or register level in Point of Sale CMS. ### Merchant Level 1. Go to **Store Management > Store Settings > Store register**. 2. Under **Retrieve Current Payment Topology For Merchant**, select "1:1"![Set 1:1 topology for Merchant Level](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_payment_term_1_1_merchant.png) ### Register Level 1. Go to **Store Management > Registers**. 2. Select a store from the dropdown. 3. Edit a register. 4. Go to **Receipt Printer > Payment Terminal Topology** and select "1:1". ![Set 1:1 topology for Register level](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_payment_terminal_1_1_register.png) ### POS App Flow 1:1 topology lets you select the payment terminal you want to pair and use for an extended session. If you don't have a payment terminal initially, you'll still select a device at the beginning of the session. If selecting pay by card, this dedicated payment terminal is used. In the **Device Manager** screen, look for all the payment terminals on the network that are available. For 1:1 pairing, you can select your payment terminal from here. ![1:1 Topology for Payment Terminals in POS App](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_payment_term_1_1_pos_app.png) ## Configuring Payment Terminal Topology - 1:N Select a payment terminal each time the application does any payment terminal-related functionality at the merchant or register level in Point of Sale CMS. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: 1:N configuration is not supported if connecting using Bluetooth and the POS app is in offline mode. ### Merchant Level 1. Go to **Store Management > Store Settings > Store register**. 2. Under **Retrieve Current Payment Topology For Merchant**, select "1:N". ![Set 1:N topology for Payment Terminals at the Merchant Level](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_payment_terminal_1_n_merchant.png) ### Register Level 1. Go to **Store Management > Registers**. 2. Select a store from the dropdown. 3. Edit a register. 4. Go to **Receipt Printer > Payment Terminal Topology** and select "1:N". ![Set 1:N topology for Payment Terminals at the Register Level](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_payment_terminal_1_n_register.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: If the POS app switches to offline, the payment topology will behave as if it's set to 1:1. If it switches back to online, it restores the 1:N behavior. The selected payment terminal is only preserved in 1:1 topology. ### POS App Flow If an order is being paid with a card, you'll receive a list of terminals that have been discovered on your network. Select your terminal (denoted by a check mark) and tap **Confirm**. After you select a payment terminal, it'll be auto-selected on subsequent flows.![The POS App flow for Payment Terminals using 1:N topology](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_payment_terminal_1_n_pos_app.png) # Help Customers Find Your Page Using Search Keywords When a customer enters a search keyword, the search results include the Page Designer page. Why: Search keywords help customers find your page when they enter search terms related to the page content or purpose. ![Image of the Search Terms entry field](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_4/search_keywords.jpg) How: 1. From the visual editor, open the page. 2. Click the Page Settings icon. ![Image of the Page Setting icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/20_4/page_settings_icon.png) 3. Click **Site Search**. 4. Enter one or more Search Keywords, separated by spaces or commas, that you expect the customer to enter when searching for a page. 5. Click **Save**. For information about configuring other search settings for a Page Designer page, including SEO settings, see [Configure Page Designer Search Settings](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-dev-for-page-designer.html). # Help Shoppers Find More Product Options The Show More feature helps shoppers find additional product options matching the search criteria, if there are more than three results displayed in the Shopping Agent search results. This feature allows shoppers to easily discover a wider variety of relevant products and compare them so they make the best purchasing decision. **Where:** This change applies to B2C Commerce with Service Cloud or Sales Cloud in Enterprise, Professional, or Unlimited editions. **When:** This feature is available in November 2025. **Who:** This change is available to customers with a B2C Commerce Cloud license and the Agentforce add-on. **How:** For new agents, no action is required. If you have an existing agent, remove the B2C Product Search Assistant topic then add it back. Then, redeploy the messaging component. See [Add the Messaging Component to Enhanced Chat](https://help.salesforce.com/s/articleView?id=cc.b2c_shopping_agent_add_miaw_component.htm&language=en_US). ![Show more feature available in Shopping Agent chat](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_10/b2c_rn_25_10_show_more.png) #### See Also - [_Salesforce Help_: Add a Topic to Your Agent](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_add.htm&language=en_US) - [_Salesforce Help_: Remove a Topic from an Agent](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_remove.htm&language=en_US) # Help Shoppers Find Products Faster with Guided Questions Streamline the shopping experience with intelligent, guided search options. The B2C shopping agent prompts shoppers with relevant search results and follow up questions, leading shoppers to find the right product faster. For example, if a shopper searches for running shoes, the agent displays a list of running shoes and then asks follow-up questions based on the surface type, such as trail, road, or track. **Where:** This change applies to B2C Commerce and requires Service Cloud or Sales Cloud in Developer, Unlimited, and Enterprise editions with the Agenforce add-on. **How:** In Salesforce, go to **Setup** | **Agentforce Studio** and select the B2C guided shopping agent. Select the B2C Commerce Product Search Assistant topic, and then add instructions to refine search results with options to the Get B2C Commerce Conversation Context Questions action. #### See Also - [_Salesforce Help_: Configure Your Agent to Use Conversational Context](https://help.salesforce.com/s/articleView?id=cc.b2c_shopping_agent_conversational_context_config.htm&language=en_US) # Help Shoppers Find the Best Deals Shoppers can now sort prices by quantity or size to find the lowest price for a product. Add Unit Quantity and Unit Measure for each product. Then with these new sorting options, shoppers can identify the most affordable products. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click App Launcher, and then select **Merchant Tools** | **Site** | **Search** | **Sorting Rules**. Create a sorting rule to sort by unit price. From **Site** | **Storefront Sorting Options**, create a sorting option with the new sorting rule. Rebuild the search index to get the latest changes in your store. #### See Also - [_Salesforce Help_: Edit Product Details](https://help.salesforce.com/s/articleView?id=cc.b2c_edit_product_details.htm&language=en_US) - [_Salesforce Help_: Create Sorting Rules](https://help.salesforce.com/s/articleView?id=cc.b2c_creating_sorting_rules.htm&language=en_US) - [_Salesforce Help_: Storefront Sorting Options](https://help.salesforce.com/s/articleView?id=cc.b2c_storefront_sorting_options.htm&language=en_US) # Hierarchy of Store Pricing Determine how prices are calculated based on store, store group, sales price, and list price in Point of Sale CMS. By default, the priority order for pricing will be: 1. Store Price 2. Store Group Price 3. Sales Price\* 4. List Price However, this priority can be changed by configuring the CMS setting, **Enrich store pricing to product**. Consider this example of products and their prices: | Product ID | List Price | Sales Price | Store Price | Store Group Price | | --- | --- | --- | --- | --- | | 123 | $50 | $50 | $45 | $40 | ## Store Group Level If **Enrich store pricing to product** is set to "STORE\_GROUP\_LEVEL", the product's store price will be the store group price (for example $40). However, according to the store pricing hierarchy, if the store group price is absent or zero, the sales price will be adopted as the store price (for example, $50). If the sales price is zero or not specified, the store price will default to the list price (for example, $50). ## Store Level If **Enrich store pricing to product** is set to "STORE\_LEVEL", the product's store price will be the store-level price (for example $45). ## Both If **Enrich store pricing to product** is set to "BOTH", based on the hierarchy, the product's store price will be the store-level price (for example $45). However, if the store-level price is missing or zero, the store price will default to the store group price (for example $40). If the store group price is absent or zero, the sales price will be used (for example $50). Lastly, if the sales price is zero or not provided, the store price will default to the list price (for example $50). \* Sales price will be overridden by the store price if the "store.price.overrides.sale.price" flag is enabled (**CMS > Store Management > Store Settings > Search**). Additionally, even if this flag is disabled, the store price will still override the sales price under these conditions: - Store price is less than the sales price (and greater than 0) - Sales price is null ## Pricing Based on Fulfillment Type The POS app displays either the store price or the sales/list price based on the fulfillment type (in-store or online). Consider this example product and its prices: | Product ID | List Price | Sales Price | Store Price | Store Group Price | | --- | --- | --- | --- | --- | | 123 | $50 | $50 | $45 | $40 | In-Store Fulfillment: If product 123 is purchased in-store, the price will be $45, as it's the store price. Online Fulfillment: If product 123 is purchased for online fulfillment (for example, ship to home), the price will be $50, as it reflects the sales/list price. # High Order Volume for B2B Stores Starting in Summer ’24, the High Scale Orders feature is enabled by default during checkout for new B2B and B2C stores created with the LWR template. However, some initial setup is needed to ensure that the High Scale Orders feature is fully enabled. In addition, developers must understand how this feature can affect their Apex code. The High Scale Orders feature isn’t supported for B2B Commerce Aura stores. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Enable High Scale Orders for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_high_scale_order_enable.htm&release=264.0.0&type=5)** Starting in Summer ’24, if you use the Commerce Setup Assistant to set up a new B2B or D2C store created with the LWR template, high-scale order ingestion (HSOI) is enabled by default. For existing stores, you can manually enable HSOI by enabling Enhanced Commerce Orders. - **[Prevent Duplicate Person Accounts for High Scale Orders in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_high_scale_order_dedup_rule.htm&release=264.0.0&type=5)** Starting in Summer ’24, the High Scale Orders feature requires a Person Account duplicate rule for guest users. This duplicate rule is required for B2B stores created with the LWR template. When a guest user places an order, the rule determines whether a Person Account record exists for the guest user. If a matching record exists, the system uses the record. Otherwise, the system creates a record for the guest user. If you don’t create a Person Account duplicate rule, the system creates a Person Account record for every order by every guest user, potentially resulting in a large number of duplicate records. - **[Ensure Apex Code Works with High Scale Orders for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_high_scale_order_developer_considerations.htm&release=264.0.0&type=5)** If you extended the Commerce\_Domain\_Checkout\_CreateOrder extension point before Summer ’24, it’s possible that your Apex code doesn’t work correctly with the High Scale Orders feature enabled. You must test your existing code to make sure that it works as expected, modifying it as needed. Also, consider how the High Scale Orders feature in general can affect your Apex code. # High Scale Price Book Activation Moved to Admin Feature Toggle Business Manager admins can use a feature toggle to enable or disable High Scale Price Books. The High Scale Price Books feature is intended for customers who import prices frequently and don't create or modify prices directly in Business Manager. #### See Also - [Read Only Price Books](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/pricebooks/b2c_optimized_price_books.html?) # High-Level Requirements - France To comply with French fiscal regulations, Point of Sale (POS) software must be certified by French Audit Authorities and record all transactions. ## Overview of Country-Specific Fiscalization To comply with French fiscal regulations, POS software must meet the following criteria: - POS system must be certified by the French Audit Authorities, such as Infocert or LNE, and must undergo annual recertification. - POS software must record all types of transactions, including sales, returns, and training transactions. Transaction data should be stored in an Electronic Journal and made unchangeable through signing and chaining. - Each transaction must have a digital signature associated with it. - Transaction records must be archived and maintained for a minimum of seven years (six years plus the current year). - Transactions can be completed in offline mode without a signature, with signing occurring as soon as the POS is back online. ## French Receipts French receipts must include additional information, as per French requirements: - Siret Number (unique per-store location, available to merchants operating in France) - NAF Code (available to merchants operating in France) - Merchant Tax ID (available to EU merchants) - Software version (must match the certified version of the POS software) - Software Category (B) + Certificate Number + Fiscal Mark (generated by EFSTA from the signature) – printed with the heading code on the receipt when the transaction is signed and hashed. - Inclusion of 'NF525' text on the receipt to indicate that the software is NF525 certified. ## Reporting Requirements In France, when a merchant undergoes an audit, auditors have the option to request specific reports, including: - FR Journal Archive - FR Fiscal - FR Grand Totals These reports can be obtained from EFSTA. Clients will be granted access to the EFSTA portal to retrieve these reports as needed. Detailed instructions on how to retrieve these files are provided [Access to Reporting - France](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_access_to_reporting_france.htm&release=264.0.0&type=5 "Retrieve required fiscal reports, like FR Journal Archive and FR Fiscal, from the EFSTA portal in Point of Sale CMS for audits in France."). ## Third-Party Responsibilities (Salesforce) Salesforce collaborates with EFSTA, a middleware provider that ensures the fiscalization, security, and archiving of all order data. EFSTA's documentation related to France is available [https://public.efsta.net/efr/#/FR/](https://public.efsta.net/efr/#/FR/). ## Offline Behavior Receipts can be printed in offline mode, but the transaction is only fiscalized after the POS system goes online. Therefore, receipts will indicate that the fiscal service was offline when the transaction was completed. After the POS system goes online, the data is synced with EFSTA to fiscalize the transaction. Review the offline and online capabilities comparison [Fiscalization Online and Offline Capabilities](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_online_and_offline_capabilities.htm&release=264.0.0&type=5 "Quickly learn which fiscalization methods countries support in online and offline mode. Use this when configuring fiscalization in Point of Sale."). # High-Level Requirments - Portugal Use the Point of Sale (POS) app to meet Portugal’s fiscalization requirements. ## Overview of Country-Specific Fiscalization In Portugal, it's mandatory for merchants to use Certified POS Software, which is certified by the Portuguese tax authorities. Point of Sale is a certified POS provider in Portugal with the certificate number certificate number 478818779, authorized by Autoridade Tributária e Aduaneira. A copy of the certificate can be found [here](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/PortualFicalCertificate2025.pdf). ## High-level fiscal requirements for operating in Portugal include: - Every transaction must be signed by a certified POS, and the fiscal signature is printed in a QR code on the receipt. - All transactions must be reported in an SAFT file, an XML file created monthly for each store. Merchants must send this file to tax authorities (more information on reporting access is available below). - In Portugal, you can't print in offline mode. This means you can do transactions on the POS, but you must give customers a paper receipt. When the POS is online, transactions can be fiscalized, and receipts can be printed from the order history. - Merchants must have manual receipts available in Portuguese stores if they intend to operate in offline mode in Portugal. Manual receipt numbers need to be recorded on the POS during order completion. Associates can search for orders using manual receipt numbers in the order history. - Associates using the POS in Portugal are required to undergo an initial password reset. - Return receipts in Portugal display the refunded amount as positive (in contrast to other countries where it's shown as negative). - Exchanges aren't permitted in Portugal, so associates must create separate Sale and Return transactions. - Digital receipts in Portugal must be signed by a third party, necessitating collaboration with a Portuguese partner for fiscal signature. - Document series, which represent sequential numbering for all Sale and Return transactions, need to be registered on the Portuguese tax side. More details on the document series can be found [here](https://faturas.portaldasfinancas.gov.pt/home.action). - Each document series that is registered has a special code called ATCUD. This code must be added to the POS setup and is included in the data of the fiscal QR code printed on every receipt. ## Receipt Requirements - Sales receipts are called “FATURA RECIBO,” and return receipts are known as “NOTA DE CREDITO.” - Receipts provided to customers must be fiscalized, and printed receipts in offline mode are blocked. - All receipts must include a signature to be considered fiscalized. - In offline mode, merchants must provide customers with a paper receipt and enter the paper receipt number on the POS. - A document numbering convention must be followed, and all document types must be issued in chronological order within a document series. - Sales receipts follow the document series format, including StoreID and RegisterID. - FR A-StoreID-RegisterID/SequentialDocumentnumber - For example FR A-8132-2/0000001 - A is part of the document series. If the series needs to be reset in the future, we would set the series as FR B-StoreID-RegisterID/SequentialDocumentnumber. - Return receipts also follow the document series format, including StoreID and RegisterID. - RD A-StoreID-RegisterID/SequentialDocumentnumber - For example RD A-8132-2/0000001 - A is part of the document series. If the series needs to be reset in the future, we would set the series as RD B-StoreID-RegisterID/SequentialDocumentnumber. - Offline sales series is set up as "FRM AO-StoreID-RegisterID/SequentialDocumentnumber," and offline return series is set up as "RDM AO-StoreID-RegisterID/SequentialDocumentnumber." - The date format on receipts must be DD-MM-YYYY. - End customers have the option to provide their VAT ID: - If the customer provides the VAT ID then the receipt should show the Client NIF and client name on the receipt. - If the customer chooses not to provide the information, then the Client NIF will show as \*\*\*\*\*\*\*\* and the customer name will be shown as “Consumidor final”. - To let a customer give their VAT/NIF, the store associate can select the option of Customer Information from the Cart options. This will take the customer's name and VAT/NIF. - Customer VAT capture is only possible in sales, not in returns. - Receipts must indicate whether prices include VAT with the text "Iva Incluido." - Receipts need to show VAT and applied discounts. - Receipts must show the version of the certified software. - Duplicate receipts should be indicated when printed. - Return receipts should include return reasons for each item. - Refunded amounts are shown as positive on return receipts. - Non-receipt returns must reference a date range in the past (for example "Referente ao Perido entre 12-09-2023 e 13-08-2023". The range is calculated by subtracting the number of days specified in the CMS configuration (located under **Store Management > Store Settings > Fiscal > Portugal > No Receipt Returns**) from the current date. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Valid values for this range range from 1 to 366 days. In cases where no specific value is configured, it will automatically default to a 90-day period. ## Reporting Requirements In Portugal, merchants are required to save monthly reports to the tax authorities by the 5th of each month. These reports, known as SAFT-PT, are XML files containing transaction data for the entire month. To confirm accuracy, you can run the report through a simulator to identify any issues. For further information regarding the simulator, reach out to your Tax consultant in Portugal. # High-Scale Orders High-scale orders, supported on Hyperforce, can ingest orders from B2C Commerce and other order channels. High-scale orders use an internal data service called Zero Object Service (ZOS), which acts as a buffer for storefront order data and prevents Order Management processing from being overwhelmed. ZOS then sends the buffered data asynchronously to Order Management, which creates order summaries and processes the orders. - **[Enable High-Scale Integration for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_hi_scale.htm&release=264.0.0&type=5)** Salesforce orgs use high-scale order ingestion (HSOI) to create order summaries. HSOI can handle 5,000 orders placed per minute and 2,500 orders processed per minute for approximately 50 locations. Each order can have up to 2,000 lines. - **[Disable High-Scale Integration with B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_deactivate_high_scale_orders.htm&release=264.0.0&type=5)** Confirm that your org has a functioning Create Order Summary flow. - **[High-Scale Orders and Deduplication](https://help.salesforce.com/s/articleView?id=commerce.om_high_scale_orders_and_deduplication.htm&release=264.0.0&type=5)** High-Scale Orders uses the Pending Order Summaries REST API to create summaries from order summary graphs. Entities included in the request parameter aren't subject to deduplication rules. # High-Scale Orders and Deduplication High-Scale Orders uses the Pending Order Summaries REST API to create summaries from order summary graphs. Entities included in the request parameter aren't subject to deduplication rules. ### Required Editions
View supported editions.
If a request has entity details in the PurchaseSupportDetails section, the Pending Order Summaries REST API uses deduplication logic to determine whether to update an existing record or create a record. Duplicate entities within the request that aren't in the database won't be deduplicated. Importing historical orders with the same Account or ContactId can result in duplicate Account/Contact creation or OrderCreationFailureSending orders with inaccurate or outdated data and can cause problems that are hard to fix later. Before sending orders to Salesforce Order Management, upload new information for Account, Contact, Product2, PricebookEntry, Promotion, WebStore, SalesChannel, and OrderDeliveryMethod. This table lists the Pending Order Summaries REST API entities and their corresponding deduplication logic.
Entity Deduplication Logic
Account, Person Account, Contact
  • When you create Account, Person Account, and Contact Duplicate Rules and Matching Rules, the API calls these rules to find duplicates. For Contact, an AccountId is required to use duplication rules.
  • For Person Account, Person Accounts must be enabled.
Pricebook2 Only Standard Price Book lookup is supported. If a Pricebook2 node is included in the request, the Standard Price Book ID is queried and used.
Product2 Deduplication is based on ProductCode. If an existing Product2 with the same ProductCode is found, it’s used.
PricebookEntry
  • For a single currency Salesforce org, deduplication is based on Pricebook2Id and Product2Id.
  • For a multicurrency Salesforce org, deduplication is based on Pricebook2Id, Product2Id, and CurrencyIsoCode. If you don’t specify the CurrencyIsoCode, the default CurrencyIsoCode is used.
SalesChannel Deduplication is based on the SalesChannelName field.
Promotion Deduplication is based on the Name field.
WebStore Deduplication is based on the ExternalReference field.
OrderDeliveryMethod Deduplication is based on the ReferenceNumber field.
#### See Also - [High-Scale Orders](https://help.salesforce.com/s/articleView?id=commerce.om_high_scale_overview.htm&type=5&language=en_US) - [Manually Import a Pending Order Summary](https://help.salesforce.com/s/articleView?id=commerce.om_order_summary_manual_import.htm&language=en_US) - [Order Summaries](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_sfom_order_summaries.htm) - [PendingOrderSummary](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_pendingordersummary.htm) - [Pending Order Summaries](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_sfom_pending_order_summaries.htm) # Historical Business Manager Reports The Business Manager Analytics Reports are now the Historical Business Manager Reports. The reports are only available for viewing historical data. For your current business insights use the B2C Commerce Reports and Dashboards. When: The Historical Reports are available in Business Manager with the B2C Commerce 21.5 release. How: You can access the Legacy Reports in **Business Manager** > **Merchant Tools** > **Analytics** > **Historical Business Manager Reports**. You can access the Reports and Dashboards in **Business Manager** > **Merchant Tools** > **Analytics** > **Reports and Dashboards (New)**. #### See Also - [Reports & Dashboards](https://documentation.b2c.commercecloud.salesforce.com/DOC2/topic/com.demandware.dochelp/content/b2c_commerce/topics/analytics/b2c_reports_and_dashboards.html?cp=0_4_17_0) # Holiday Preparation Database Optimization As part of the 2022 Holiday preparation, the 22.8 release includes some database optimizations. The optimizations have the potential to cause a one-time increase in migration time during the 22.8 Preview and GA deployments. Some instances see a slightly longer impact during the maintenance window as part of the release deployment. # How Behaviors Are Controlled Each product in your B2B Commerce store is a record of the Product2 object. Use the Product2 object fields to control the behavior of sort, search, facet, and display. All Product2 standard fields are available to all products in your store. If you add custom fields to the Product2 object, those fields are also available to all store products. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) The behavior you select affects the usability of fields. | Behavior... | Affects... | | --- | --- | | Sort behavior | Whether you can configure a field as the sorting criteria | | Search behavior | Whether you can make the field discoverable in search | | Facet behavior | Whether you can use a field as a search filter | | Display behavior | Whether you can show or hide a field | #### See Also - [Controlling Standard Product Fields for Search in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_behavior_standard.htm&release=264.0.0&type=5 "Product and product category standard fields have characteristics that affect whether you can control a field’s searchable, facetable, displayable, and sortable behavior. You can use these characteristics to make it easier for customers to discover products when they search your store.") - [Product Custom Fields in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_behavior_custom.htm&release=264.0.0&type=5 "Custom fields have characteristics that affect whether you can control the field’s searchable, facetable, displayable, and sortable behavior.") - [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates.") # How Omnichannel Inventory Works Review the typical flow when using Omnichannel Inventory with Salesforce Order Management and B2B Commerce and D2C Commerce. 1. Create a location graph in Omnichannel Inventory. 2. Add your products and locations to your Commerce store. 3. Add stock keeping unit (SKU) availability data from an external inventory management system, such as a WMS or ERP, to Omnichannel Inventory. The SKU is the unique identifier for all three systems (Omnichannel Inventory, store, and WMS/ERP.) 4. Integrate Order Management with your Commerce store. 5. Integrate Omnichannel Inventory with your store by adding the inventory lists based on the location graph and the inventory availability data feed. 6. After the integration is complete, when a shopper places an order, the store sends the data to Order Management. 7. Order Management communicates with Omnichannel Inventory to identify product availability and route reservations to fulfillment locations. 8. As locations fulfill the order, Order Management communicates with Omnichannel Inventory to adjust the corresponding reservations and inventory levels in Omnichannel Inventory. 9. Your external inventory management system regularly sends stock-level updates to Omnichannel Inventory, which then sends the updated availability data to the store. # How Product Bundles Work in Point of Sale App A product bundle pairs a parent item with a set of required child items and behaves as one unit everywhere it appears: product search, the cart, promotions, returns, and store fulfillment. Each bundle has one parent and one or more required child items, each identified by an ID. The parent carries the bundle's description, image, and price, but carries no inventory. Each child keeps a separate inventory and price. ## Bundles in Product Search and Bundle Details Bundles appear in product search results only when the **Show Product Bundles in Regular Search** store setting is on. When they do, a "Bundle" banner appears, and the bundle ID is scannable and searchable, just like a product ID. ![Bundles in product search and bundle details](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_product_bundles_overview_pdp.png) Tapping a bundle opens the bundle's product page, showing the image, description, price, and a single quantity and fulfillment selector for the whole bundle. Choosing **Select Your Style** on a child opens a page for the associate to pick that child's style, such as color or size. The **Add to Cart** button turns on only after the associate selects a style for every child. The bundle's price and sale price come from the Product Bundle feed and stay fixed no matter which variant the associate picks. ## Bundles in the Cart In the cart, a bundle shows as one line for the parent, with the child items linked underneath. Quantity, fulfillment, discounts, price corrections, and every other cart action apply at the bundle level, the same as for a regular product line. Associates can't remove or adjust a child individually—only the whole bundle line. To back out of a bundle, remove the whole line, then optionally add any items back individually at regular price. ![Bundles in the cart](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_product_bundles_overview_cart.png) ## Promotions for Bundles Create promotions for bundles by targeting the bundle ID, the same way you target a product variant ID for a regular product. A bundle promotion applies only to that exact bundle, not to the bundle's children. A promotion for a child doesn't apply to the bundle. When a bundle qualifies, the discount shows at the bottom of the bundle's row in the cart. ![Promotions for bundles](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_product_bundles_overview_promotions.png) ## Returns and Exchanges for Bundles Associates return or exchange a receipted bundle as a complete unit, confirming that every child is coming back before completing the return. Exchanging a bundle reopens the bundle's product page, where the associate rebuilds it by selecting a style for each child. ![Returns and exchanges for bundles](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_product_bundles_overview_returns.png) A bundle without a receipt returns the same way. The associate selects a style for each child, just as when selling the bundle, and price correction applies to the full bundle price. The return then groups the bundle with the child items, instead of returning them as a single, unspecified item. ## Bundles in Store Fulfillment and Receipts For buy-online-pickup-in-store (BOPIS) orders, associates pack and exchange a bundle as one unit and can't handle children separately. If a child is out of stock, out-of-stock handling applies to the whole bundle, not just that child. ![Bundles in store fulfillment and receipts](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_product_bundles_overview_fulfillment.png) On receipts, a bundle prints as a parent line with the parent's name, quantity, and price, followed by the child items as a group. Each child line shows the child's identity and variant, but not a separate price. #### See Also - [_Salesforce Help:_ Product Bundles in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_product_bundles.htm&release=264.0.0&type=5 "A product bundle groups a parent item with required child items. It sells, returns, and ships as one unit.") # How to Access Point of Sale CMS Access the Point of Sale CMS to control the behavior of the POS app through customization. Access the CMS through a corporate gmail account, or link a non-Gmail corporate account to gmail. Use the latest version of Google Chrome to access the CMS. ## Overview Point of Sale Content Management System (CMS) is an important platform tool as it can control the behavior of the point of sale (POS) app through customization. This article explains how to access the CMS. It also contains important information about the different CMS environments and how to switch among different merchant accounts, regions, and locales. ## CMS Authentication ## Gmail Corporate Account If you use a corporate gmail account, then you're ready to go. Proceed to [CMS Environments](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_accessing_cms.htm&release=264.0.0&type=5 "Access the Point of Sale CMS to control the behavior of the POS app through customization. Access the CMS through a corporate gmail account, or link a non-Gmail corporate account to gmail. Use the latest version of Google Chrome to access the CMS.") next and, if prompted to authenticate with gmail, use your corporate account. ## Non-Gmail Corporate Account If you don't have a corporate gmail account, link your corporate account to gmail. 1. 1\. Go to the [Create your Google Account](https://accounts.google.com/signup/v2/webcreateaccount?flowName=GlifWebSignIn&flowEntry=SignUp&nogm=true) form. 2. 2\. Complete the form using your corporate email address. 3. 3\. Select Next. 4. 4\. Complete the account setup process (after you reach the welcome screen, you are finished). Proceed to [CMS Environments](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_accessing_cms.htm&release=264.0.0&type=5 "Access the Point of Sale CMS to control the behavior of the POS app through customization. Access the CMS through a corporate gmail account, or link a non-Gmail corporate account to gmail. Use the latest version of Google Chrome to access the CMS."). Use your corporate email address and the password you just configured to log into the CMS from now on. ## Supported Browsers Use the latest version of Google Chrome when accessing the CMS to ensure the best experience and guarantee that all features work. ## CMS Environments To access the CMS in the staging environment: - Go to [https://labs.salesforce.com](https://labs.salesforce.com) To access the CMS in the production environment: - Go to [https://crm.salesforce.com](https://crm.salesforce.com) You can also check the browser tab to verify which environment you are in. Depending on the environment, the icon and title change in the browser tab. ## Current Merchant When you log into the CMS, you log in as a particular merchant, region, and locale. Each region and locale can have a unique logo in the CMS, which appears in the top left corner of the screen. ## Current Region & Locale The region and locale are indicated by the flag and two-letter language abbreviation that appears in the top right corner of the screen. ## Switching Merchant, Region, or Locale To switch merchants, regions, or locales, select the dropdown in the top right corner. ## Error Handling In the case where a user receives the ‌"Access Denied" message, double check that the email linked to the login is correct. In most cases, this is due to ‌authentication being attempted with an invalid email address. Additionally, if merchants migrate to GSuite after associating their work email address with Google, as stated in the previous steps, this can result in a duplicate account being created with your associated work email. For more information on this, contact Salesforce Customer Support or see [Google's Documentation](https://support.google.com/accounts/thread/101291544/my-email-has-changed-with-symbols-and-a-gtempaccount-people-can-t-share-links-or-docs-without-acces?hl=en). # Identify Concurrent Modification Issues During Order Export An alert now appears in Business Manager to inform you if another process is concurrently modifying the order during the export process. The alert helps you proactively identify when processes lead to order export data being out of sync or exported twice. To minimize the risk of another process modifying orders during export, you can delay order exports. **Where:** This change applies to B2C Commerce. #### See Also - [_Salesforce Help_: Troubleshooting Custom Jobs for B2C Stores](https://help.salesforce.com/s/articleView?id=cc.b2c_troubleshooting_custom_jobs.htm&language=en_US) - [_Salesforce Help_: Delay Order Exports for B2C Stores](https://help.salesforce.com/s/articleView?id=cc.b2c_delaying_orders.htm&language=en_US) # Identify Scalability Issues with Multi-Order Transactions An alert now appears in Business Manager to inform you if a custom job is changing multiple orders per transaction. The alert helps you proactively identify the issue and appears hourly until you resolve the issue. Review the source code in your custom job script to make sure that the custom job only changes one order per transaction. After you resolve the issue, the alert disappears within a day. **Where:** This change applies to B2C Commerce. #### See Also - [_Salesforce Help_: Troubleshooting Custom Jobs for B2C Stores](https://help.salesforce.com/s/articleView?id=cc.b2c_troubleshooting_custom_jobs.htm&language=en_US) # Identify the Cause of a Process Exception Process exceptions can occur at any stage in the order lifecycle. Identifying the cause of a process exception is the first step toward resolving the issue. ### Required Editions
View supported editions.
The table describes some common issues that cause process exceptions at different stages in the order process.
Stage Process Exception Type Cause
Order Activation Order creation failed
  • The order wasn’t created
  • No payment gateway was available for the order
  • Async test failed
Order activation failed
  • Valid payment authorization wasn’t received
  • Shipping state or country values weren’t populated correctly
  • Billing state or country values weren’t populated correctly
Order Approval Order approval failed
  • The order failed a fraud check
  • A custom business review specified for order approval failed
Fulfillment Fulfillment order approval failed
  • A custom business review specified for fulfillment order approval failed
Order fulfillment failed
  • The order was canceled
  • Items in the order are out of stock
  • The location specified for the fulfillment order doesn’t exist
Payment Ensure funds failed
  • The credit card used for the order has expired
  • The order failed a fraud check
  • The payment gateway is down
Payment capture failed
  • The credit card used for the order has expired
  • A fraud check failed
  • The payment gateway is down
Payment refund failed
  • The credit card used for the order has expired
  • The credit card used for the order was canceled
  • The payment gateway is down
Invoicing Invoice creation failed
  • Invoice creation process encountered an error
  • Payment wasn’t applied to the order
Credit memo creation failed
  • Applying or unapplying the payment to the invoice failed
  • Applying the refund to the credit memo failed
Returns Return processing
  • A returned item isn’t in acceptable condition; stop the credit of funds to the customer
  • A return isn’t received by the expected return date
  • Applying or unapplying the payment to the invoice failed
  • Applying the refund to the credit memo failed
#### See Also - [Check for Active Process Exceptions](https://help.salesforce.com/s/articleView?id=commerce.om_check_for_active_process_exceptions.htm&release=264.0.0&type=5 "When a process exception occurs, Order Management creates a process exception record and generates a notification that appears at the top of the associated Order Summary page. The process exception typically states the problem that requires user review or intervention. Your business logic and workflows determine whether to continue processing an order summary when an exception occurs. When necessary, you can suspend order processing until the issue is reviewed and resolved.") - [Create a Process Exception](https://help.salesforce.com/s/articleView?id=commerce.om_create_a_process_exception.htm&release=264.0.0&type=5 "Create a process exception to manage a processing issue that isn’t automatically identified by your order management processing business logic.") - [View Process Exception Details](https://help.salesforce.com/s/articleView?id=commerce.om_view_a_process_exception.htm&release=264.0.0&type=5 "A process exception record contains details about the cause of the processing failure.") - [Resolve a Process Exception](https://help.salesforce.com/s/articleView?id=commerce.om_resolve_a_process_exception.htm&release=264.0.0&type=5 "After you identify the cause of a process exception, you can resolve the issue and continue normal processing on the order summary.") # Identify Uninvited Account Manager Users with the External User List You can now use the External User tab in Account Manager to view and manage uninvited users who still have access to your Business Manager instances. Account Manager administrators can decide to either revoke their access or invite them to join your organization. **Why:** This update helps you maintain better control over who has access to your Business Manager instances, ensuring that only authorized users can access your data. **How:** The External User tab is only displayed when your organization has uninvited users. Account Manager administrators can access the External User tab to see a list of uninvited users. To keep your data safe, Salesforce asks that you ‌either revoke their access or invite them to join your organization. After all listed users have been managed, the External User tab disappears. #### See Also - [How to Revoke or Invite Users with Cross-Organization Business Manager Instance assignments in Account Manager for B2C Commerce](https://help.salesforce.com/s/articleView?id=002720852&type=1&language=en_US) # Image Import for B2B Stores Product images and attachments that customers see when visiting your store are typically linked to a Salesforce CMS workspace. Usually the images are stored on a host external to Salesforce. You can configure the external host as a trusted site for your org. If you don’t have a CMS workspace, create one before beginning the import. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important Importing product images replaces all existing images for that product. To keep existing images, include them in your import file. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) When you create a store, the creation process creates a CMS workspace for the store and a public channel to the workspace. To use content in the store from another workspace, add the store's public channel to that workspace. See [Add a Channel to a CMS Workspace](https://help.salesforce.com/s/articleView?id=xcloud.cms_channel_add.htm&type=5&language=en_US). The content from all workspaces assigned to the store's public channel is available to the store. Stores based on the LWR platform created in orgs provisioned with Commerce in Summer '23 or later have a public channel to an enhanced CMS workspace. To allow those stores to also access media stored in a non-enhanced workspace, add the store's public channel to the non-enhanced workspace. You can upgrade a store built on a nonenhanced LWR site to use an enhanced LWR site to take advantage of enhanced CMS workspaces. See [Upgrade to Enhanced LWR Sites](https://help.salesforce.com/s/articleView?id=experience.exp_cloud_enhanced_upgrade.htm&language=en_US). - **[Add Your External Image Host as a Trusted Site](https://help.salesforce.com/s/articleView?id=commerce.comm_add_host_for_images_as_trusted_site.htm&release=264.0.0&type=5)** So that your B2B stores can access your product images, add the external host where those images are stored as a Trusted URL. - **[Create a CMS Workspace to Import Images to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_cms_workspace.htm&release=264.0.0&type=5)** When you use a CSV file to import images, you must specify a CMS workspace where the imported images are linked. If you don’t have a CMS workspace, create one before you begin the import process. # Image Tests A set of test images at commonly used sizes, including both 2x and 1x versions. ## 2x images in figures **Extra extra large: 2000px, 300ppi** ![Extra extra large image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/xx-large-2x.png) **Extra large: 1500px, 300ppi with placement="break"** ![Extra large image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/x-large-2x.png) **Large: 1320px, 300ppi** ![Large image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/large-2x.png) **Medium: 1000px, 300ppi with fig-centered class** ![Medium image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/medium-2x.png) **Small: 660px, 300ppi** ![Small image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/small-2x.png) **Extra small: 500px, 300ppi** ![Extra small image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/x-small-2x.png) **Extra extra small: 250px, 300ppi** ![Extra extra small image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/xx-small-2x.png) ## 2x images without figures Extra extra large: 2000px, 300ppi ![Extra extra large image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/xx-large-2x.png) Extra large: 1500px, 300ppi with placement="break" ![Extra large image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/x-large-2x.png) Large: 1320px, 300ppi ![Large image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/large-2x.png) Medium: 1000px, 300ppi with image-framed class ![Medium image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/medium-2x.png) Small: 660px, 300ppi ![Small image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/small-2x.png) Extra small: 500px, 300ppi ![Extra small image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/x-small-2x.png) Extra extra small: 250px, 300ppi ![Extra extra small image](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/xx-small-2x.png) ## 2x icons inline Inline icon large ![Icon large](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/icon-large-2x.png) 64px, 300ppi. Inline icon wide ![Icon wide](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/icon-wide-2x.png) 40px, 300ppi. Inline icon ![Icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/icon-2x.png) 32px, 300ppi. ## SVGs **SLAS SVG; width="500"** ![SLAS diagram](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/slas-diagram.svg) **CX test SVG; width="500"** ![CX test diagram](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/test-diagram-clean.svg) **CX test SVG 2; width="500"** ![CX test diagram 2](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/managed_runtime/test-diagram-2.svg) # Implement a B2B Guided Shopping Agent A guided shopping agent can recommend products, reorder a previous order, and look up existing orders in your B2B stores. To improve the customer experience, implement your agent with standard and custom topics. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Create a Guided Shopping Agent for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_create_agent.htm&release=264.0.0&type=5)** Create a Guided Shopping Agent to unlock agent capabilities in your store. Guided Shopping Agent includes standard subagents, which are preconfigured categories of actions that help the agent recognize how to behave and respond for different jobs. - **[Create an Omni-Channel Routing Flow for the B2B Guided Shopping Agent](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_omnichannelflow.htm&release=264.0.0&type=5)** An Omni-Channel routing flow routes messages from the messaging service to your guided shopping agent for your B2B store. Create a flow to automate routine tasks, and to make agent communication more efficient. - **[Localize a B2B Guided Shopping Agent](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_localize.htm&release=264.0.0&type=5)** Reach more customers with a multilanguage Guided Shopping Agent for a B2B store. Configure the agent to interact with customers in their preferred language. - **[Test and Activate Your B2B Guided Shopping Agent](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_test_activate.htm&release=264.0.0&type=5)** Before launching an agent in your store, test the agent to confirm that the agent understands a user’s request or instruction and provides the correct actions. Review whether the agent's responses are helpful and accurate and then activate the store. # Implement Enhanced Security Controls in Commerce Cloud Commerce Cloud is implementing a new security measure that blocks traffic to staging instances that doesn’t originate from Commerce Cloud eCDN from accessing the hyphenated demandware.net hostname. This change rejects all calls using ‌hyphenated hostnames, such as staging-, to access the Open Commerce API (OCAPI) or Storefront. **When:** This change becomes effective on October 7, 2024. **Why:** Currently, traffic through `demandware.net` doesn’t have eCDN controls in place, posing a potential risk to your data security. Origin Shielding for staging is crucial to make sure that all external traffic goes through the eCDN security layers before reaching your environment. The introduction of Origin Shielding for staging impacts Commerce Cloud customers who currently have implementations that involve direct calls to POD IPs. **How:** To prepare for this upcoming change, Salesforce requests customers take these actions: - Evaluate your current implementations for calls made to OCAPI or Storefront using direct POD IPs, dot-form hostnames, or hyphenated hostnames for `demandware.net`. For example, `staging.xxx.demandware.net` or `staging-xxx.demandware.net`. - Update services or applications to use the vanity hostname and route traffic through eCDN. You can create a proxy zone on Staging instances through the Business Manager and configure a custom hostname with an automatically renewing eCDN Managed certificate for added protection. For further assistance, contact your Customer Service Manager (CSM). #### See Also - [Configure eCDN for Staging in Business Manager](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_configure_ecdn_for_staging_in_bm.htm&type=5&language=en_US) - [Create a Zone in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_creating_a_zone.htm&language=en_US) - [Add an SSL Certificate to an eCDN Zone and Configure DNA Mapping](https://help.salesforce.com/s/articleView?id=cc.b2c_add_a_certificate_to_a_zone.htm&language=en_US) - [Use the CDN Zones API to Configure eCDN](https://help.salesforce.com/s/articleView?id=cc.b2c_use_cdn_zones_api_to_configure_ecdn.htm&language=en_US) # Implement Enhanced Security Controls in Commerce Cloud As announced in the 24.7 release notes, B2C Commerce now prevents traffic that doesn’t originate from Commerce Cloud eCDN from accessing hyphenated demandware.net host names, such as `staging-xxx.demandware.net`, to the Open Commerce API (OCAPI) or Storefront. Traffic through `demandware.net` doesn’t have eCDN controls in place, posing a potential risk to your data security. Origin Shielding for staging makes sure that all external traffic goes through the eCDN security layers before reaching your environment. The introduction of Origin Shielding for staging impacts Commerce Cloud customers who have implementations that involve direct calls to POD IPs. **When:** This change takes effect on October 7, 2024. **How:** To prepare for this upcoming change: - Evaluate your implementations for calls made to OCAPI or Storefront using direct POD IPs, dot-form host names, or hyphenated host names for `demandware.net`, for example, `staging.xxx.demandware.net` or `staging-xxx.demandware.net`. - Update services or applications to use the vanity host name and route traffic through eCDN. You can create a proxy zone on staging instances through Business Manager and configure a custom host name with an automatically renewing eCDN managed certificate for added protection. For further assistance, contact your Customer Service Manager. # Implement Layout Templates Tailor Point of Sale chat, clienteling, and review layouts to enhance user interaction and gather valuable feedback. Retail professionals can also personalize email templates, login screens, order confirmations, and product display pages to create a seamless and branded customer journey. Streamline processes like password recovery and new customer sign-ups, ultimately boosting customer satisfaction and loyalty. - **[Set Up a Hamburger Menu](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_hamburger_menu.htm&release=264.0.0&type=5)** Configure a hamburger menu in the POS app to access a wide range of features without cluttering the screen. This setup streamlines navigation, making it easier for users to find and use essential functions quickly. - **[Set Up a Chat Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_chat.htm&release=264.0.0&type=5)** Create and assign Point of Sale custom chat layouts to enhance user interaction with brand specialists to find the right products. Easily edit and test layouts to ensure a seamless and engaging chat experience for users. - **[Set Up a Clienteling Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_clienteling.htm&release=264.0.0&type=5)** Create a Point of Sale clienteling layout by selecting a template for iPad, iPhone, or iPod. Customize the font to enhance the user experience and ensure seamless interaction on your chosen device. - **[Set Up a Dynamic Review Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_review.htm&release=264.0.0&type=5)** Customize review forms for different products using Point of Sale dynamic review layouts. Map specific layouts to product classes to ensure a tailored review experience, improving user engagement and feedback quality. - **[Email & Print Templates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_email.htm&release=264.0.0&type=5)** Explore the diverse range of Point of Sale email templates designed to enhance communication efficiency. Retail professionals can quickly generate consistent and effective messages, improving customer engagement and satisfaction. - **[Set Up a Forgot Password Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_forgot_pwd.htm&release=264.0.0&type=5)** Implement a Point of Sale forgot password layout or use a mobile site to streamline the password recovery process. Users can easily reset their passwords, enhancing security and improving user experience. - **[Set Up a New Customer Sign Up Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_sign_up.htm&release=264.0.0&type=5)** Point of Sale enables businesses to boost customer engagement and loyalty by setting up a new customer sign-up layout. Customers can easily create accounts, subscribe to newsletters, and join rewards programs, enhancing their overall experience and driving long-term retention. - **[Set Up a Login Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_login.htm&release=264.0.0&type=5)** Learn how to create a Point of Sale login layout with input fields and link it to an app config, ensuring seamless user authentication and a smooth login experience. Set up the login deep link to direct users to the correct page, enhancing user convenience and security. - **[Set Up a Pickup Information Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_pickup.htm&release=264.0.0&type=5)** Configure the Pickup Information layout in the CMS to collect essential details from customers picking up orders, ensuring a smooth and secure in-store experience. Customizable fields enhance data accuracy and streamline the pickup process. - **[Set Up an Order Confirmation Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_order_conf.htm&release=264.0.0&type=5)** Customize order confirmations in Point of Sale to meet your specific merchant needs, ensuring customers receive clear and detailed purchase information. Use the Layout Editor to tailor the content, enhancing customer satisfaction and clarity. - **[Configure Product Display Page (PDP) Layout in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_pdp.htm&release=264.0.0&type=5)** Create a Product Display Page (PDP) in the layout editor. Unlike the template-based PDP V1, this version lets you customize the page layout. - **[Set Up Product Forms](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_product_forms.htm&release=264.0.0&type=5)** The Point of Sale product forms are designed to link forms with specific products in the POS app, allowing merchants to obtain product-specific details before a sale. Additionally, these forms can be applied to add-on products like insurance and protection plans. - **[Receipt Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_receipt.htm&release=264.0.0&type=5)** Customize Point of Sale receipts to enhance customer experiences. Configure store-level print receipts and use templates for order returns. The Receipt Layout editor allows you to tailor headers, footers, and item details. Understand common challenges and best practices for clear and readable receipts, including managing returns and exchanges. # Implement Order Management Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management. - **[Prerequisites for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_before_you_begin.htm&release=264.0.0&type=5)** There are a few mandatory steps to take before setting up Order Management. Some of these steps depend on which Commerce product you’re running. Additionally, there are a few optional steps you can take before proceeding with the setup. - **[Order Management Users and Permissions](https://help.salesforce.com/s/articleView?id=commerce.om_impl_users.htm&release=264.0.0&type=5)** To access Order Management features, users need the System Administrator profile or either the Standard Platform User profile or the Identity User profile along with the Salesforce Order Management feature permission set license. Users also require access to the Order Management console app and to any customizations that you implement. Order Management includes some persona-based permission sets that you can use as is or clone and customize. - **[Configure Service Flow Reasons](https://help.salesforce.com/s/articleView?id=commerce.om_impl_canc_disc_return.htm&release=264.0.0&type=5)** When a customer service representative (CSR) services an order, they often have to select from a list of reasons, such as Wrong Item or Customer Changed Mind. Order Management provides some default reason values, but you can add more. Up to 2000 reasons can show on each flow’s return picklist. - **[Map Reasons to Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_map_reason_codes.htm&release=264.0.0&type=5)** Reduce the time and effort it takes to service orders by only showing reasons relevant to the current service flow. For example, when a Customer Service Representative (CSR) processes a return, they only see the return-related reasons in the reason picklist. Up to 2000 reasons can show on each flow’s reason picklist. - **[Configure Gross Tax Display](https://help.salesforce.com/s/articleView?id=commerce.om_impl_tax_display.htm&release=264.0.0&type=5)** If you only do business in a locale that uses net taxation, such as sales tax, no extra configuration is needed. If you do business in a locale that uses gross taxation, such as value-added tax (VAT), you need to configure your page layouts to display amounts that combine prices and taxes. If you’re using multiple currencies, add a user profile for service agents and create page layouts that use gross tax fields. - **[Configure Access to the Console App](https://help.salesforce.com/s/articleView?id=commerce.om_impl_console_app_access.htm&release=264.0.0&type=5)** Provide access to the console app for a permission set. - **[Import Historical Order Data](https://help.salesforce.com/s/articleView?id=commerce.om_impl_historical_orders.htm&release=264.0.0&type=5)** After you start using Order Management in production, you can import historical order data from a legacy system for reference purposes. - **[Payment Processing for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_payment_processing.htm&release=264.0.0&type=5)** To let Order Management execute payment authorizations, captures and issue refunds, integrate a payments component. You can view payment activity in the order payment summary for each order. - **[Commerce Order Routing](https://help.salesforce.com/s/articleView?id=commerce.om_impl_order_routing.htm&release=264.0.0&type=5)** Use the Commerce Order Routing flow to manage routing and fulfillment. Order Routing is optional unless your org uses Salesforce Payments. There are two versions of the order routing flow: Connected Commerce Order Routing and Growth Order Routing. Connect Commerce Order Routing can only be used with B2B and D2C Commerce. - **[Integrate Order Management with B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_impl_storefront_integration.htm&release=264.0.0&type=5)** Set up a connection between B2C Commerce and the Salesforce org where Order Management is configured. This connection lets Order Management receive orders from B2C Commerce. # Import a Data Feed on Demand Import a scheduled Point of Sale data feed immediately with the Import Now feature. The Import Now functionality allows you to force a scheduled feed to run when you need the most up-to-date information. Ensure that your data is current and drive timely decision-making. 1. In CMS, go to **Feeds** | **Scheduled Upload**. 2. Hover over the feed you want to run and click **EDIT**. 3. Complete all required fields. For the basics of creating scheduled jobs in the CMS refer to [Schedule Feed Runs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule.") .![A screenshot highlights the import now option on a data feed schedule.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_import.png) 4. Click **IMPORT NOW**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Changes to the scheduled feed are not saved after clicking **Import Now**. # Import and Delete Inventory in Bulk Using Omnichannel Inventory Add inventory, update existing records, and delete records in bulk instead of using APIs or adding records individually. Modify records using either a CSV or JSON file. - **[File Format Guidelines for Modifying SKUs with Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_import_bulk_guidelines.htm&release=264.0.0&type=5)** Use a CSV or JSON file to import, update, or delete SKUs. When you construct the inventory file, specify column headings that correspond to location, SKU, quantity, and availability information. If other fields are included, they’re ignored. We recommend that you use the provided sample CSV filei. - **[Cap Safety Stock](https://help.salesforce.com/s/articleView?id=commerce.inv_safety_stock_cap.htm&release=264.0.0&type=5)** Safety stock acts as a buffer to control a location’s inventory and reduce the risk of running out of stock. Although safety stock works on a location level, it aggregates up to the group level and can impact other locations in the group. A safety stock quantity that exceeds a location’s on-hand stock can limit the available stock across the network when it aggregates to the group. Prevent underselling by capping your safety stock to prevent it from exceeding on-hand counts. - **[Import or Delete Inventory with a CSV or JSON File](https://help.salesforce.com/s/articleView?id=commerce.inv_import_bulk_csv.htm&release=264.0.0&type=5)** Use the Omnichannel Inventory app to add, update, or delete inventory in bulk. You can use either a CSV or JSON file that contains the inventory SKUs. # Import and Export Commerce Data Import data, including products, product variations, and images, by uploading a CSV file. Perform other tasks while the import runs asynchronously. You can import up to 10,000 products with nine images each per session, though import times may increase with more images. We recommend using the CSV file import process, but for large imports, use Data Loader. You can also export data for up to 300,000 products to a CSV file. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_tip.png) Tip For faster performance when importing to a Commerce site that uses nonenhanced CMS workspaces, we recommend importing images in a separate CSV file. First import a file that contains only product information and related entities. Then import a separate file that includes only the product IDs and images. You can run one only Commerce import job, including category or product imports, at a time. If a Commerce import job is running, wait for it to complete or cancel it before starting a new import. Using CPQ (Configure, Price, Quote) triggers isn’t compatible with a CSV import. - **[Image Import for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_import_images.htm&release=264.0.0&type=5)** Product images and attachments that customers see when visiting your store are typically linked to a Salesforce CMS workspace. Usually the images are stored on a host external to Salesforce. You can configure the external host as a trusted site for your org. If you don’t have a CMS workspace, create one before beginning the import. - **[Default Import Records for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_store_import_defaults.htm&release=264.0.0&type=5)** When you create a store, several required records are created by default. The only default record that you can delete is the category. - **[Import Data Using a CSV File to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_import_products_global.htm&release=264.0.0&type=5)** Import up to 10,000 products and related entities in bulk using a CSV file. Use the imported products in your B2B stores. - **[Import Using Data Loader](https://help.salesforce.com/s/articleView?id=commerce.comm_import_using_data_loader_overview.htm&release=264.0.0&type=5)** We recommend that you use the CSV data import file to import data into the Commerce app. The commerce import file maintains the correct relationships between commerce objects and supports importing up to 10,000 products with nine images each, along with the required updates to records in related objects. Typically, more than 50,000 updates are required to related objects for 10,000 imported commerce products. However, if you want to bulk import more than 10,000 products with nine images each, you can use the Salesforce Data Loader tool. - **[Export Commerce Data for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_export.htm&release=264.0.0&type=5)** Export up to 300,000 products to a CSV file. Only product columns, including product variations, are included in the export. Large exports can result in more than one CSV file. Filters and sorting applied to the product workspace are reflected in the export file. All product fields, both standard and custom, that appear in the workspace are included in the export file. # Import and Export Dynamic Categorization Rules In Business Manager, easily import and export dynamic categorization rules, including the excluded product list. The Catalogs Import & Export feature now updates the catalog.xsd schema with detailed information on categorization rules and excluded products within the catalog tag structure. Previously, you couldn’t import and export the dynamic categorization rules. **How:** The catalog.xsd now includes this information structure. ``` attribute value name attribute value name attribute value name ``` If there is no tag `` and it's elements in the import file, no changes will be applied to the existing rules and excluded products. To delete all existing rules and product exclusions in the respective category during import, use the empty tag within the category tag ``. If content is set within the `` tag, it replaces all the existing rules and excluded products for the respective category with the ones mentioned in the current tag. #### See Also - [Rule-Based Categorization for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_dynamic_categories.htm&language=en_US) - [Create a Rule-Based Categorization Rule Set for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_create_a_dynamic_categorization_rule.htm&language=en_US) # Import Category Data for a B2B Commerce Store Use a category import to add or update category paths, descriptions, and their corresponding SEO-friendly URL slugs. Product import files can also include columns for categories, but a product import can’t include URL slugs or descriptions for categories. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the App Launcher, find and select **Catalogs**. 2. Select a catalog. 3. On the Categories tab, click **Import**. 4. Click **Upload Files**. You can optionally download a sample data import file to use as a starting point for creating your file. 5. Click **Import**. Because the import is asynchronous, you can perform other tasks while the import processes. To get the status of the import, refresh the page or click the refresh button. The Import Summary report shows the import results, including any errors caused by rows or column headings. If you have errors, fix the file, and import it again. ![Category Import page with completed Import Summary report.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_category_import.png) 6. (Optional) Cancel the import. 1. In the Import Summary, click **Cancel**. 2. Confirm the cancellation, click **Cancel Import**. 3. Refresh the page for the Import Summary report to show an accurate count of categories updated prior to the cancellation. #### See Also - [CSV File Format for Importing Category Data for a Store](https://help.salesforce.com/s/articleView?id=commerce.comm_seo_category_urls.htm&language=en_US) # Import Data Using a CSV File to a Commerce Store Import up to 10,000 products and related entities in bulk using a CSV file. Use the imported products in your B2B stores. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[CSV File Format for Importing Product Data to B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_prod_import_csv.htm&release=264.0.0&type=5)** You can import product data into B2B Commerce by creating a CSV file. Specify column headings for Product, Category, and Price Book information. Each row in the file represents a unique product and its variations. - **[Import Product Data for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_product_import_process.htm&release=264.0.0&type=5)** Upload and import the CSV file that contains the products that you want to add or update for use by all stores. # Import External Coupon Redemptions You can now update the status of a coupon redeemed outside of B2C Commerce using the new Coupon Redemption API (`/organizations/{organizationId}/coupons/actions/redeem)`. To identify the source of redemption for an external coupon, use a custom reference ID or any custom string. You can also add an optional email address to the redemption for further tracking and communication. To update multiple coupon redemptions at one time, use the new `ImportCouponCodeRedemptionsStep` job step. This bulk import, which works only in merge mode, streamlines the process of managing multiple redemptions at scale. #### See Also - [B2C Commerce API](https://developer.salesforce.com/docs/commerce/commerce-api/overview) - [Create a Rule-Based Categorization Rule Set for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_coupon_redemption.htm&language=en_US) - [View Coupon Redemptions for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_viewing_coupon_redemptions.htm&language=en_US) - [Coupons and Coupon Code Object Import/Export in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_coupons_and_coupon_code_object_import_export.htm&language=en_US) # Import Historical Order Data After you start using Order Management in production, you can import historical order data from a legacy system for reference purposes. Typically, for orders that are no longer subject to servicing, you import them as unmanaged orders. For information about importing order data, see [Importing Order Data](https://developer.salesforce.com/docs/atlas.en-us.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_import_data.htm). #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Import or Delete Inventory with a CSV or JSON File Use the Omnichannel Inventory app to add, update, or delete inventory in bulk. You can use either a CSV or JSON file that contains the inventory SKUs. ### Required Editions
View supported editions.
If you haven’t created a CSV file, click **Download Sample File** and use the file to prepare your inventory. 1. In the Omnichannel Inventory app, go to the Lookup tab. 2. Click **Import** or **Delete**. 3. Upload your file, and click **Import** or **Delete**. Confirm your action as necessary. 4. To monitor the progress, click the refresh button. When the summary appears, click **Done**. 5. To view any import details, click **View Import History** and select the related log file. #### See Also - [File Format Guidelines for Modifying SKUs with Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_import_bulk_guidelines.htm&release=264.0.0&type=5 "Use a CSV or JSON file to import, update, or delete SKUs. When you construct the inventory file, specify column headings that correspond to location, SKU, quantity, and availability information. If other fields are included, they’re ignored. We recommend that you use the provided sample CSV filei.") - [Omnichannel Inventory App](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_app.htm&release=264.0.0&type=5 "Use the Omnichannel Inventory app to view, add, and edit inventory SKU counts and manage locations, location groups, and location group assignments.") - [Cap Safety Stock](https://help.salesforce.com/s/articleView?id=commerce.inv_safety_stock_cap.htm&release=264.0.0&type=5 "Safety stock acts as a buffer to control a location’s inventory and reduce the risk of running out of stock. Although safety stock works on a location level, it aggregates up to the group level and can impact other locations in the group. A safety stock quantity that exceeds a location’s on-hand stock can limit the available stock across the network when it aggregates to the group. Prevent underselling by capping your safety stock to prevent it from exceeding on-hand counts.") # Import Process Fix The customer Merge/Update process no longer overrides the existing credentials attribute `` to a false value. Previously, you explicitly set the `` as true in the import XML for the customer to be enabled after import. The change to the XML file is no longer required. # Import Product Data for a B2B Store Upload and import the CSV file that contains the products that you want to add or update for use by all stores. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) To import prices requires a price book. To import images requires a CMS workspace. To import products and images, we recommend that you use two imports. First import the product, and then import the images. With this approach, you can work with the product data while the image import completes. If you use the import file to create product variations, create the variation attributes and variation attribute sets before doing the import. If you use the import file to specify an entitlement policy, create the entitlement policy before doing the import. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Products**. 3. Click **Import**. 4. Click **Upload Files**. You can optionally download a simple or advanced CSV template file to use as a starting point for your own file. 5. Navigate to your CSV import file and open it. 6. Click **Import**. 7. Select the catalog, price books, and CMS workspace for the import. 8. Click **Start Import**. Because the import is asynchronous, you can perform other tasks while the import processes. When the import finishes, the Commerce app posts an import completed notification. The Import Summary report shows the import results, including any errors caused by rows or column headings. If you have errors, fix the file, and import it again. 9. (Optional) Cancel the import. 1. In the Import Summary, click **Cancel**. 2. Confirm the cancellation, and click **Cancel Import**. #### See Also - [Import Data Using a CSV File to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_import_products_global.htm&release=264.0.0&type=5 "Import up to 10,000 products and related entities in bulk using a CSV file. Use the imported products in your B2B stores.") - [CSV File Format for Importing Product Data to B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_prod_import_csv.htm&release=264.0.0&type=5 "You can import product data into B2B Commerce by creating a CSV file. Specify column headings for Product, Category, and Price Book information. Each row in the file represents a unique product and its variations.") - [Pricing for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_pricebooks.htm&release=264.0.0&type=5 "You can set up pricing for your B2B store by configuring a standard strategy and pricing procedure, or enable advanced pricing for more complex pricing use cases.") # Import Using Data Loader We recommend that you use the CSV data import file to import data into the Commerce app. The commerce import file maintains the correct relationships between commerce objects and supports importing up to 10,000 products with nine images each, along with the required updates to records in related objects. Typically, more than 50,000 updates are required to related objects for 10,000 imported commerce products. However, if you want to bulk import more than 10,000 products with nine images each, you can use the Salesforce Data Loader tool. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) If you use Data Loader, you must explicitly maintain the correct relationship between objects. You can use Schema Builder to discover how objects are related. For information about how to use Schema Builder, see [Work with Schema Builder](https://trailhead.salesforce.com/content/learn/modules/data_modeling/schema_builder). For information about using Data Loader, see [Data Loader](https://developer.salesforce.com/docs/atlas.en-us.dataLoader.meta/dataLoader/data_loader.htm). #### See Also - [Import Data Using a CSV File to a Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_import_products_global.htm&release=264.0.0&type=5 "Import up to 10,000 products and related entities in bulk using a CSV file. Use the imported products in your B2B stores.") # Improve Administrator Invitation Transparency with User Details We have made an improvement to the email notification process for user invitations in customer Orgs. With the new enhancement, email notifications now include the username of the person inviting a new admin, increasing transparency and aiding in the quick identification of responsible parties. # Improve Cart Processing for B2B Stores Increase cart size limits to process larger orders. Speed up shopping with faster add-to-cart. Let customers add duplicate items to their cart. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Increase Cart Size Limits for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_large_carts.htm&release=264.0.0&type=5)** Most stores limit cart size to 500 line items per order. However, if your B2B store requires a higher limit, you can enable support to process up to 2,000 line items per order. To increase your line item limit, contact Customer Support. - **[Improve Product Page Performance in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_faster_add_to_cart.htm&release=264.0.0&type=5)** To speed up the shopping experience in your LWR store, turn on the Faster Add-to-Cart feature. By splitting processing time across Product and Cart pages, Faster Add-to-Cart improves the response time on a Product page when a customer adds an item to their cart. This setting is enabled by default for B2B stores created in Winter ’24 or later and D2C stores created between Winter ’24 and Spring ’25. - **[Enable Duplicate Cart Items for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_duplicate_cart_items_for_commerce_stores.htm&release=264.0.0&type=5)** Let customers add duplicate cart items to their carts, instead of increasing the quantity of a single cart item. # Improve Code Profiler Tracking The Code Profiler Script API calls (shown as SCRIPT\_API) are no longer measured when using Production Mode. This change improves code profiler tracking without causing performance issues. # Improve Guided Shopping with the New Agent Template for B2C Commerce The new agent template includes more topics and actions for B2C Commerce shoppers. The Agent’s product search capabilities now include images, rich content, category and facet filters, and multiple languages. Also, visual components are available for carousels, product details, cart, and order confirmation. **Where:** This change applies to B2C Commerce and requires Service Cloud or Sales Cloud in Unlimited, Performance, or Enterprise editions. **When:** These features are available mid-September 2025. **Who:** This change is available to customers with a B2C Commerce Cloud license and the Agentforce add-on. **How:** In your Salesforce org, go to **Setup** | **Agentforce Studio**, and configure an agent using the Guided Shopping for B2C Storefronts template. - For a composable storefront that uses a PWA kit, these actions are supported: Product Search, Product FAQ, Site FAQ, Add To Cart, Edit Cart, View Cart, Order Confirmation. - For an SFRA storefront, these actions are supported: Product Search, Product FAQ, and Site FAQ. ![Updated guided shopping agent template](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_10/b2b_rn_25_10_shopping_agent_template.png) #### See Also - [_Salesforce Help_: Agentforce for Guided Shopping for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_agent_guided_shopping.htm&language=en_US) # Improve Image Performance with Modern Formats Upload AVIF and WebP images to your store’s Dynamic Imaging Service (DIS) for smaller file sizes and faster loading times. Most major browsers support these modern image formats, which provide a better user experience and enhanced image quality. **Where:** This change applies to B2C Commerce. **How:** Upload AVIF or WebP images through the image management interface. DIS automatically delivers these formats using transformation parameters in the URL. #### See Also - [Salesforce Help: Dynamic Imaging Service](https://help.salesforce.com/s/articleView?id=cc.b2c_image_transformation_service.htm&language=en_US) # Improve Performance with the parentCategoryTree Element The get category API now has the parentCategoryTree element. The element returns the entire parent category tree. With the parentCategoryTree element, you can improve performance by retrieving the category tree path on the breadcrumb instead of making recursive calls to get the tree. # Improve Product Discoverability with the Google Inventory Listings Cartridge The Google Inventory cartridge is a B2C Commerce direct integration cartridge. You can use the cartridge to list your local store products on Google’s free product listings. Shoppers can discover products in stores near them. This increases local store foot traffic. How: To download and install the cartridge, use [https://github.com/SalesforceCommerceCloud/social\_channel\_integrations](https://github.com/SalesforceCommerceCloud/social_channel_integrations) GitHub. For help with getting started, checkout the [Social Channel Integrations](https://share.vidyard.com/watch/WmrMwPsf1G1MtBKAmisQPC) and [Social Channel Integrations Install Options](https://share.vidyard.com/watch/hHbXEZrVobzSQDqRpu1fJj) videos. # Improve Product Page Performance in a B2B Store To speed up the shopping experience in your LWR store, turn on the Faster Add-to-Cart feature. By splitting processing time across Product and Cart pages, Faster Add-to-Cart improves the response time on a Product page when a customer adds an item to their cart. This setting is enabled by default for B2B stores created in Winter ’24 or later and D2C stores created between Winter ’24 and Spring ’25. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. If you have custom components that use cart APIs, make sure that they don’t rely on an add-to-cart response when returning cart item IDs, cart item prices, or promotions. If they do, change the components before enabling Faster Add-to-Cart. When Faster Add-to-Cart is enabled, the Cart Badge shows only the total number of items in a cart and not the total number of unique products. Also, for stores created in Spring ’25 or later, inventory checks occur when a shopper tries to add an item to cart or update a cart item's quantity. If the inventory is unavailable, the cart item isn't added or updated, and an error message is displayed to the shopper. 2. In the navigation sidebar, select a store from the Store dropdown. 3. Select **Settings** | **Store**. 4. On the General Settings tab, in the Performance section, enable Faster Add-to-Cart. ![Faster Add-to-Cart feature toggle](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/faster_add_to_cart_setting.png) 5. To apply the changes, republish your store. #### See Also - [Design the Cart Page in a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_cart_customize.htm&release=264.0.0&type=5 "The Cart page is where customers can review their order before checking out in a B2B store. In Experience Builder, you can customize the page to show line item details, total costs, and savings. You can also style the checkout button and add a field for customers to enter coupon codes.") # Improve Product Search Result in Japanese You can now enable a new language analyzer for Japanese locales in B2C Commerce. The new analyzer supports advanced methods for search query tokenization. This enhancement provides more relevant search results for product searches in the Japanese language. It also reduces the merchandising effort to optimize storefront search for Japanese locales. For example, setting up additional synonyms and search dictionary entries. **How:** To enable the new analyzer, in Business Manager, select **site** | **Merchant Tools** | **Search** | **Search Indexes** | **Language Options**. Select Japanese-Improved as the language analyzer for Japanese locales. An index rebuild is NOT required after this update. To change the analyzer setting requires the permission to update a Business Manager Search Indexes module. # Improve Readability for Exported Custom Attributes of Type Number Custom attributes of type number are exported to a `xsd:double` compatible format for XML exports. To better support use cases where `xsd:decimal` is assumed, B2C Commerce now exports values that are also compatible to `xsd:decimal`. This change supports a well-defined range of numbers that don’t need scientific notation. In terms of persistency/database the supported values are zero, as well as positive and negative fixed numbers with absolute values from 1.0E-130 to but don’t include 1.0E126. NaN, Infinity, and -Infinity aren’t supported. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Numbers are exported using scientific notification when the absolute value of the number is lower than 0.1⁶ or greater or equal to 10²¹. # Improve Search Results with Autocorrection Enable search to process configured synonyms when autocorrecting or autocompleting a user’s search phrase. If the original phrase matches the synonym entries, search includes the synonyms. When search autocorrects a phrase, it considers both the original phrase and the autocorrected version. Previously, if a phrase was autocorrected or autocompleted, synonym group matching on the initial search phrase wasn’t considered. How: In Business Manager, enable search autocorrect, and add synonym entries for search phrases. # Improve Security and Authentication Success with API Client Public Key Validation Account Manager now verifies the Client JSON Web Token (JWT) Bearer Public Key field in API client configurations to prevent authentication failures and improve system security. You can input a PEM-formatted certificate or a Base64-encoded RSA public key (for B2C Commerce only), with or without headers. The system checks for correct formatting and valid cryptographic material. You can still create API clients without JWT public keys if public keys aren’t needed for your use case. **Where:** This change applies to Account Manager for B2C Commerce. #### See Also - [_Salesforce Help_: Add an API Client in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_add_api_client_id.htm&language=en_US) # Improve SEO with Host Header Override Rules Support a single hostname across multiple realms by creating a Host Header Override Rule for sites that use an external content delivery network (CDN). This rule replaces unique hostnames with a common hostname to maintain the single-hostname setup. Maintaining a single hostname improves SEO for your site. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, go to **Administration** | **Sites** | **Embedded CDN Settings**. On the Host Header Override Rules tab, create your rule. Then modify your external CDN to route traffic to the proxy zones for each locale. ![Host Header Override Rules in Business Manager.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_10/b2c_rn_25_10_override_rules.png) #### See Also - [_Salesforce Help_: Configure the Embedded CDN](https://help.salesforce.com/s/articleView?id=cc.b2c_configure_the_embedded_cdn.htm&language=en_US) - [_Salesforce Help_: Configure an External CDN or Third-Party Proxy](https://help.salesforce.com/s/articleView?id=cc.b2c_configuring_an_external_cdn.htm&language=en_US) # Improved Log Handling for Einstein Search Dictionaries and Einstein Predictive Sort The error handling for Einstein Search Dictionaries and Einstein Predictive Sort log files no longer creates log errors when an updated dataset isn’t available. How: If you use Einstein Search Dictionaries or Einstein Predictive Sort, verify the Region setting in your staging instance. In **Business Manager** | **Administration** | **Operations** | **Einstein Status Dashboard** | **site**, set the Region to one of the following: - Americas - APAC - EU # Improved Order History Retrieval Use the new `dw.customer.OrderHistory#getOrders()` methods in your storefront to retrieve the order history for the shopper currently in session. If existing code uses `dw.order.OrderMgr` methods to retrieve a shopper’s order history, refactor it to use the new methods. For usage details, see the Script API documentation in the Infocenter. Why:`dw.order.OrderMgr` require the customer number as input and, if not implemented correctly, can return incorrect results. The new methods don’t require the customer number, and they return more accurate results. # Improved Page Designer Structure and Usability The Page Designer page structure in the canvas editor has been redesigned. The asset hierarchy outlines all the assets on your page. The visual connection between what is selected in the canvas and its location in the page structure is also improved. ![Page Designer page structure in the canvas](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/23_2/b2c_rn_image_page_structure.png) # Improved Scope Assignment for API Clients Each API client requires a scope assignment, either a default scope or one or more allowed scopes that you specify. Account Manager now validates your scope assignments before saving the API client. # Improved SFRA Support for "No Search Hits" Analytics We improved SFRA support for analytics tracking "no search hits" results when the page cache is enabled. **Why:** Previously, if page caching was enabled, some "no search hits" results were missed and not tracked. This issue was resolved by adding the `` tag to the [resultsCount.isml (requires login)](https://github.com/SalesforceCommerceCloud/storefront-reference-architecture/blob/master/cartridges/app_storefront_base/cartridge/templates/default/search/resultsCount.isml) template. # Improved User Interface for Multi Factor Authentication (MFA) Management We improved the Organization Detail page in two ways. You can now use sliders to set password policy values. And you can easily view which roles have MFA enabled, instead of selecting checkboxes. This user interface is similar to that of the User Detail page. # Improved Validation for OCAPI Settings Validation now checks for duplicate settings, and when you include multiple JSON configuration documents, it validates the settings in all documents instead of only the first. #### See Also - [OCAPI 20.2 diff since 19.10](https://documentation.demandware.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2FOCAPI%2Fcurrent%2Fv20_2_diff_since_v19_10.html&cp=0_12_1_0) - [OCAPI 20.2 Usage](https://documentation.demandware.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2FOCAPI%2Fcurrent%2Fusage%2FOpenCommerceAPI.html&cp=0_12) # Inclusive Language Updates As part of our efforts to refine language in our products to more accurately reflect inclusivity, Salesforce is replacing terms deemed noninclusive. **Where:** This change applies to all versions of Salesforce B2C Commerce and B2C Commerce services in Production, Sandbox, and Development instances. **Why:** Equality is a core value at Salesforce. To ensure that language in Salesforce content and products is more inclusive, we’ll continue to make updates and communicate them in the release notes. **Why:** To learn more about terms that are changing, see [How we’re bringing inclusive language to our products](https://www.salesforce.com/news/stories/how-were-bringing-inclusive-language-to-our-products/). # Inclusive Language Updates in Business Manager As we refine language in our products to more accurately reflect inclusivity, we replaced the word “master” with “main” or “base” in the Business Manager user interface and our documentation. To avoid any effect on customer implementations, we didn’t make any API changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The content in this document necessarily engages with non-inclusive language that can be emotionally and intellectually challenging to engage with. Where: This change applies to all versions of Salesforce B2C Commerce and B2C Commerce services in Production, Sandbox, and Development instances. When: Starting with the B2C Commerce 22.7 release. Why: Equality is a core value at Salesforce. To ensure that language in Salesforce content and products is more inclusive, we continue to make updates and communicate them in the release notes. How: We applied these changes: - master product / variation master –> base product - master and child items –> main items and secondary items - master catalog / master product catalog –> product catalog - master document –> main document To learn more about terms that are changing, see [How we’re bringing inclusive language to our products](https://www.salesforce.com/news/stories/how-were-bringing-inclusive-language-to-our-products/). # Inclusive Terms Are Replacing Legacy Language As part of our efforts to refine language in our products to more accurately reflect inclusivity, Salesforce is replacing terms deemed noninclusive. APIs and older API documentation aren’t included because changing terms in our code can break current implementations. Where: This change applies to all versions of Salesforce B2C Commerce and B2C Commerce services in Production, Sandbox, and Development instances. When: Starting with the B2C Commerce 20.7 release. Feature Impact: Enabled for administrators and developers. Why: Equality is a core value at Salesforce. To ensure that language in Salesforce content and products is more inclusive, we continue to make updates and communicate them in the release notes. How: To learn more about terms that are changing, see [How we’re bringing inclusive language to our products](https://www.salesforce.com/news/stories/how-were-bringing-inclusive-language-to-our-products/). # Increase Cart Size Limits for a B2B Store Most stores limit cart size to 500 line items per order. However, if your B2B store requires a higher limit, you can enable support to process up to 2,000 line items per order. To increase your line item limit, contact Customer Support. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Enable Promotion Support Make sure to enable promotion support for large carts. Otherwise, promotions aren’t evaluated for carts with a total quantity of more than 10,000. To request promotion support for large carts, contact your Salesforce Administrator. ## Understand Changes to Promotion Functionality After you enable promotion support for large carts, promotions ignore quantity limits on discounts, which can impact certain promotion scenarios. Here are some examples. - Total Fixed Price discounts–When you create a Total Fixed Price discount, you set a quantity limit to offer a select number of items for a specific reduced rate. For example, you offer three shirts for $50. Because the promotion evaluator ignores quantity limits for large carts, Total Fixed Price promotions sometimes result in either no discount or a larger discount than expected. If you enable promotion support for large carts, we recommend not using Total Fixed Price discounts. - Percent Off, Fixed Amount Off Unit, and Fixed Price discounts–Quantity limits are ignored, so discounts apply to all items that meet the conditions. For example, you offer a 10% discount on an item priced at $10, but limit the quantity to one. If a customer adds a quantity of 10 for this item, the result is a $10 discount. - Buy 1, Get 1–Because quantity is ignored on a line item, a line item counts as only one qualifying item. Therefore, two items with the same SKU don’t qualify for a “Buy 1, Get 1” promotion. Instead, consider creating promotions for “Buy X, Get Y.” # Increase Flexibility with Relaxed Locking Rules for Inventory Import Previously, inventory imports locked inventory globally for the duration of the import. Now, only the inventory list that’s currently being imported gets locked. The attempt to lock the inventory import has a timeout of ten seconds. After ten seconds, the import attempt is aborted if a different process locks the inventory list. This change enhances system flexibility and efficiency by minimizing locking contention when updating inventory imports and Data API concurrently. **Where:** This change applies to B2C Commerce. **When:** These features are available in stages from July 22, 2025, through August 31, 2025. #### See Also - [Import/Export Error Handling in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_import_export_error_handling.htm&language=en_US) # Increased Character Limits in Advanced Customer Search To support more comprehensive and accurate searches, the maximum character limits in Advanced Customer Search are now increased for these fields. - **Login, First Name, and Last Name**–256 characters - **Customer No.**–100 characters - **Email and the remaining fields**–254 characters # Increased Storage Available for On-Demand Sandboxes On-demand sandboxes now have access to 10 GB of shared realm data. All on-demand sandboxes in a realm can access data uploaded to the shared volume. You can use the shared space for import and export processes initiated through Business Manager or WebDAV uploads. In addition, storage space for each individual on-demand sandbox has increased from 5 GB to 10 GB. The shared realm data feature is already in place for the primary instance group (PIG) and secondary instance group (SIG) for every realm. With this release, we introduce the same feature for on-demand sandboxes. # Influence Product Positioning with Commerce Merchandising Rules The ability to get the right products in front of your customers can reduce store abandonment and increase site conversion rates. Use merchandising rules to gain more control over the positioning of products in search results and category pages on your B2B Commerce store. Pin specific products to fixed positions on the category pages to ensure that high-priority products always appear where you want them, regardless of other ranking factors. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Create Boost and Bury Rules](https://help.salesforce.com/s/articleView?id=commerce.comm_create_merchandising_rules.htm&release=264.0.0&type=5)** A strategic management of product listings in B2B makes sure that shoppers see the most relevant products first. Use boost and bury rules to align your search results and category pages with your business goals, like stock management, new product promotions, or selling high-value products. Select specific products manually or define attribute-based conditions to apply rules to matching products dynamically. - **[Pin Products to Category Pages](https://help.salesforce.com/s/articleView?id=commerce.comm_pin_products.htm&release=264.0.0&type=5)** Pin up to 10 products to fixed positions on B2B category pages to ensure that high-priority products appear first. Pinned products override the sorting order and always appear first in the order you define. By pinning products to category pages, you can prioritize high-margin items, contract SKUs, safety-critical products, or seasonal promotions without developer support. Pinning rules apply per category and can vary by store and locale. - **[Preview Merchandising Rules](https://help.salesforce.com/s/articleView?id=commerce.comm_preview_merchandising_rules.htm&release=264.0.0&type=5)** After you create merchandising rules for your B2B Commerce store, such as boost or bury rules, you can preview how the rules affect product positioning. Access the Preview screen from the Rules workspace. - **[Assign Weights to Searchable Product Fields](https://help.salesforce.com/s/articleView?id=commerce.comm_search_weight_fields.htm&release=264.0.0&type=5)** Assign weights to searchable product fields such as Name, SKU, and Brand to prioritize high-value matches in search results. By assigning weights on a scale of 1 to 10, where 1 is the lowest and 10 is the highest, to searchable fields, you can control which fields carry the most influence in search rankings. By assigning weights to standard and custom searchable fields, product attributes, and category fields, you can influence ranking behavior without requiring backend engineering or AI intervention. # Influence the Placement of a Page Designer Page in Search Results You can specify a boost factor in a searchable page or component attribute to influence the placement of the page in search results. How: The default value for a boost factor is 1.0. To indicate that text in the attribute is less relevant than other terms in the index, specify a boost factor less than 1.0. You can use any decimal number less than 1, for example, 0.5 or 0.3, but you can't use negative numbers. To increase the relevance of attribute text, specify a boost factor greater than 1.0. For example, specifying a boost factor of 2.0 makes the field twice as relevant in relation to other fields in the index. Include the boost factor value in the page or component meta definition file, as in the following example: ```javascript { "id": "heading", "name": "Banner Heading", "required": true, "type": "text", "searching": { "searchable": true, "refinable": true, "boost_factor": 2.0 } } ``` #### See Also - [Enable Indexing for Attribute Content](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_enable_indexing_for_attributes.html) # Ingest B2C Commerce Domain Data into Data 360 Using Apache Iceberg Use the Apache Iceberg File Federation connector to ingest B2C Commerce domain data—including products, orders, customer profiles, and custom attributes for products and customer profiles—into Data 360. **Where:** This change applies to B2C Commerce integrations with Data 360. **Why:** The Apache Iceberg File Federation connector provides a unified way to bring all your B2C Commerce domain data into Data 360 for harmonization, insights, and personalization. **How:** In Data Cloud Setup, create an Apache Iceberg File Federation connection and configure a data stream to ingest your B2C Commerce domain data. After creating the data stream, manually map the source objects to Data 360 data model objects (DMOs). #### See Also - [Ingest B2C Commerce Domain Data into Data 360](https://help.salesforce.com/s/articleView?id=cc.b2c_data_cloud_domain_data_container.htm&type=5&language=en_US) - [Lakehouse Schema Entity Tables Reference](https://help.salesforce.com/s/articleView?id=cc.b2c_data_cloud_lakehouse_entity_tables.htm&type=5&language=en_US) # Ingest B2C Commerce Product Custom Attributes into Data Cloud You can now ingest custom attributes for the Product object into Data Cloud using the B2C Commerce Connector. Previously, you couldn’t ingest custom attributes. # Ingest Engagement Events from B2C Commerce into Data Cloud You can now ingest storefront engagement events, such as product impressions, wishlist activity, and page views, into Data Cloud using the Web and Mobile App connector. The connector works with B2C Commerce storefronts built on SFRA, Sitegenesis, or PWA. You choose which type of engagement data to send to Data Cloud. **How:** This feature is enabled by default, but some setup is required. Install the Engagement Events data kit. Then in Data Cloud, configure a data stream and the connector. Lastly, in Business Manager, configure the feature. #### See Also - [Sending B2C Commerce Engagement Events to Data Cloud](https://help.salesforce.com/s/articleView?id=cc.b2c_data_cloud_send_engagement_events_container.htm&type=5&language=en_US) # Ingest Registered Shopper Profiles into Data Cloud You can now export registered shopper profiles for specific sites as well as profiles modified after a certain date. The exported shopper profiles are then ingested into Data Cloud using the B2C Commerce Connector. **How:** In Business Manager, select a site, and then select **Merchant Tools** | **Site Preferences** | **Salesforce Data Cloud**. # Initial 1.0 General Availability Release The Salesforce Commerce API is generally available as of July 22, 2020. **Why:** The Salesforce Commerce API is a new RESTful API for B2C Commerce, providing a path to developing new commerce services with: - A new API gateway with multi-tenant support. - Built-in monitoring, metering, and logging. - An eCDN layer in front of the APIs. - Support for headless development across multiple use cases for shopping and administration. **How:** See the latest release notes on [Salesforce Developers](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). # Insert a Video Using a URL The Point of Sale Media Library lets you seamlessly integrate externally hosted videos into your POS app layout, enhancing the user experience and providing dynamic content. This feature allows for easy updates and consistent branding across all retail touchpoints. 1. In CMS, go to **Apps** | **All**. 2. Edit a selected app config. 3. Click into a cell. 4. In the toolbar on the right, go to **Media** | **Add Image** | **Insert via URL**. 5. Copy the full URL to your externally hosted video. For example, http://example.com/myVideo.mp4. 6. Paste the video into the URL field and click **Insert**. 7. Click **Select Asset** and save your changes. #### See Also - [_Salesforce Help:_ Media Library](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_media_library.htm&release=264.0.0&type=5 "The Media Library allows you to upload images and videos or reference them using a URL, enabling seamless integration into the Modern POS UI for a visually engaging user experience. This feature enhances the layout editor, making it easy to create dynamic and appealing interfaces.") # Install Connected Commerce Order Routing If you’re using Connected Commerce Order Routing, you can install the flow through the Commerce Setup Assistant. Because Connected Commerce only includes B2B and D2C Commerce, B2C Commerce can’t install this version of the app. 1. In the Commerce Setup Assistant, go to the Additional Setup tab. 2. Install the order routing package. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Install Growth Order Routing Because the Growth license can be purchased along with B2B, D2C, and B2C Commerce, all three products can use Growth Order Routing. 1. Install the Growth Order Routing package links. There are two links, which must be installed in order. You’re prompted to enter your org’s login credentials. 1. Install [Order Routing Link 1](http://sfdc.co/DOMPackagePart1). 2. Install [Order Routing Link 2](http://sfdc.co/DOMPackagePart2). 2. If you’re using person accounts to represent individual shoppers, verify that they’re enabled and configured in your org. 3. From Setup, in the Quick Find box, find and select **Profiles**. 4. Select **System Administrator**. 5. In the Fields & Relationships section, find Location and click **View**. 6. Click **Edit**, and assign Edit and Read access to Assigned Fulfillment Order Count, Fulfillment Order Capacity, Priority, and Track Fulfillment Order Capacity. 7. Click **Save**. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Install Return Insights Package After Data 360 and Einstein are configured on your site, install the Return Insights package. ### Required Editions
View supported editions.
1. Install the [Return Insights package](http://sfdc.co/ReturnInsights). 2. Set the Analyze Returns tab to visible. 1. From Setup, in the Quick Find box, find and select **Profiles**. 2. Select a profile with access to the Return Insights tab, such as System Administrator. 3. Click **Edit**. 4. Set the Return Insights tab default to **On**. 5. Click **Save**. 3. Add the Return Insights tab to the Order Management console. 1. From the App Launcher, find and select **Order Management**. 2. Open the arrow menu for Order Summary Tab and click **Edit**. 3. In Search, enter Return Insights. 4. Click **Add** and then **Save**. #### See Also - [Return Insights Overview](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights.htm&release=264.0.0&type=5 "Use Einstein to identify products with high return rates and analyze the reasons that customers are retuning them.") - [Return Insights Setup](https://help.salesforce.com/s/articleView?id=commerce.om_return_insights_setup.htm&release=264.0.0&type=5 "You can complete most of the initial Einstein configuration using the Data 360 Setup Guide.") # Install the Order Management Basic Reports Package Install the Order Management Basic Reports package to use prebuilt report templates. ### Required Editions
View supported editions.
1. Open the [Install Order Management Basic Reports](https://login.salesforce.com/packaging/installPackage.apexp?p0=04tWs000000CdYfIAK) page. 2. Enter the login credentials for the environment where you want to install the package. 3. Select **Install for All Users**. 4. Select **Compile only the Apex in the package**. 5. Click **Install**. 6. From Setup, in the Quick Find box, enter Installed Packages, and then select **Installed Packages**. 7. Verify that the Order Management Standard Reports package appears in the list. #### See Also - [Reports for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_reports.htm&release=264.0.0&type=5 "Use reports to retrieve and analyze order, fulfillment, and payment information to help you optimize service delivery and keep your order workflow running smoothly.") # Insulate B2C Commerce Against Rogue Queries Elastic search queries configured in Business Manager or using the `customer_search` and `order_search` APIs are now limited to 200 thousand results. Queries for results greater than 200 thousand time out. Limiting the elastic search results helps insulate your B2C Commerce Instance from rogue queries. If you use the APIs, run queries with a smaller offset to avoid a timeout. # Integrate a Customizable Product WebView Point of Sale's Design Your Own (DYO) feature lets merchants integrate a Customizable Product WebView. Users can launch a WebView on the POS app to create or alter products. Then, they can add the products to the cart for checkout. - Modern POS App Build: Current, available build in TestFlight - Platform Support: iPhone & iPad - Offline Support: No The functionality of the DYO WebView varies based on your configuration, there are two options available for integration: cookie-based or event-based. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note It is the merchants' responsibility to have already created a Customizable Product WebView. While Point of Sale's DYO is a standard functionality, integration with the merchant's WebView is required for this feature. - Associates will have the ability to access an external URL for creating DYO products. - Associates can opt for "Custom Made" to include a personalized product in their cart. This functionality is available exclusively for online products marked with a DYO URL. It can be initiated from either a generic product URL or from the PDP if the product link is configured via PDP V2. - The price of a custom product will be visible to associates at the item level in the cart. - Associates can choose "Custom Made" to review the details of the product customizations within the cart. - Associates retain the capability to remove DYO products entirely by deleting the respective item from the cart. ## Configure Product Feed Configure your [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters.") to include a field for the DYO or Customizable Product URL. 1. In the Product Feed, for each DYO-applicable product, create a dedicated column to list the product's DYO/Custom Made URL. This column can be labeled at your discretion as it will be later mapped to a custom string field in the Field Mappings. 2. Upload the Product Feed, see [Run Feeds Manually](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_manual_run.htm&release=264.0.0&type=5 "Sometimes you need to run a data feed right away. You can manually run data feeds in Point of Sale to update your data immediately, rather than waiting for the next scheduled run. Implement these steps when you need the most current data.") or [Schedule Feed Runs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule."). 3. Once it's been uploaded successfully, configure Field Mappings in CMS by going to **Feeds** | **Field mappings** | **Products**. 4. Under Source Field, look for the column that lists the URLs (e.g., "CustomMadeURL") and map it with any available custom string under Target Fields, e.g., "CustomString0".![A screenshot shows the mapping of custom URL to custom string.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_webview_configure_product_feed.png) 5. Save your changes. ## Configure Deep Link Configure a deep link to launch your WebView in a PDP. Note, you may need to create several PDP layouts with different URLs to launch the WebView for different products (e.g, customizing jackets, shirts, dresses, etc. ) 1. In CMS, go to **Layouts** | **Layout Templates** | **PDP**. 2. Create or edit a PDP layout. 3. Using the deep link picker, go to URL.![A screenshot shows the option to configure a URL for a deep link](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_webview_configure_deep_link.png) 4. Input the URL to launch the WebView. ## Integrate the DYO App This section is for merchants who wish to use their DYO app, for Customizable Products refer to [Integrate Customizable Products App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_webview.htm&release=264.0.0&type=5). ### Configure Cookie-Based Integration If the DYO app uses cookies, continue reading. If the app uses events instead, skip to [Configure Event-Based Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_webview.htm&release=264.0.0&type=5). 1. In CMS, go to **Apps** | **All**. 2. Edit the app config you wish to enable this feature. 3. Go to **Modules** | **Design your Own**. 4. Configure these fields: 1. Personalized Products Property Web URL: Enter the product feed field name containing the external URL for product personalization to load on the PDP. 2. Cookie Key Name for Personalized Products: Provide the key used to retrieve cookie details of personalized products upon addition to the cart. 3. Personalized Products Web Page Javascript Function for Add-to-Cart Action: Enter the Javascript function name responsible for triggering the add-to-cart action.![Settings for a personalised product's URL, cookie key, and JavaScript function.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_webview_cookie_based_integration.png) ### Configure Event-Based Integration 1. In CMS, go to **Apps** | **All**. 2. Edit the app config you wish to enable this feature. 3. Go to **Modules** | **Design your Own**. 4. Configure these fields: 1. DYO Endpoint URL: Input the endpoint URL for Design Your Own. 2. DYO Event Name: Specify the event name used to trigger the add-to-cart action. 3. Personalized Products Property Web URL: Enter the product feed field name containing the external URL for product personalization to load on the PDP.![Settings for a design your own item's endpoint URL, name, and product property web URL.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_webview_event_based_integration.png) ## Integrate Customizable Products App 1. In CMS, go to **Apps** | **All**. 2. Edit the app config you wish to enable this feature. 3. Go to **Modules** | **Design your Own**. 4. Configure theie fields: 1. Alteration Product Field: Enter the product feed field name containing the external URL for product personalization to load on the PDP. 2. Alterations Endpoint URL: Input the endpoint URL for Customizable Product. 3. Alterations Client Secret: Input the clientSecret parameter of the Alteration Endpoint URL. 4. Alterations Event Name: Specify the event name used to trigger the add-to-cart action.![Settings for an alterations product, including its field, URL, client secret, and name.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_webview_integrate_customizable_products.png) ## POS Behavior Upon enabling Point of Sale's DYO feature, successfully integrating with the merchant's WebView, tap on the deep link to launch the WebView. ![The POS app shows a web view for custom fabric selection.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_webview_pos_behavior_1.png) The WebView will allow users to customize the product and add them to the cart. ![The POS app shows the cart containing a customized product.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_webview_pos_behavior_2.png) Product details can be viewed by tapping on the Custom Made CTA. This CTA is a default feature of the Custom Made layout, which can be configured in CMS by going to **Layouts** | **Layout Templates** | **Product Cart Cell**. ![The POS app shows details of a custom-made product order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_custom_webview_pos_behavior_3.png) # Integrate Avalara for Point of Sale Automate tax calculations and tax filing by using Avalara in Point of Sale. When you configure Avalara for POS, Avalara performs all tax computations for sale transactions. **Requirements:** - Modern POS App Build: 6.2.3 or later - Platform Support: iPad - Offline Support: Yes - Avalara account - Product feed file with a column for Avalara's [Tax Code](https://developer.avalara.com/ecommerce-integration-guide/sales-tax-badge/transactions/item-classification/) - OMS integration for refunds, exchanges, and cancellations ## Set Up Tax Engine ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Use Avalara V2 integration. Avalara V2 synchronizes detailed tax information, including item tax, shipping tax, and total tax, with Avalara's system to verify accurate tax calculations for all orders. Avalara V1 doesn't offer syncing support and can result in tax miscalculations. 1. In CMS, go to **Integrations** | **Tax Engine Configuration**. 2. Click **Create**. 3. Under **Tax Engine**, select **Avalara V2**. 4. Configure the remaining fields. For field descriptions, see [Integrate Tax Engines](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_overview.htm&release=264.0.0&type=5 "To calculate taxes, apply exemptions, and support tax overrides during checkout, configure a tax engine in the Point of Sale CMS."). 5. (Optional) After filling out the fields under Connectivity and Authentication, click **Verify** to test the connection to Avalara. 6. In CMS, go to **Store Management** | **Store Settings** | **OMS** | **Advanced**. 7. Turn on **Pre-generate order ID and use it as cart ID**. This setting enables Avalara's Sales Invoice Number to use Point of Sale's Order ID. 8. Save your changes. ## Product Field Mapping Field mapping applies only if you upload products using feed files and support both online and offline transactions. If you upload products using an API, provide the tax class using the selected custom attribute in the payload. For payload specifications, see Point of Sale's [SwaggerHub documentation](https://app.swaggerhub.com/apis/PredictSpring1/POSAPI_SPEC/). To support tax calculation in offline mode, map product feed attributes to include tax types dynamically. 1. In CMS, go to **Feeds** | **Field Mapping** | **Products**. 2. Under **Source Fields**, map the tax custom attributes to a different custom attribute. For example, map taxClassID to CustomString12.![A form shows field transformation from SKU to custom string.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_avalara_prod_map.png) 3. In CMS, go to **Store Management** | **Store Settings** | **Checkout**. 4. Expand **Tax**. 5. Under **Product Field to read tax class**, enter the custom string you previously mapped in camelCase format (for example, customString12).![An input box contains a product field.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_avalara_prod_field.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Don't send a separate tax class field in the product feed. This screenshot shows the tax class "GENERIC" configured in the product feed. During offline processing, this tax class determines the tax rate. Your tax class can differ (for example, PC040100 or PC000000) based on your Avalara mapping. ![A field transformation form enables modification of a string with regular expressions.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_avalara_field_trans.png) Offline process requires this product feed setting because offline processing supports a default tax class configured for all store locations. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Upload the product feed after completing these settings. ## Schedule Tax Rate File Download Avalara computes taxes directly, so the tax feed isn't necessary for online processing. If you support both online and offline processing, upload the tax feed from Avalara to calculate taxes during offline mode. Tax rates are zip code-specific, so make sure that the store's postal code in CMS and Avalara match. For more information, see Avalara's [Download Feature](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/TaxContent/DownloadTaxRatesByZipCode/). You can upload the tax feed from Avalara at scheduled intervals. 1. In CMS, go to **Feeds** | **Scheduled Upload**. 2. Click the plus (+) icon and select **Tax Rates**. 3. Configure the date and time of the schedule. For field descriptions, see [Scheduling Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule."). 4. Under **Feed Source Type**, select **Avalara**. 5. Under **Account ID**, enter your Avalara account ID. 6. Under **License Key**, enter your Avalara license key. 7. Under **Base URL**, enter the Avalara base URL (for example, `https://sandbox-rest.avatax.com/api/v2`). 8. Under **Feed File Type**, select the feed file type (for example, CSV or TSV). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note A separate feed file for the tax rate isn't required. ## Commit Tax Transaction Point of Sale supports conditional tax transaction commits in Avalara after a sale transaction to confirm that the appropriate tax applies in the app. By default, Point of Sale doesn't auto-commit the tax transaction. To turn on auto-commit after completing a sale transaction, configure this setting. 1. In CMS, go to **Store Management** | **Store Settings**. 2. Under **Modules**, go to **Tax**. 3. Turn on **Submit/Finalize Tax Details After Order Submission**. ## Enable Value-added Tax (VAT) To send tax-inclusive pricing to Avalara and map external tax IDs to your downstream systems, enable the VAT setting. 1. In CMS, go to **Store Management** | **Store Settings** | **Tax**. 2. Turn on **Is VAT enabled for this merchant**. ## OMS Integration Set up an OMS integration (for example, NetSuite) to post order refunds, exchanges, and cancellations to Avalara. 1. In CMS, go to **Integrations** | **OMS Configuration**. 2. Click **Create**. 3. Select the OMS type and configure the remaining fields. ## Additional Information ### Onboard Merchant for Avalara Integration Point of Sale's integration with Avalara uses the REST model for authentication. For more information, see Avalara's [Authentication Method](https://developer.avalara.com/ecommerce-integration-guide/sales-tax-badge/authentication-in-avatax/authentication-methods/). For offline transactions, Point of Sale supports tax rate file downloads from Avalara. Tax rates are zip code-specific. For more information, see Avalara's [Download Feature](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/TaxContent/DownloadTaxRatesByZipCode/). **Product feed changes for Avalara integration:** - Online transactions only: You don't need to add tax-related attributes in the product feed. - Online and offline transactions: POS requires the CMS configurations in this topic for proper tax computation during offline transactions. ### Tax Codes Avalara Tax Codes apply the appropriate tax rates to individual products. Map the codes to your products as described in [Product Field Mapping](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_avalara.htm&release=264.0.0&type=5). After mapping, Point of Sale sends the product ID as the itemCode and the mapped field (for example, CustomString12) as the taxCode. Avalara first looks for a match of the itemCode. If found, Avalara associates it with a tax code. If not found, Avalara looks for a match of the taxCode and applies the appropriate tax rate. Avalara defaults to P0000000 if the taxCode isn't available. ### Offline Tax Feed Generation ![A sequence diagram illustrates offline tax file generation.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_avalara_offline_tax_feed_generation.png) ### Supported Avalara Endpoints Point of Sale supports these Avalara endpoints:
Avalara Endpoint Point of Sale Usage
CreateOrAdjustTransaction
  • Tax computation during cart operations.
  • All Avalara tax requests, belonging to the same Point of Sale cart, group under the same Avalara transaction code.
  • Point of Sale cart uses salesInvoice to perform Avalara transactions for sale purposes.
CommitTransaction
  • After completing the sales transaction, Point of Sale commits the Avalara transaction created during cart operation.
  • This commit is conditional and POS does auto-commit if Submit/Finalize Tax Details After Order Submission is on. Refer to Commit Tax Transaction
DownloadTaxRatesByZipCode
### Example JSON Request When Point of Sale calls Avalara's API, we provide the following information and more: - Product IDs - Tax classes - Shipping addresses - Store addresses ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example ``` Tax service request: { "createTransactionModel": { "code": "PS00270499", "type": "SalesInvoice", "companyCode": "DEFAULT", "date": "2023-11-28", "purchaseOrderNo": "PS00270499", "currencyCode": "USD", "lines": [ { "number": "1", "quantity": 1, "amount": 40.00, "taxCode": "P0000000", "itemCode": "HRL75-RF1A", "description": "CRMSN SPARKLE DRESS-TM D", "addresses": { "shipFrom": { "line1": "75 Rockefeller Plaza", "city": "New York", "region": "NY", "postalCode": "10019" }, "shipTo": { "line1": "75 Rockefeller Plaza", "city": "New York", "region": "NY", "postalCode": "10019" } } }, { "number": "2", "quantity": 1, "amount": 0.05, "itemCode": "ECHOBAGNY05", "description": "ORDINANCE BAG TAX", "addresses": { "shipFrom": { "line1": "75 Rockefeller Plaza", "city": "New York", "region": "NY", "postalCode": "10019" }, "shipTo": { "line1": "75 Rockefeller Plaza", "city": "New York", "region": "NY", "postalCode": "10019" } } } ], "addresses": { "shipFrom": { "line1": "75 Rockefeller Plaza", "city": "New York", "region": "NY", "postalCode": "10019" }, "shipTo": { "line1": "75 Rockefeller Plaza", "city": "New York", "region": "NY", "postalCode": "10019" } }, "customerCode": "Guest" } }, apiEndpoint: /transactions/createoradjust, method:POST ``` ## Known Issues and Restrictions The following features have limitations with Avalara integration: - POS uses tax class during offline tax calculation only. Online tax calculation is based on the mapping provided in Avalara. - Offline tax exemption isn't available because Avalara doesn't provide a tax exemption feed for offline processing. - Configure overridden tax rates (for example, tax holidays) in Avalara to support tax override. - Fee for online mode is available only if configured in the Avalara system. - POS doesn't support offline tax override. - POS doesn't support fee for offline mode. # Integrate Clutch Gift Cards The Point of Sale (POS) app supports gift card integration with Clutch. Learn how to configure a Clutch account with the supported functionality. - Modern POS App build: 6.6.2 or above - Platform Support: iPhone & iPad - Offline Support: No - Clutch Account Setting: To support issuing refunds using a Gift Card during a return, Clutch needs to set up a maximum refund amount on the merchant's Clutch account. This functionality is supported in the POS App: - Purchase of a gift card - Show the balance of a gift card - Add balance to an existing gift card (available in staging but not in production) - Refund to the gift card (gift card as a return tender) This functionality is not supported in the POS App: - Void a gift card transaction - Virtual gift card Tip: Refer to [Gift Card Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option.") for more information on gift cards. ## Configure Clutch Integration 1. In CMS, go to **Integrations** | **Gift Cards**. 2. Click **Create** to create a configuration for Clutch. 3. Configure the fields. Note, an asterisk(\*) denotes a required field.
Field Description
General
Gift Card Service* Select "Clutch"
Store ID* Select "Default" to apply this configuration to all stores, or choose a specific store to apply it to
Card Type* Select either "Gift Card" or "Reward Card"
Currency* Select a currency code in ISO 4217 (e.g., USD)
Store Configuration
Location ID* Enter Clutch's location ID
Terminal ID* Enter Clutch's terminal ID
Routing
Routing ID* Enter Clutch's brand ID
Credentials
Username* Enter Clutch's API key
Password* Enter Clutch's API secret key
Token Endpoint* Enter Clutch's base URL (e.g., https://api-stage.clutch.com/merchant/ or https://api.clutch.com/merchant/)
Advanced
Name Space Enter Clutch's name space (e.g., https://api-stage.clutch.com/merchant/)
Cash Out Configuration Configure the threshold when redeeming cash with a gift card, refer to this Gift Card Support in POS for more information
Allow Gift Card Purchase Enabling this flag allows gift cards to be purchased
Require Activation Enabling this flag requires the gift card to be activated when purchsed
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Switching Gift Card services will clear all fields except for Store ID and Card Type. ## Enable App Config Settings To set up a gift card as tender in the checkout flow, refer to [Gift Card Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option.") in [Gift Card Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option."). ## Mandating Gift Card Pin You can configure whether a PIN is required for checking a gift card balance or redeeming it. Point of Sale offers three options: Optional, Required, or None. For the Clutch connector, the PIN is optional and passed as a parameter to Clutch. Merchants wishing to disable this feature entirely should contact Clutch support for assistance. Important: The pin settings location depends on the app build version. For app builds 10.6.1 or higher, set the pin under **Integrations** | **Gift Cards**. For app builds 10.5.1 or lower, set it under **App Configs** | **Modules** | **Cart**. ### App Builds 10.6.1 or Greater 1. In CMS, go to **Integrations** | **Gift Cards**. 2. Edit a Clutch integration. 3. Under **Advanced** | **Pin Settings,** select one of the following options: 1. Optional: PIN is not mandatory but can be used if available 2. Required: PIN must be entered to check the balance or redeem the gift card 3. None: PIN is required, and the system will process gift cards without PIN validation ![A form displays advanced settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_gift_card_clutch_pin_10_6.png) 4. Save your changes. ### App Builds 10.5.1 or Lower Note: For app builds 10.5.1 or lower, ensure only one pin setting (Optional, Required, or None) is configured in both locations: App Configs and Integrations > Gift Cards, as Retail Cloud's Backend validates the pin setting only under Integrations > Gift Cards. 1. In CMS, go to App Configs. 2. Edit an app config and go to **Modules** | **Cart.** 3. Under Gift Pin Settings, select one of these options: 1. Optional: PIN isn't mandatory but can be used if available 2. Required: PIN must be entered to check the balance or redeem the gift card 3. None: PIN is required, and the system will process gift cards without PIN validation ![A screenshot displays cart settings for an application.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_gift_card_clutch_pin_10_5.png) 4. Save your changes. ## Create a Gift Card Product For gift card purchases in the POS, the gift card SKU/product needs to be entered into the POS system using. - Product Feed: Add a gift card SKU to the product feed. Make sure to add its productClass with a value of GiftCard. Refer to [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters.") for more information. - Create gift card in CMS: Refer to Create a Gift Card Product in [Configure Gift Card Payments in Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_gift_cards_terminal.htm&release=264.0.0&type=5 "Configure Point of Sale's Point of Sale (POS) to accept gift card payments, add value, cash out, and check balances, using a payment terminal. Merchants can select the integration approach that suits their needs, verifying all transactions are available through gateway reporting."). ## Enable POS Settings for Returns Starting with app build 6.6.2, Point of Sale's POS app supports refunds to gift cards. To set up the gift card as a return tender, refer to Configure Returns to Gift Card via Tender Mapping in [Gift Card Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option."). ## Configure Deep Link on Layout Gift card purchases are supported in the POS app and are available on the cart screen if configured correctly. To learn more about this configuration, refer to Configure Gift Card Deep Links in [Gift Card Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option."). ## Known Issues and Restrictions - A refund to a gift card is supported only using brand new non-activated gift cards. - When a Corporate Gift Card is used to make a purchase and there is a request to return the purchase and refund the same card, the workflow is different than adding balance to an existing gift card. On the return flow, the refund needs to be issued on the original authorization token. # Integrate Givex Gift Cards Point of Sale's POS supports gift card integration with Givex. Learn how to configure a Givex account with the supported functionality. - Modern POS App Build: - Gift card purchase and gift card as a tender: 5.1.0 r15000 or above - Gift card as a return tender: 6.6.2 - Platform Support: iPhone & iPad - Offline Support: No - Technical Requirements: Ensure the GiveX account has Channel restriction at the user ID level as well as Encrypted and JSON-RPC as the restriction ## Set Up the Givex Integration 1. Navigate to CMS > Integrations > Gift Cards 2. Create a gift card service for Givex and enter these details: 1. Service - Select Givex 2. Store ID - If the Givex account is store-specific, then select the applicable store from the store picker. If the Givex account is common to all stores, select DEFAULT: All Stores. 3. Card Type - Select either GiftCard OR RewardCard 4. Transaction ID - Enter DEFAULT manually under this Transaction ID input box 5. User Name - Enter Givex's user ID 6. Password - Enter Givex's user password 7. Endpoint - Enter Givex's endpoint by using the Givex host and port in this format: `https://:/` (e.g., `https://dev-dataconnect.givex.com:50104/`) 8. Currency - Enter the currency code in ISO 4217 (e.g., USD, MXN, EUR) 9. Enable all the applicable rules: 10. Allow Gift Card Purchase 11. Require Activation ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Switching Gift Card Services will clear all fields except for Store ID and Card Type. ## Enable App Config Settings To set up a gift card as tender in the checkout flow, refer to _Enable App Config Settings_ in [Gift Card Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option."). ## Create a Gift Card Product For gift card purchases in Point of Sale's POS, the gift card SKU/product needs to be entered into the POS system using: - Product Feed: Add a gift card SKU to the product feed. Make sure to add its productClass with a value of GiftCard. Refer to [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters.") for more information. - Create gift card in CMS: Refer to Create a Gift Card Product in [Gift Cards via Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_gift_cards_terminal.htm&release=264.0.0&type=5 "Configure Point of Sale's Point of Sale (POS) to accept gift card payments, add value, cash out, and check balances, using a payment terminal. Merchants can select the integration approach that suits their needs, verifying all transactions are available through gateway reporting."). ## Enable POS Settings for Returns Starting from build version 6.6.2, the POS app has started supporting refunds to gift cards. To set up the gift card as a return tender, refer to _Enable POS Settings_ in [Gift Card Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option."). ## Configure a Deep Link From a Layout Gift card purchases are supported in the POS and available on the cart screen if configured correctly. To know more about this configuration, refer to _Configure a Deep Link From a Layout_ in [Gift Card Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option."). ## Feature Support Point of Sale's POS app supports: - Purchase of gift card - Show balance of gift card - Add balance to an existing gift card (available in staging but not in production) - Refund to the gift card (gift card as a return tender) PrecitSpring's POS app doesn't support: - Void a gift card transaction - Virtual gift card Refer to POS behavior details in [Gift Card Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option.") for more information. ## Known Issues and Restrictions A refund to a gift card is supported only using brand new non-activated gift cards. # Integrate NetSuite ERP in CMS Enable order management by integrating your NetSuite ERP with Point of Sale CMS. Begin with an initial configuration on your NetSuite account. Then, complete the setup in the CMS. - Sandbox and Production accounts for both NetSuite and CMS environments As this integration with Netsuite relies heavily on NetSuite internal IDs, it is recommended that the integration is configured by a Point of Sale Customer Success Manager (CSM) or the merchant's NetSuite consultant as much of this information will be available in NetSuite. _To learn how to integrate NetSuite OMS, refer to the_ [_NetSuite Integration Guide_](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_oms_netsuite.htm&release=264.0.0&type=5 "Integrate NetSuite Order Management System (OMS) with Point of Sale to centralize and streamline order fulfillment processes. Connecting these systems improves inventory visibility and enables efficient order routing. With this integration, retailers gain a unified view of orders, inventory, and customer data. This single view helps create seamless customer experiences.")_._ ## Configure ERP in CMS 1. In the Point of Sale CMS, navigate to **Store Management** | **Integrations** | **ERP Configuration**. 2. Fill out the fields . Fields denoted with \* are required fields. ERP CMS Fields
Field Description
General Settings
ERP Service Name*

Your ERP integration service

Example: NetSuite, Custom, etc.

Use Tax Rates Exported From Netsuite For NetSuite ERP, if enabled, tax rates will be retrieved from NetSuite
Use line item shipping If selected, shipping details are applied at the line-item level rather than the order level
Enable Master of Record If enabled, OMS will be the Master of Record for all orders when retrieving order details
Has Department Per Location Enabled indicates that department (i.e., cost center) references will be retrieved from the store level ERP configuration
Has Fulfillment Based Transaction Type Enabled indicates invoices for cash & carry orders, and the sale orders of endless aisle will be generated
Disable Default Search Enabled indicates that search will not be executed at page load. Search will be executed only when search terms are entered by user
Always Use Custom Price

Enabled indicates to use NetSuite's custom Price Level for maintaining initial pricing of products. By default, Point of Sale sends "1" as the InternalID for the "Base Price" Price Level to NetSuite. Enabling this toggle changes it to "-1," preserving the initial product pricing.

Note: If this setting is enabled, a tax engine must be configured. Otherwise, turn this flag off, and orders can be posted without a tax integration record.

Credentials Fields
Account ID* ERP account ID; can be found in your NetSuite account and is shown on the Company Information UI
Consumer Key*

ERP API access credentials consumer key; can be found in your NetSuite account when setting up a new integration

Note: Max length supported is 128 characters

Consumer Secret* ERP API access credentials consumer secret; can be found in your NetSuite account when setting up a new integration
Token ID* ERP API access credentials token ID; can be found in your NetSuite account when creating a web services access token for the web services user
Token Secret* ERP API access credentials token secret; can be found in your NetSuite account when creating a web services access token for the web services user
Checkout Settings
Endpoint URL*

Merchant NetSuite base URL; can be found in your NetSuite account by going to Setup > Company > Company Information, Company URLs tab, Suitetalk (SOAP and REST web services)

Example: https://293_AB1.suitetal-k.api.netsuite.com

Customer Store Credit Custom Field

NetSuite custom field to the store customer credit; can be found in your NetSuite account

Example: custentity_qas_re-mainingbalancecr

Customer Group Custom Field Specifies the name of the custom field in the customer record that stores the customer group ID for merchants that support customer groups.
Create Finance Deposits If this flag is enabled, a customer deposit will be created for finance tenders,
Edit Customer Credit If this flag is enabled, editing will be allowed to a customer store credit amount which is held in a custom field in the customer record.
Advanced Search Settings
Internal ID Internal ID field for searching orders and quotes. For more details, please refer to Advanced Search Settings.
Customer Internal ID Internal ID field for searching customers by name. For more details, please refer to Advanced Search Settings.
Reference IDs
Class ERP Class internal ID; can be found in your NetSuite account by going to Setup > Company > Classes
Department ERP Department internal ID; can be found in your NetSuite account by going to Setup > Company > Department
Gift Certificate Item ERP Gift Certificate Item internal ID; can be found in your NetSuite account
Guest Customer ERP Guest Customer Internal ID for guest orders; can be found in your NetSuite account by going to Lists > Relationships > Customers
POS Transaction ID - External Ref ID To find and retrieve an order from NetSuite in Point of Sale, we use a custom field with the necessary Internal ID for the search call
Guest Account Ref ID Internal account ID that will be sent when guest orders are submitted
Not on file ERP Not-On-File item internal ID; can be found in your NetSuite account
Not on file SKU ERP Not-On-File item SKU; can be found in your NetSuite account
Store ERP Used to link external Store ID fields with Point of Sale Store ID fields during searches for external quotes. Select the "Target Field" that is mapped to the NetSuite Store ID within the Store Feed (e.g., CustomeString0)
Product ERP Point of Sale product field containing ERP Product internal IDs
Product Type Mapping Point of Sale product field containing ERP Product type mappings
Return custom form ERP Return Transaction Custom Form internal ID; can be found in your NetSuite account
Subsidiary ERP Subsidiary internal ID; can be found in your NetSuite account by going to Setup > Company > Subsidiaries. For NetSuite calls (Search and Create Customer) passing the subsidiary ID, if populated at the store level, the store-level ID will be sent. Otherwise, the merchant-level ID from the ERP configuration settings in the CMS will be used.
Transaction custom form ERP Transaction Custom Form internal ID; can be found in your NetSuite account
Deposit Credit Item Ref ID Item internal ID reference
Credit Card Types
Credit Card Type

List of supported credit card types

Example: Visa, Mastercard, American Express, Discover, JCBank, etc.

Tip: For details on the support capability for BORIS returns to credit card payments, please refer to this article.

Credit Card Reference ID ERP payment card internal ID
Tender Types
Type

Supported tender types

Example: Cash, CreditCard, GiftCard, PLCC, Check, etc.

Payment Method ID ERP tender payment method internal ID; can be found in your NetSuite account
General Ledger Account ID ERP tender account internal ID for the tender type; can be found in your NetSuite account
Custom Fields
POS Field

List of supported POS fields from which data can be pulled into the ERP custom fields (e.g., Available Date, Customer ID, ERP Select, etc.)

For descriptions of each supported field in CMS, please refer to "POS Fields" below.

ERP Field

ERP custom field name; can be found in your NetSuite account

Example: custqas_extern-alcustomerid

Applies To

List of ERP entity types to which custom fields are applied to

Example: Order, Order Item, Return, etc.

Error Settings
Number of Retries Maximum number of retries to attempt an ERP API request
Retry timeout in seconds ERP API retry timeout in seconds
ERP email list List of email addresses to be notified in the event of failed ERP API requests
POS Fields
POS Field Description
Available Date Date item/service is available
Last 4 Digits of Credit Card Last 4 digits of credit card
Credit Card Expiration Date Credit card expiry date
Custom Boolean Default Custom true/false field
Coupon Code Applied discount code
Contact Phone Number Phone number for delivery-related inquiries (e.g., when an order is delivered)
Customer Group Customer category/segment
Customer ID Unique customer identifier
Delivery Date Scheduled delivery date
Discount Amount Total discount on order
ERP Select ERP-related option
Financing Account Number Financing account number
Financing Amount Financed Total financed amount
Financing ID Expiration Financing ID expiry date
Financing ID State State issuing financing ID
Financing Instruction Special financing instructions
Financing Last 4 SSN Last 4 digits of SSN
Financing Order ID Financing order identifier
Financing Payment Type Code Financing payment type
Financing Primary Account Holder Primary financing account holder
Financing Verified Buyer Verified financing buyer
Is Exchange Order Indicates an exchange order
Item Discount Discount on an item
Item Discount Reason Codes Codes for item discount reasons
Item Notes Notes about the item
Item UPC Item's Universal Product Code
Layaway Indicates layaway purchase
Line Unique Key Unique line item identifier
Line Item Sale Associate ID Sales associate ID for item
Location Store/warehouse location
Logged In Associate ID Logged-in associate ID
Order Discount Reason Codes Codes for order discount reasons
Order ID Order identifier
Replacement Order Indicates replacement order
Payment Device Device for payment processing
Payment Device ID Payment device identifier
Pickup Date Scheduled pickup date
Promotion Code Applied promotional code
Route Stop

Delivery route stop number

Note: For app builds 10.2.1 or greater, when Point of Sale retrieves an order from NetSuite if this field in the order has a value, the system will prevent any edits to the deliverable items.

Ship Method ID Shipping method identifier
Store Credit Applied store credit amount
Serial Number Item's serial number
Tax Amount Total tax amount
Tax Exempt Card Number Tax-exempt card number
Tax Exempt Code Tax exemption reason code
Tax Exempt Customer Name Tax-exempt customer name
Tax Exempt Name Tax exemption name
Tax Exempt Notes Notes on tax exemption
Tax Exempt Rate Tax exemption rate
Tender Refund Amount Refunded tender amount
Total Assembled Total assembled items
Total Boxed Total boxed items
Total Credit Used Total credit used
Transaction ID Transaction identifier
Truck Number

Delivery truck number

Note: For app builds 10.2.1 or greater, when Point of Sale retrieves an order from NetSuite if this field in the order has a value, the system will prevent any edits to the deliverable items.

3. Save your changes. ## Advanced Search Settings Configuring the advanced search settings can help prevent timeouts during searches when retrieving quotes, orders, and customer data. To access these settings, enter the relevant saved search ID from your NetSuite account. Without a specific saved search ID, the system defaults to basic search functionality. Important: To enable this feature, the "Disable Default Search" flag must be turned off under [General Settings](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite.htm&release=264.0.0&type=5). - For quotes and orders, you must create a saved search sorted by the _LastModified Date_. This search should support sales orders, estimates, and invoices. - For customer searches, create a saved search sorted by _FirstName_ and _LastName_ to facilitate more efficient retrieval. ![An advanced search settings pane with two fields.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_advanced_search_settings.png) ## Configure Master of Record for Quotes Configure external ERP as the Master of Record for quotes. 1. In CMS, go to **Store Management** | **Store Settings** | **Advanced**. 2. Then enable Quote Master of Record is external ERP system and save. 3. Go back to CMS and go to **Apps** | **Store** | **{your app config}**. 4. Edit your selected app config and go to **Modules** | **POS.** 5. Enable Quote on Saved Cart. ![A menu displays saved cart quotes.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_quote_on_saved_cart.png) ## Configure Shipping Methods Configure shipping methods to display on the POS app and successfully post to NetSuite. Tip: You'll need to check your NetSuite environment to determine the available shipping methods. 1. In CMS, go to **Advanced** | **Shipping Methods**. 2. Configure the fields by referring to this article. ![A form lists shipping method details.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_shipping_method.png) ## Configure Stores Configure your stores in CMS to successfully post to NetSuite. 1. In CMS, navigate to Store Management > Stores. 2. For each store, enter these details. Fields denoted with an asterisk (\*) are required fields. Store Fields & Descriptions
Field NameDescription
ERP Configuration
Customer IDMerrchant NetSuite Guest Customer internal ID for store guest orders
Location ID*Merchant NetSuite store ID, value should match CustomString0
Secondary Location IDStore showroom reference ID of ERP configuration that is used for clearance items
Department IDMerchant NetSuite Department internal ID
Class IDMerchant NetSuite Class internal ID
Tax Item IDMerchant NetSuite Tax Item internal ID; used if POS sends tax amounts to NetSuite
Other Attributes
CustomString0Merchant NetSuite store ID, value should match Location ID. This value is automatically populated through Store Field Mappings. Please note, when uploading the Store Feed, regular text values are not permitted and will not be imported. Ensure that the relevant columns (store ERP, store type, etc.) are formatted in JSON. Refer to the attached file(s) for an example feed.
## Configure Associates In addition to setting up NetSuite ERP in the CMS, you must also configure store associates. Store associate records must include the corresponding NetSuite ID, as this is a required field for order posting. In NetSuite, these are referred to as "Employees". Additionally, ensure that the "Sales Rep" option is checked on the NetSuite side. 1. In CMS, navigate to **Store Management** | **Associates** | **Associates**. 2. Edit a store associate. 3. Go to **Advanced** | **Merchant User ID**. 4. Enter the NetSuite employee ID, which can be found in the NetSuite portal. ## Configure Server Settings Configure your server settings to set up webhook integration points for orders and returns. 1. In CMS, navigate to **Store Management** | **Store Settings** | **OMS** | **Order Export**. 2. Configure these fields: Server Settings Fields & Descriptions

Real-Time Order Export Endpoint

Webhook to invoke when a new order is placed. See example below:

{"integrationType":"HTTP_POST_JSON","url":"http://stage-v2.psconnector.com/service/v1/oms/orders","contentType":"application/json","headers":[{"name":"PredictSpring-Secret","value":"abuh2YYBGV3kXK8157ZNBLUioGKc4d/ sRvjZMhWKjaCb87t0ldFLUlADMKs+t7NPj/Nczm1y2vF+1EAlWplw=="}]}

Real-Time Returns Export Endpoint

Webhook to invoke when an order is returned. See example below:

{"integrationType":"HTTP_POST_JSON","url":"http://stage-v2.psconnector.com/service/v1/oms/orders/update","contentType":"application/json","headers":[{"name":"PredictSpring-Secret","value":"abuh22YYBGV3kXK8157ZNBLUioGKc4d/ sRvjZMhWKjaCb87t0ldFLUlADMKs+t7NPj/Nczm1y2vF+1EAlWplw=="}]}

Real-Time Order Update Endpoint

Webhook to invoke when an order is updated. See example below:

{"integrationType":"HTTP_POST_JSON","url":"http://stage-connector-v2.us-west-2.elasticbeanstalk.com/service/v1/oms/orders/update","contentType":"application/json","headers":[{"name":"PredictSpring-Secret","value":"abuh22YYBGV3kXK8157ZNBLUioGKc4d/ sRvjZMhWKjaCb87t0ldFLUlADMKs+t7NPj/Nczm1y2vF+1EAlWplw=="}]}
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Failed webhooks can be reposted in CMS by going to **Reporting and Analytics** | **Repost Failed Webhook Events**. ## Known Issues and Restrictions In cases where an address retrieved from the CRM is empty or incomplete, Point of Sale is unable to validate it, potentially resulting in orders being posted to NetSuite without a shipping address. It is highly recommended that merchants have their associates verify the address whenever they place an order from a customer profile. Additionally, it is recommended that the merchant maintain clean and accurate data in the CRM that aligns with Point of Sale's address fields and formatting. # Integrate OneSource (Sabrix) Facilitate tax calculations during sale transactions with OneSource (Sabrox) tax engine. Ensure that the OneSource engine handles all necessary tax computations. The process operates as follows: a real-time request is sent to OneSource with the cart details, and the corresponding VAT information is retrieved. For transactions occurring in offline mode, the necessary data is stored to enable offline processing. - Modern POS App Build: 6.5.4 or greater - Platform Support: iPad & iPhone - Offline Support: Yes, however, tier taxes and tax overrides are not supported offline. - Technical Prerequisites: - Merchants are responsible for configuring the tax rates directly into the OneSource system. - The Product Feed file should have mapping for the tax class for each product. Refer to changes needed in the [Product Field Mapping](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5) . - Merchants are to provide the supported tax exemptions (exempt code and exempt name). Refer to [step 5](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5) from [Onboarding Merchant for OneSource Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5) - Configure the tax engine through CMS as mentioned in [Set Up Tax Engine](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5) - Special Fee Support: Refer to [Special Fees](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_special_fees.htm&release=264.0.0&type=5 "The POS app can support special fees that are levied only in certain stores based on the location of the store. These fees can include public improvement or franchise fees,") to know more about prerequisites needed for fees. **Supported Tax Functionality** These tax-related functions are supported by the POS if it is powered by the OneSource tax engine: - Calculate taxes and fees: Refer to [Special Fees](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_special_fees.htm&release=264.0.0&type=5 "The POS app can support special fees that are levied only in certain stores based on the location of the store. These fees can include public improvement or franchise fees,") to learn more about fees - Tax exemption - Tax override: If overridden, tax rates (for example tax holidays), are configured in OneSource - Tier taxes: If Tier taxes are configured in OneSource - Tax exemption during offline ## Set Up Tax Engine The integration screen from CMS allows setting up the OneSource within the Point of Sale system. 1. In CMS, go to **Integrations** | **Tax Engine Configurations**. 2. Click **Create**. 3. Under **General Settings**, provide these details: 1. Tax Engine: Select "**Sabrix**". 2. Environment: Select the environment (Testing or Production). 3. Currency: Select the currency code (for example, USD). 4. Under **Connectivity and Authentication**, provide these details: 1. **Base URL**: Input the OneSource WSDL URL, e.g., `https://kpmg-uat.hostedtax.thomsonreuters.com/sabrix/services/taxcalculationservice/2011-09-01/taxcalculationservice`. 2. **Merchant Gateway ID**: Provide OneSource's tax calculation service username. 3. **Merchant Key**: Provide OneSource's tax calculation service's password. 4. **Merchant Reference Code**: Provide the external company ID. 5. Under **Shipping Tax Configuration**, configure custom shipping costs and the default shipping cost. 6. Under **Advanced**, configure the values for CallingSystemNumber and HostSystemNumber if required for tax calculations. The specified values will be included in all tax requests. If a value is saved, it's sent with each request. If no value is provided, the field is omitted. ![A settings page shows general settings, contextual links, and authentication settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_onesource_engine_set_up.png) ## Schedule Tax Rate File Download As taxes are computed directly by OneSource, the tax feed isn't necessary for online processing. However, to calculate the taxes during the offline mode, the tax feed needs to be downloaded directly from OneSource. To download the tax rate file from OneSource, schedule a download job in CMS as mentioned below: ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note As a prerequisite, the tax engine should be configured for OneSource per [Set Up Tax Engine](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5). 1. In CMS, go to **Feeds** | **Scheduled Upload**. 2. Click **+** to create a job and select **Tax Rates**. 3. Under **Feed Source Type**, select "**Sabrix**". 4. Configure the rest of the required fields. ![A settings menu to schedule a feed import.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_onesource_tax_download.png) 5. Save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note No need to provide a separate feed file for tax rate. ## Ad Hoc Tax Rate File Download As mentioned in the earlier section, the tax feed is important for tax calculation during offline mode and it can also be downloaded as and when needed along with the above option of scheduled download. To download the tax rate file from OneSource into Point of Sale, the 'Import Now' option from the scheduled job can be used as below: 1. In CMS, go to **Feeds** | **Scheduled Upload**. 2. Edit the previously configured Tax Rate job. 3. Click **Import Now**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If the job is not scheduled, schedule it per the instruction in [Schedule Tax Rate File Download](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5), and then use Import Now. ## Product Field Mapping To support tax calculation in offline mode, the following product feed attribute mapping is needed to add tax type dynamically while setting up the field mapping for product feed. 1. In CMS, go to **Feeds** | **Field Mapping** | **Products.** 2. Using [Field Transformation](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5 "The raw columns or attributes inside the feed file are transformed and mapped onto fields that the Point of Sale backend understands."), map the SKU / Product ID field from the product feed file to CustomString12. CustomString12 is the Point of Sale attribute for the product-level tax class used by the POS app during offline mode. ![A diagram shows source fields mapped to target fields.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_onesource_product_field_mapping.png)![A form displays field transformation from SKU to custom string.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_onesource_product_field_transformation.png) ## Commit Tax Transaction The POS allows committing the tax transaction conditionally in OneSource after-sale transactions. The conditional commit allows merchants to complete the tax transaction after the invoicing is done on the sale transaction. By default, the POS doesn't commit the tax transaction but lets the merchant commit it. But to enable the auto-commit after completing the sale transaction in the POS app, the following CMS config needs to be set: 1. In CMS, go to **Store Management** | **Store Settings** | **Modules** | **Tax**. 2. Turn on **Submit/Finalize Tax Details After Order Submission**. 3. Save your changes. ## Onboarding Merchant for OneSource Integration 1. Merchants are to provide the OneSource details per the [Technical Prerequisites](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5). 2. Point of Sale's integration with OneSource is SOAP-based. 3. For offline transactions, Point of Sale supports the tax rate file download from OneSource. Point of Sale uses CalculateTax SOAP API to obtain the taxes for all stores and tax classes from respective stores. The same API determines the tax exemption rates for all stores and tax classes. 4. Product feed changes for OneSource integration. The CMS configurations listed under [Product Field Mapping](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5) are required for proper tax computation during offline transactions. 5. Merchants are to provide the supported tax exemptions (exempt code and exempt name) to configure in the system. The job, mentioned in Step #3, that downloads the tax exemption data directly from OneSource, needs this list of supported tax exemptions for the first time run. ## Online vs Offline ### Online In online mode, the process begins with items being added to the cart. Subsequently, detailed cart data, including product IDs, tax codes, and quantities, are sent to OneSource for tax computation. OneSource then calculates and returns the VAT amounts based on the provided data. Following the VAT computation, the transaction moves to the tendering phase where payment is processed. The process concludes with the completion of the order, during which the Transaction Log (tLog) and Electronic Journal (EJ) record the total order amount and the VAT component. ### Offline In the offline mode, the POS system autonomously downloads the tax data from OneSource. This data is then leveraged to accurately compute the VAT amounts for orders processed without an active internet connection. ## Known Issues and Restrictions These features aren't supported as part of OneSource integration and hence, merchants that use OneSource can't use them. - Tier taxes in offline mode: OneSource has a limitation where it does not provide the tier tax rates for offline calculation. - Tax override in offline mode. # Integrate Order Management with B2C Commerce Set up a connection between B2C Commerce and the Salesforce org where Order Management is configured. This connection lets Order Management receive orders from B2C Commerce. The provided integration imports order data from B2C Commerce and creates records in Salesforce, but doesn’t do any other processing. For example, if you import orders from another source, you’re responsible for checking for duplicate data. If you don’t use Salesforce Omnichannel Inventory, you can integrate Order Management with multiple instances of B2C Commerce. However, if you use Omnichannel Inventory, Order Management, and B2C Commerce together, your Order Management org can integrate with only one instance of B2C Commerce. The B2C Integration service user is an internal Salesforce user. If you set internal organization-wide sharing defaults for an object that needs to be accessible to the integration, set the defaults to Public Read/ Write access. - **[Configure Field-Level Security](https://help.salesforce.com/s/articleView?id=commerce.om_impl_field_level_security.htm&release=264.0.0&type=5)** Give the System Administrator profile permissions to access specific fields on order-related objects. These permissions allow users to access Order Management functionality. - **[Configure Custom Field Permissions](https://help.salesforce.com/s/articleView?id=commerce.om_impl_custom_fields.htm&release=264.0.0&type=5)** When you add a custom field to an object for use in Order Management, Order Management users need access to that custom field. Update each permission set that includes the custom field. - **[Enable Admin Settings for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_admin_settings_b2ce.htm&release=264.0.0&type=5)** Order Management requires specific admin settings. - **[Connect B2C Commerce and Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_self_provision.htm&release=264.0.0&type=5)** Set up a connection between B2C Commerce and the Salesforce org where Order Management is configured. This connection enables Order Management to receive orders from B2C Commerce and get product and pricing data for creating and updating orders. - **[Update a B2C Permission Set After Adding a Custom Field](https://help.salesforce.com/s/articleView?id=commerce.om_impl_update_perms_for_cust_field.htm&release=264.0.0&type=5)** The Order Management B2C Service permission set provides access to Salesforce records. When you add a custom field to a Salesforce object, update the permission set by adding read and edit access to the new field. You also must add edit access to the permission set that provides access for your Order Management users. - **[Give Access to Person Accounts](https://help.salesforce.com/s/articleView?id=commerce.om_impl_verify_person_accts_b2ce.htm&release=264.0.0&type=5)** If you’re using Person Accounts to represent shoppers, give access to the appropriate permission sets to access Person Accounts. - **[Enable Order Management for B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_impl_enable_integration.htm&release=264.0.0&type=5)** When you’re ready to send order data from B2C Commerce to Order Management, use Business Manager to enable the integration. - **[Monitor Order Management Integration Rejections](https://help.salesforce.com/s/articleView?id=commerce.om_monitor_om_b2c_integration_rejections.htm&release=264.0.0&type=5)** Detect and troubleshoot your Order Management integration failures by setting up a Log Center alert. When Order Management rejects an order after accepting it for asynchronous processing, B2C Commerce writes a warning entry to Log Center. Use these logs to monitor and troubleshoot order-integration failures. - **[Create an API Client for Order Management (Optional)](https://help.salesforce.com/s/articleView?id=commerce.om_impl_api_client_b2ce.htm&release=264.0.0&type=5)** To help troubleshoot and gather metrics, create a dedicated API client ID for your Order Management integration with B2C Commerce. The API client helps you identify actions associated with the client ID. You can also use an existing API client and share it with other functions. - **[Use Matching Rules for Shopper Account Identification](https://help.salesforce.com/s/articleView?id=commerce.om_impl_config_shopper_acct.htm&release=264.0.0&type=5)** Order Management identifies an existing shopper by matching the shopper’s name or email address to an existing Account, Contact, or Person Account record. However, you can configure Order Management to use your org’s duplicate and matching rules instead when looking for existing shoppers. - **[Add a Sales Channel to Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_sales_channels.htm&release=264.0.0&type=5)** Create Sales Channel records to represent the sales channels that provide orders to your org. - **[State and Country Codes](https://help.salesforce.com/s/articleView?id=commerce.om_impl_store_country_codes.htm&release=264.0.0&type=5)** The values that you use in your store order data must match in Order Management. The values that you can use depend on whether you enable state and country/territory picklists in Salesforce. - **[Custom B2C Commerce Storefront Data Integration](https://help.salesforce.com/s/articleView?id=commerce.om_impl_int_custom_b2ce_data.htm&release=264.0.0&type=5)** You can pass custom data on certain B2C Commerce objects to Order Management by adding custom attributes to objects in B2C Commerce and matching custom fields to the corresponding objects in Order Management. When an attribute ID and field name match, and the data types also match, the values are included in the created Order Management records. If you also create a matching field on the corresponding summary object, Order Management includes the custom data when it creates a summary record. - **[Product Bundle Associations](https://help.salesforce.com/s/articleView?id=commerce.om_impl_prod_bundles.htm&release=264.0.0&type=5)** Order Management doesn’t support custom attributes on B2C product options. To use product bundles, you can pass the information as custom data. - **[Order Management Web Store Records for B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.om_impl_webstores.htm&release=264.0.0&type=5)** Both the Even Exchange and the Order on Behalf Of flows require users to select a web store record that represents their B2C Commerce storefront. Order Management creates the required web store records for you. These system-generated web store records set the LocationType to Virtual. If you want to control the location or change other fields, you can create your own web store records. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Integrate Salesforce Commerce Cloud with Facebook and Instagram Shops. Synchronize products, promotions, shipping profiles, and orders between Meta and Salesforce so shoppers can get targeted shop ads, buy products, and get accurate order status updates. #### See Also - [Facebook and Instagram Shop Ads Integration](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-third-party.html#facebook-and-instagram-shop-ads-integration) # Integrate Salesforce Payments into SFRA for a Seamless Checkout Experience Streamline the checkout experience for shoppers with a native Salesforce Payments cartridge that supports multiple payment methods and third-party payment gateways. This integration reduces the complexity and cost of implementing payments and provides developers with extensive customization options. **Where:** This change is compatible with SFRA v7.0 and later for B2C Commerce. **How:** To install the `plugin_salesforcepayments` cartridge, see [Install the Salesforce Payments Plug-In for a B2C Commerce SFRA Site](https://help.salesforce.com/s/articleView?id=cc.b2c_install_salesforce_payment_plugin.htm&type=5&language=en_US). # Integrate Tax Engines To calculate taxes, apply exemptions, and support tax overrides during checkout, configure a tax engine in the Point of Sale CMS. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important As of 2025, Salesforce discontinued the Native Tax Engine. Originally designed as a backup tax solution and not a primary tax engine, the Native Tax Engine no longer receives technical updates or maintenance for new or existing customers. If you're still using the Native Tax Engine, migrate to an alternative solution immediately to avoid interruption to business operations. - Pre-built integrations: Point of Sale includes native connectors that support [Avalara](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_avalara.htm&release=264.0.0&type=5 "Automate tax calculations and tax filing by using Avalara in Point of Sale."), [OneSource (Sabrix)](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5 "Facilitate tax calculations during sale transactions with OneSource (Sabrox) tax engine. Ensure that the OneSource engine handles all necessary tax computations. The process operates as follows: a real-time request is sent to OneSource with the cart details, and the corresponding VAT information is retrieved. For transactions occurring in offline mode, the necessary data is stored to enable offline processing."), and [Vertex](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex.htm&release=264.0.0&type=5 "Integrate Point of Sale with the Vertex tax engine to facilitate tax calculations during sale transactions. Confirm that the Vertex engine handles all necessary tax computations."). - Custom solutions: For any other third-party tax provider, a [service provider interface (SPI)](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_spi.htm&language=en_US) is available to facilitate your integration. 1. In the Point of Sale CMS, go to **Integrations** | **Tax Engine Configuration**. 2. Create or edit a configuration. 3. Complete the fields by referring to the table.
Field Description
Settings
Tax Engine Tax engine type for calculations. Example: Point of Sale Basic - Flat 8.5% tax
Environment Account environment for tax calculations. Example: Testing, Staging
Base URL

API endpoint for external tax engines. Examples:

  • Avalara: https://sandbox-rest.avatax.com/api/v2/
  • OneSource WSDL: https://kpmg-uat.hostedtax.thomsonreuters.com/sa-brix/services/taxcalculationservice/2011-09-01/taxcalculationservice
Currency Currency code for tax calculations. Example: US dollar (USD)
Shipping Tax Configuration
Shipping Class Configuration

Tax class type for shipping methods. Select from three options:

  • Default — Apply a single tax class to all shipping methods
  • Custom — Configure a unique tax class for each shipping method
  • None — Exclude shipping from tax calculations.
Note
Note For Avalara integration, the system assigns the default Avalara shipping tax class (FR020100) to shipping methods before sending them to Avalara, regardless of your selection.
Default Shipping Tax Class Tax class for shipping costs. Example: FR020100
Merchants
Merchant Gateway ID Account identifier for external tax engines.
Merchant Key Authentication credential for external tax engines.
Merchant Reference Code Company identifier for external tax engines. Acts as the global fallback for stores without a value in Store Tax Field Name. This field is case-sensitive.
Store Tax Field Name Store record field that contains the reference code for tax calculations. Assign store-specific tax profiles by region or brand. Stores without a value fallback to the global Merchant Reference Code.
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip For more information about setting up each tax engine, see [Tax Engine Setup articles](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax.htm&release=264.0.0&type=5 "Integrate Point of Sale with third-party tax solutions such as Vertex, OneSource (Sabrix), Native Tax Engine, and Avalara. Tax integrations help ensure accurate tax calculations and compliance within your retail operations. By connecting Point of Sale with a tax service, you can automate tax determination, calculation, and reporting. This automation reduces errors, saves time, and helps businesses stay compliant with changing tax regulations."). The Setup Tax Engine section in each article lists all the necessary details. ## Tax Functionality The POS app uses a tax engine to provide this tax functionality. This section also lists tax engine details for each function, including when the system calls and how many times the system can call. - Calculate taxes and fees: POS makes multiple calls to the tax engine during checkout for these cart operations. For more information about fees, see [Special Fees](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_special_fees.htm&release=264.0.0&type=5 "The POS app can support special fees that are levied only in certain stores based on the location of the store. These fees can include public improvement or franchise fees,"): - Add items to the cart. - Remove items from the cart. - Modify the quantity of an item from the cart. - Apply or change the shipping method. - Apply or change the shipping address. - Apply or remove any promotional coupons or manual price overrides. For example, item-level price overrides or cart-level transaction discounts. - Calculate taxes based on tiered tax rates: Similar to the calculate taxes and fees functionality. The difference is how you configure tax rates in the underlying tax engine, as the tax rates have multiple tiers. For more information, see [Tiered Taxes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_tax_tiers.htm&release=264.0.0&type=5 "POS App can support tiered taxes for different class of products both in online and offline mode"). - Provide tax exemption: A single tax exemption calls for a selected tax exemption code. For more information, see [Tax Exemption](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_tax_exemption.htm&release=264.0.0&type=5 "Merchants can apply tax breaks to customer carts during checkout when valid proof is provided. This ensures customers receive the appropriate tax exemptions, while merchants can efficiently manage exemptions through the CMS, even in offline mode."). - Apply tax override: A single tax override calls the tax engine for a store. Multiple tax overrides call the tax engine for individual items from a cart. - Calculate taxes and fees in offline mode: No tax engine call. The system calculates taxes using rates from the last online login. - Calculate taxes based on tiered tax rates in offline mode: Same as the Calculate taxes and fees in offline mode functionality. - Provide tax exemption in offline mode: No tax engine call. The system applies a tax exemption using codes from the last online login. - Apply item-level tax override in offline mode: No tax engine call. The tax override applied to the selected item. - Calculate taxes and fees for returns: No tax engine call. The system uses the saved taxes from the original sale transaction instead of recalculating them during the return process. For more information about how taxes, tax exemptions, and tax overrides appear in POS after the underlying tax engine call, see [POS App Taxes Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_tax_configure.htm&release=264.0.0&type=5 "Store managers can show and override taxes as needed, ensuring compliance with recent tax changes and special promotions. Customers can efficiently manage tax rates and exemptions with manager approval for overrides, and customize tax visibility and breakdowns in the Retail Cloud POS app."). ## Tax Engines POS supports these tax engines: - PredictSpring Tax Engine: See [Native Tax Engine Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_native.htm&release=264.0.0&type=5 "Onboard a merchant for integrating with Point of Sale's inbuilt tax engine - the native tax engine. By default, POS supports the native tax engine.") (not supported for new customers as of 2024; use one of the other supported tax engines) - AvaTax by Avalara: See [Avalara Tax Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_avalara.htm&release=264.0.0&type=5 "Automate tax calculations and tax filing by using Avalara in Point of Sale.") - Onesource (Sabrix) by KPMG: See [Onesource (Sabrix) Tax Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5 "Facilitate tax calculations during sale transactions with OneSource (Sabrox) tax engine. Ensure that the OneSource engine handles all necessary tax computations. The process operates as follows: a real-time request is sent to OneSource with the cart details, and the corresponding VAT information is retrieved. For transactions occurring in offline mode, the necessary data is stored to enable offline processing.") - SPI: See [SPI Tax Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_spi.htm&language=en_US) ## Tax Engines Feature Matrix The table shows the Point of Sale service matrix for tax-related features across all supported tax engines. | Tax Feature | Native Tax Engine | AvaTax | OneSource | SPI | | --- | --- | --- | --- | --- | | ONLINE | | | | | | Sales Tax - InStore | Supported | Supported | Supported | Supported | | Sales Tax - Endless Aisle | Supported | Supported | Supported | Supported | | Sales Tax - BISPIS | Supported | Supported | Supported | Supported | | Sales Tax - Confirmation | Supported | Supported | Not supported | Supported | | Fee | Supported | Supported | Supported | Supported | | Tax Override | Supported | Not applicable | Not applicable | Not applicable | | Tax-Exempt - Load exempt categories | Supported | Supported | Supported | Supported | | Tax-Exempt - Post exemption details | Supported | Supported | Supported | Supported | | Tiered Taxation | Supported | Supported | Supported | Supported | | OFFLINE | | | | | | Sales Tax - InStore | Supported | Supported | Supported | Supported | | Sales Tax - BISPIS | Supported | Supported | Supported | Supported | | Fee | Supported | Not supported | Supported | Not supported | | Tax Override | Supported | Not applicable | Not applicable | Not applicable | | Tax-Exempt - Load exempt categories | Supported | Not applicable | Supported | Not applicable | | Tax-Exempt - Post exemption details | Supported | Not applicable | Supported | Not applicable | | Tiered Taxation | Supported | Supported | Not applicable | Supported | For the native tax engine, Point of Sale uses standard tax classes based on the destination address. You can skip shipping tax configuration. External tax engines, for example, Avalara, have multiple tax classes for shipments, and one is always the default. ![A settings screen displays options for shipping class configuration.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_overview_shipping_tax.png) For example, Avalara's Tax Class FR020100 is the default for shipping products. To use a different tax class, select **Custom** and provide the new tax class. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip For a list of tax classes supported by Avalara for shipment, see [Avalara Freight](https://taxcode.avatax.avalara.com/search?category=Freight). ## Product Field Mapping Point of Sale Product Feed has 13 custom attributes. These attributes are named CustomString0, CustomString1,..., CustomString10, CustomString12. Point of Sale receives the tax class through the feed file by using any of these custom attributes. Configure the selected custom attribute in CMS at **Store Management** | **Store Setting** | **MODULES** | **Checkout** | **tax.field**). Enter the attribute name in camelCase. For example, if you selected CustomString12, enter customString12. This configuration tells Point of Sale which custom attribute to use for the tax class. After configuring the custom attribute, use the same attribute in product feed mapping. Product field mapping specifies the mapping between feed file attributes and Point of Sale system product attributes. Configure the mapping in CMS (**Feeds** | **Field Mapping** | **Products**. Configure the field mapping for tax class for one of these scenarios: 1. Product-specific tax rates: If the tax rates are product-specific, each product from the feed file has its corresponding tax class. Example: The product feed file has a taxClass column that maps to CustomString12, the selected custom attribute for tax. ![A matrix maps different source fields to target fields.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_overview_product_specific_tax_rates.png) 2. Uniform tax rate across all products: All products have the same tax rate, so don’t provide a tax class in the product feed. Point of Sale derives it automatically through field transformation and field mapping. Map the SKU or Product ID field to the tax class's custom attribute—in this case, CustomString12. ![A chart shows source fields mapped to target fields.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_overview_product_uniform_tax_rates.png) Use [Field Transformation](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5 "The raw columns or attributes inside the feed file are transformed and mapped onto fields that the Point of Sale backend understands."), available on the connecting line between SKU and CustomString12, to specify the tax class. In this example, GENERIC is the tax class, which also appears in the tax feed file with its tax rate. ![A form outlines field transformation settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_tax_overview_product_uniform_tax_rates_field_trans.png) This configuration automatically maps all products to tax class GENERIC, without requiring a tax class column in the product feed. ## Troubleshooting - Make sure that the Merchant Reference Code matches the Company Code in Avalara's portal, including capitalization. An exact match prevents upload and download errors. ## Known Issues and Restrictions - Point of Sale doesn't support multiple tax engines within the same country. You can configure different tax engines for different countries. For example, merchants can use Avalara for tax management in the US and Point of Sale for the UK. ## Frequently Asked Questions **If I don't have a tax platform but my minimum viable product (MVP) operates on a cash-and-carry basis, what do I do?** Use this approach if you can export tax tables in the required format and are willing to waive liability for tax rate discrepancies. Contact Salesforce Customer Support for more information. # Integrate the Native Tax Engine Onboard a merchant for integrating with Point of Sale's inbuilt tax engine - the native tax engine. By default, POS supports the native tax engine. - Modern POS App Build: 5.x.x or above - Platform Support: iPhone - Offline Support: Yes - Technical Prerequisites - Merchants are responsible for providing the product feed having mapping for tax class for each product. Refer to [Product Field Mapping](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_native.htm&release=264.0.0&type=5 "Onboard a merchant for integrating with Point of Sale's inbuilt tax engine - the native tax engine. By default, POS supports the native tax engine.") to learn more about changes needed in product field mapping specific to tax functionality. - Merchants are responsible for providing the tax rate feed. Refer to [Tax Rate Feed Specification and Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_tax_rates.htm&release=264.0.0&type=5 "Point of Sale has the capability of calculating taxes via its tax engine. This tax engine relies on a tax feed that provides information about various taxes and rates that are applicable to products in different locations. If required, the tax engine can also compute the value-added tax (VAT) components out of a product price that already has VAT built into it for print and reporting purposes.") ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important As of 2025, support for the Native Tax Engine has been discontinued. Originally designed as a back-up tax solution and not a primary tax engine, the Native Tax Engine is no longer supported with technical updates or maintenance for any new or existing customers. To ensure uninterrupted business operations, all customers still using the Native Tax Engine must migrate to an alternative solution immediately. - Pre-built Integrations: Point of Sale includes native connectors to seamlessly support [Avalara](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_avalara.htm&release=264.0.0&type=5 "Automate tax calculations and tax filing by using Avalara in Point of Sale.") , [OneSource (Sabrix)](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5 "Facilitate tax calculations during sale transactions with OneSource (Sabrox) tax engine. Ensure that the OneSource engine handles all necessary tax computations. The process operates as follows: a real-time request is sent to OneSource with the cart details, and the corresponding VAT information is retrieved. For transactions occurring in offline mode, the necessary data is stored to enable offline processing."), and [Vertex](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex.htm&release=264.0.0&type=5 "Integrate Point of Sale with the Vertex tax engine to facilitate tax calculations during sale transactions. Confirm that the Vertex engine handles all necessary tax computations."). - Custom Solutions: For any other third-party tax provider, an [SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_spi.htm&language=en_US) is available to facilitate your integration. ## Set Up the Tax Engine 1. Integration screen from CMS allows setting up the native tax engine. 2. Integration screen: **CMS > Integrations > Tax Engine Configurations** 3. Provide these details to set up the native tax engine 1. Tax Engine: Native 2. Merchants in the Portugal Region can only select Native as their tax engine. 3. Environment: Testing or Production. 4. Currency: Currency Code. for example. USD. ## Schedule Tax Rate File Upload Per the specification mentioned in [Tax Rate Feed Specification and Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_tax_rates.htm&release=264.0.0&type=5 "Point of Sale has the capability of calculating taxes via its tax engine. This tax engine relies on a tax feed that provides information about various taxes and rates that are applicable to products in different locations. If required, the tax engine can also compute the value-added tax (VAT) components out of a product price that already has VAT built into it for print and reporting purposes."), you can upload the tax rate feed manually or schedule an upload. From these CMS screens, you can upload the tax rate feed. 1. One time manual upload: **Feeds > Manual Upload > Store > Tax Rates** 2. Scheduled upload: **Feeds > Scheduled Upload > Tax Rates (SFTP)** ## Product Field Mapping - Point of Sale Product Feed has 13 custom attributes. They are named CustomString0, CustomString1,..., CustomString10, CustomString12. - You can use one of these custom attributes to receive tax class in the Point of Sale system through the feed file. - The custom attribute that is selected for tax class then needs to be configured in CMS's Store Setting - (**CMS > Store Management > Store Setting > MODULES> Checkout > tax.field**) For exxample, if CustomString12 is selected for taxClass, then configure it under this store setting. Make sure to provide it as customString12, because it's case-sensitive. With this configuration Point of Sale system knows that which custom attribute is being used for tax class purposes. - Once the custom attribute is finalized, use the same in product feed mapping. Product field mapping specifies the mapping between feed file attributes and Point of Sale system product attributes. The mapping is configured in CMS under the field mapping section **CMS > Feeds > Field Mapping > Products**. The field mapping for tax class needs to be configured for either of the below scenarios 1. Product-specific tax rates: 2. If the tax rates are product specific then each product from the feed file will have its corresponding tax class. 3. For example, the Product feed file has column taxClass which needs to map to CustomString12 which is the selected custom attribute for tax. 4. Uniform tax rate across all products: - As all the products have the same tax rate so no need to provide tax class in the product feed. We can derive it automatically using field transformation and field mapping as below. 1. Map the SKU / Product id field to tax class's custom attribute. In this case CustomString12. 2. Using [Field Transformation](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5 "The raw columns or attributes inside the feed file are transformed and mapped onto fields that the Point of Sale backend understands."), which is available on the connecting line between SKU and CustomString12 specify the tax class. In this example, GENERIC is tax class and assumed that the same tax class would be provided in the tax feed file with its tax rate. 3. The above configuration automatically maps all the products to tax class GENERIC without even providing the tax class column in the product feed. ## POS Behavior Refer to [POS Tax](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_tax_configure.htm&release=264.0.0&type=5 "Store managers can show and override taxes as needed, ensuring compliance with recent tax changes and special promotions. Customers can efficiently manage tax rates and exemptions with manager approval for overrides, and customize tax visibility and breakdowns in the Retail Cloud POS app.") to learn more about how the taxes, tax exemption, or tax overrides are shown in Point of Sale POS after making the underlying tax engine call. ### Supported Tax Functionality The native tax engine supports all the tax functionality. # Integrate Vertex Integrate Point of Sale with the Vertex tax engine to facilitate tax calculations during sale transactions. Confirm that the Vertex engine handles all necessary tax computations. ## Requirements - Modern POS App Build: 10.2.1 or greater - Platform Support: iPad & iPhone - Offline Support: Yes - Technical: - Vertex account with tax rates already configured. - Product Feed file with a column for [Vertex Tax Code](https://tax-calc-api.vertexcloud.com/api/docs/index.html#section/Authentication). ## Set Up Vertex To begin using Vertex for tax calculations, first [set up Vertex](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_setup.htm&release=264.0.0&type=5 "Configure your taxpayer entity, product classes, and category mappings in the Vertex portal before connecting Vertex to Point of Sale.") in the Vertex portal, then [set up the tax engine](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_cms_setup.htm&release=264.0.0&type=5 "Connect Vertex to Point of Sale by configuring the tax engine in CMS.") in CMS to connect Vertex to Point of Sale. For further details or assistance with the setup process, reach out to a Vertex representative. ## Supported Tax Functionality The following tax-related functionality is supported by the POS if it is powered by the Vertex tax engine: - Calculate taxes and fees: Refer to [Special Fees](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_special_fees.htm&release=264.0.0&type=5 "The POS app can support special fees that are levied only in certain stores based on the location of the store. These fees can include public improvement or franchise fees,") to know more on fees. - Tax override: If overridden tax rates, for example, tax holidays, are configured in Vertex. - Tax exemption: Refer to [Set Up Tax Exemption](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_tax_exemption.htm&release=264.0.0&type=5 "Configure tax exemption for Point of Sale, including partial tax exemption and fees, both supported in online mode. Offline mode uses previously downloaded tax rates.") to configure tax-exempt codes for customers and products. ## Unsupported Tax Functionality The following tax-related functionality are not supported by the POS if it is powered by the Vertex tax engine: - Point of Sale doesn't handle threshold-based taxes (for example, changes in tax percentage based on the order total for a shipping order to a Florida address). Merchants must configure this in Vertex. Point of Sale sends the cart and tax group to Vertex, which calculates the tax accordingly. - Advanced tax capabilities in Vertex aren't currently supported. For example, Point of Sale doesn't support Public Improvement Fees (PIFs). - **[Set Up Vertex for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_setup.htm&release=264.0.0&type=5)** Configure your taxpayer entity, product classes, and category mappings in the Vertex portal before connecting Vertex to Point of Sale. - **[Set Up the Vertex Tax Engine for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_cms_setup.htm&release=264.0.0&type=5)** Connect Vertex to Point of Sale by configuring the tax engine in CMS. - **[Supported Vertex Endpoints for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_endpoints.htm&release=264.0.0&type=5)** Point of Sale calls these Vertex endpoints during tax engine setup verification and during checkout tax calculation. - **[Point of Sale Vertex API Field Mapping](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_api_field_mapping.htm&release=264.0.0&type=5)** Map Point of Sale's fields to Vertex's API request fields. - **[Configure Vertex Product Field Mapping for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_product_field_mapping.htm&release=264.0.0&type=5)** Map the tax class attribute from your product feed to a custom field so Point of Sale can calculate taxes correctly in offline mode. - **[Schedule the Vertex Tax Rate File Download for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_tax_file_download.htm&release=264.0.0&type=5)** Download the Vertex tax rate file manually or on a schedule so Point of Sale can calculate taxes while offline. - **[Set Up Vertex Tax Exemption for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_tax_exemption.htm&release=264.0.0&type=5)** Configure tax exemption for Point of Sale, including partial tax exemption and fees, both supported in online mode. Offline mode uses previously downloaded tax rates. - **[Point of Sale Vertex Mixed Cart Order Examples](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_mixed_cart_example.htm&release=264.0.0&type=5)** Review sample Vertex requests and responses for a mixed cart order that combines an in-store item with a ship-to-home item. - **[Point of Sale Vertex Common Questions](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_faq.htm&release=264.0.0&type=5)** Find answers to common questions about tax rates, offline fees, tiered taxes, promotions, and token refresh behavior for the Vertex integration. # Integrate WineDirect Point of Sale supports WineDirect's clienteling service. Get details of the configuration set up required in the CMS and the WineDirect services supported by Point of Sale. 1. In the CMS, go to **Advanced** | **Merchant Configuration**. 2. Configure WineDirect' credentials. SiteHost: https://webservices.vin65.com/ AdminUser: WineDirect Username AdminPassword: WineDirect Password 3. Configure AccountData Service and Account Service as WineDirectAccountDataService and WineDirectAccountService ## WineDirect Services These WineDirect services are supported by Point of Sale to get customer profile and order details: 1. ContactService: This service is used to search customers, create customers, update customers, and get customer profiles and addresses. Supported fields are mentioned below. It is two way for Contact Service: - Point of Sale speaks to WineDirect to get the existing customer's details on customer search. Point of Sale does not update or save data in the Point of Sale backend. - Point of Sale sends the details of a customer to WineDirect if a customer is created/updated on the Point of Sale side. This action happens in real-time. 2. ClubMembershipService: This service is used to get the club or loyalty details of customers, that is Club MembershipId, ClubName, and ClubId. Point of Sale does not create or update customer loyalty profiles in the WineDirect' system 3. OrderService: Point of Sale uses WineDirect Order service to get the customer order history and order details only. Point of Sale backend considers WineDirect as the only resource of orders. Point of Sale does not send any order details to WineDirect. This service is specifically for the clienteling. This service is not used for merchant order history. Documentation:[https://documentation.vin65.com/Webservices/Webservices-v3](https://documentation.vin65.com/Webservices/Webservices-v3) ### Clienteling Customer Search/LookUp: Customer can be searched with FirstName, LastName, and Email. Customer details can be retrieved by passing CustomerId (WineDirect ContactID). Customer Registration: On customer signup, Point of Sale creates the customer in WineDirect with these details: - FirstName - LastName - Phone (HomePhone) - Email Edit Customer (Upsert): On update customer request, Point of Sale is updating these fields in WineDirect: - FirstName - LastName - Phone(HomePhone) - Email (EmailId should remain same, else WineDirect will create new contact) Customer 360 View with Supported Fields - Profile: FirstName, LastName, ContactID (Point of Sale CustomerId), CustomerNumber (Retail Cloud Alternate CustomerId), Title, Phone, Email, CompanyName, BirthDate - Address: FirstName, LastName, Address1, Address2, City, StateCode, CountryCode, ZipCode - Loyalty: Club MembershipId, ClubName, ClubId - Order History: OrderNumber (Point of Sale OrderId), OrderId (External OrderId), OrderStatus, CreationDate, OrderDate, Total, Tax, SubTotal, Shipping, ProductItems, ShippingService, ShippingType, ShippingAddress, BillingAddress, Email, PhoneNumber, Notes, PaymentType - OrderCount: Number of existing WineDirect' orders. It does not include Point of Sale orders count. Not supported: 1. Customer Notes 2. Point of Sale orders in order count and customer order history (Customer 360 view) # Integrate with ERP Systems Integrate Point of Sale with various ERP systems to streamline operations and enhance data flow. Connecting Point of Sale with ERP systems such as NetSuite and SAP ensures seamless data exchange between your retail operations and back-end systems. This integration simplifies address verification and order management, and improves overall efficiency. With complete integration, you can automate processes, reduce errors, and gain a unified view of your business. - **[Configure SCAPI ERP Integration in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_scapi.htm&release=264.0.0&type=5)** Integrate B2C Commerce with Point of Sale using SCAPI to enable customer data synchronization and unified commerce capabilities. Configure the ERP connection in the Point of Sale CMS with your B2C Commerce SCAPI credentials. - **[Address Verification and Complete Integrations](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_addresses.htm&release=264.0.0&type=5)** Point of Sale supports address verification and address completion through integrations with technology partners. Use partner integrations to ensure accurate address information. - **[Afterpay Salesforce Commerce Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_afterpay.htm&release=264.0.0&type=5)** Integrate Afterpay with Salesforce Commerce to offer customers a flexible payment option. By integrating Afterpay, retailers can provide a buy now, pay later option. This payment flexibility can lead to increased sales and customer satisfaction. Review the architecture and integration steps to enable Afterpay within Point of Sale. - **[Integrate NetSuite ERP in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite.htm&release=264.0.0&type=5)** Enable order management by integrating your NetSuite ERP with Point of Sale CMS. Begin with an initial configuration on your NetSuite account. Then, complete the setup in the CMS. - **[NetSuite Integration Guide](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite_guide.htm&release=264.0.0&type=5)** Integrate your Point of Sale brand with NetSuite, streamlining data and workflows across platforms. Configuring both NetSuite and your content management system (CMS) ensures a seamless connection. This integration helps to maintain consistent branding and product information, and enables efficient order and inventory management. With connected systems, you reduce manual data entry and improve overall operational efficiency. - **[SAP Integration Guidelines](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_sap_guidelines.htm&release=264.0.0&type=5)** Integrate your POS with SAP ERP to manage products, inventory, and orders. SAP Financials data can be reconciled with POS. Link your SAP data to Point of Sale to align with your business requirements. Ensure that your customized SAP configuration works seamlessly with your POS system. - **[Recommendations Integrations](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_recommendations.htm&release=264.0.0&type=5)** Point of Sale supports product recommendations from technology partners to help you provide shoppers with the most relevant products. Point of Sale also supports size and fit recommendations from TrueFit, ensuring customers find the right fit every time. - **[POS Access List–URLs and IP Address](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_pos_access_list.htm&release=264.0.0&type=5)** To enable POS and cloud services to interact with external, third-party services, allowlist specific URLs and IP addresses within the merchant's firewall. Ensure necessary communication for Adyen Payments, Elavon Payments, and other connectors by allowlisting URLs configured on CMS and product or order systems. The in-store IT team handles store firewall and POS app URLs, while the corporate IT team manages backend outbound NAT gateway IPs for connectors. - **[Integrate WineDirect](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_winedirect.htm&release=264.0.0&type=5)** Point of Sale supports WineDirect's clienteling service. Get details of the configuration set up required in the CMS and the WineDirect services supported by Point of Sale. - **[Set Up Your System for Email Communications](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_email.htm&release=264.0.0&type=5)** To send emails using Point of Sale, you must verify that you’re authorized to use an email address, domain, or both for each region where your stores operate. Point of Sale uses Amazon Simple Email Service (SES) to verify your email address and domain identities. You can manage identities in the CMS, view verification statuses, and take action as needed. Verify a domain if you send email from multiple email addresses or verify just one email address to send communications. # Integrate with OMS Systems Integrate Point of Sale with Order Management Systems (OMS) to streamline retail operations. Enable Buy Online Return In Store (BORIS) for SFOMS integration. Configure NetSuite OMS CMS to optimize inventory and order fulfillment. - **[Enable BORIS for SFOMS Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_oms_boris.htm&release=264.0.0&type=5)** Buy Online Return In-Store (BORIS) allows customers to purchase products online and have them shipped. Customers can return the product to a physical store or alternative location if they are unsatisfied with their purchase. Enable Point of Sale's BORIS feature so customers have options for how they receive and return their products. Review the sections and corresponding components in the CMS to get started. - **[Configure NetSuite OMS CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_oms_netsuite.htm&release=264.0.0&type=5)** Integrate NetSuite Order Management System (OMS) with Point of Sale to centralize and streamline order fulfillment processes. Connecting these systems improves inventory visibility and enables efficient order routing. With this integration, retailers gain a unified view of orders, inventory, and customer data. This single view helps create seamless customer experiences. # Intelligence Analytics Dashboards Powered by Data 360 Intelligence Analytics dashboards display key store performance metrics to help you make data-driven decisions for business agility. Get a comprehensive view of the best performing categories and products within a store, and keep on top of inventory health across your locations and location groups. Explore the Shopper Intelligence dashboard to learn about customer first-time and repeat purchase behavior to drive and retain loyalty. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Advanced Insights Overview Dashboard](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_dashboards_overview.htm&release=264.0.0&type=5)** In the advanced Insights Overview dashboard, you can view trends and calculated insights tied to specific goals and recommended actions. The dashboard also provides real-time visualizations of key performance indicators by store. Use these insights and actions to make informed decisions about how to improve your B2B Commerce store performance. - **[Shopper Intelligence Analytics Dashboard for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_dashboards_customer.htm&release=264.0.0&type=5)** Understand the shopping behavior of your customers. Review data around active, at-risk, and churned customers. - **[Inventory Intelligence Analytics Dashboard](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_dashboards_inventory.htm&release=264.0.0&type=5)** If you’re using Salesforce Omnichannel Inventory, use this dashboard to get insight into inventory performance. View data about inventory levels and orders across locations and units sold. - **[Product Intelligence Analytics Dashboard](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_dashboards_product.htm&release=264.0.0&type=5)** Get insight into product performance and top-selling categories across regions. View data about low-selling products, product searches, and see which products are frequently bought together. - **[Search Intelligence Analytics Dashboard for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_dashboards_search.htm&release=264.0.0&type=5)** Monitor and analyze your storefront's search performance with the Search Intelligence dashboard to understand shopper search behavior and optimize search results. The Search Intelligence dashboard provides comprehensive analytics about how shoppers search. Use these insights to identify search terms that return no results, track click-through rates, and understand search trends over time. This data helps you improve product findability and optimize the search experience. # Interpret Commerce Analytics Dashboards and Reports Commerce Analytics provides preconfigured dashboards composed of Lightning reports. To monitor key metrics for your B2B Commerce stores, use the Business Overview Dashboard. For details about your store’s payment processing, promotional effectiveness, and overall financial well-being, use the Commerce Payments, Promotions, and Finance dashboards. To get insights into order volume, fulfillment efficiency, returns, and refunds, use the Commerce Orders Dashboard. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ## Business Overview Dashboard The Business Overview Dashboard includes these reports. The default currency is USD. If your store uses multiple currencies, a conversion is applied to aggregate the calculations. | Report Name | Description | | --- | --- | | Total Orders | The total number of orders placed in your store or stores. Use the Total Orders report to track sales trends by charting the metric over different time periods. | | Order Funnel | The percentage of carts converted from cart, to checkout, to order in your store or stores. | | Average Order Value (AOV) | The average value of orders placed by customers in your store or stores. Order value excludes the cost of tax and shipping. Use the AOV and Total Order Value reports to assess your customers’ spending habits over time. | | Total Order Value | The total value of all orders placed in your store or stores. Order value excludes the cost of tax and shipping. | | Total Number of Customers | The total number of customers for your store or stores over time. The number is calculated as the count of unique customer IDs from purchases within the specified timeframe. | | Order Conversion Rate | The percentage of carts converted to orders in your store or stores. Use the Order Conversion Rate and Cart Conversion Funnel to identify opportunities for improving the checkout process. | | Top Categories Sold | The most popular product categories by number of orders. | | Top Products Sold | The most popular products by number of orders. | | Top Promotions by Orders | The promotions applied to the most orders. This calculation includes both manual and automatic promotions. Automatic promotions apply to all eligible carts. Manual promotions require a coupon code that the customer enters. | | Top Coupons by Orders | The coupons applied to the most orders. This calculation includes only manual promotions. | ## Commerce Payments Dashboard The Commerce Payments Dashboard includes these reports. The default currency is USD. If your store uses multiple currencies, a conversion is applied to aggregate the calculations. | Report Name | Description | | --- | --- | | Payment by Status | The current state of your transactions (for example, Authorized, Refunded, or Canceled). | | Payment Authorization Amount | The total value of all authorized payments. | | Payment Capture Amount | The total value of all captured payments. | | Payment Refund Amount | The total value of all refunded payments. | | Payment Authorization by Gateway | Monitor the success rate of payment authorizations for each payment gateway. | | Payment Capture by Gateway | Track how customers use specific payment gateways to initiate purchases. | | Payment Transaction by Store | The payment transactions across your different stores. | ## Commerce Finance Dashboard The Commerce Finance Dashboard includes these reports. The default currency is USD. If your store uses multiple currencies, a conversion is applied to aggregate the calculations. | Report Name | Description | | --- | --- | | Gross Sales | The total value of all your sales before subtracting discounts, taxes, or shipping costs. | | Discounts | The total amount deducted from your gross sales price due to line-item discounts and cart-wide discounts. | | Net Sales | The total value of your gross sales after deducting the discounts. | | Taxes | The total value of taxes associated with the sales. | | Total Sales Over Time | The total value of sales over time. | | Breakdown of Total Sales | A comprehensive view of your gross sales, discounts, taxes, returns, and shipping in a stacked format. | | Breakdown of Net Sales | A comprehensive view of your net sales in a stacked format. | ## Commerce Promotions Dashboard The Commerce Promotions Dashboard includes these reports. The default currency is USD. If your store uses multiple currencies, a conversion is applied to aggregate the calculations. | Report Name | Description | | --- | --- | | Net Sales with Promotions and Coupons | The net revenue generated from orders placed using any type of promotion or coupon. | | Net Sales without Promotions and Coupons | The net revenue generated from orders placed without using a promotion or coupon. | | Coupon Usage Details | Details of coupon redemptions. | | Taxes | The total value of taxes associated with the sales. | | Total Sales Over Time | The total value of sales over time. | | Breakdown of Total Sales | A comprehensive view of your gross sales, discounts, taxes, returns, and shipping in a stacked format. | | Breakdown of Net Sales | A comprehensive view of your net sales in a stacked format. | ## Commerce Orders Dashboard The Commerce Orders Dashboard includes these reports. The default currency is USD. If your store uses multiple currencies, a conversion is applied to aggregate the calculations. | Report Name | Description | | --- | --- | | Total Orders | The total number of orders placed during the selected period. | | Total Orders Amount | The total value of orders placed, excluding taxes and shipping costs. | | Total Quantities Returned | The total number of items returned during the selected period. | | Total Returns Amount | The total value of returned orders, excluding taxes and shipping costs. | | Fulfillment Order Status | A chart displaying the order fulfillment status, tracking pending, and completed orders. | | Cancellation Rate by Time | A line chart tracking the cancellation trends over time. | | Return Rate by Time | A line chart showing the return rates over time, identifying periods of higher return activity. | | Returns by Reason | A chart categorizing return reasons to help identify common issues. | | Return by Product | A detailed report showing the product name, SKU, order quantity, return quantity, and return rate. | | Discounts by Reason | A report analyzing discounts offered as appeasements, helping you analyze discount strategies. | #### See Also - [Set Up Commerce Analytics Dashboards and Reports](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_analytics.htm&release=264.0.0&type=5 "Use the Commerce Analytics dashboards to monitor business performance in B2B stores.") # Introduction to Layouts Layouts in Point of Sale offer flexible and modular design options, enabling seamless customization for a variety of user needs. By leveraging Layouts, customers can easily adapt and enhance their digital experiences, ensuring a tailored and efficient solution. ## What Are Layouts? Let's start with a definition of what a Layout is: A Layout tells the app how to display a particular screen Depending on how many screens an app has, the app may require 20 or 30 different Layouts to build the entire user experience. ## Different Types of Layouts There are many different types of Layouts that target different screens in the app. Here are some of the most important use cases for Layouts: - Tabs - Each app typically has 4 - 5 different tabs. Each tab usually corresponds with a Layout that defines what the user sees and what happens when the user interacts with the different elements on the screen. - PDP - The PDP, or Product Display Page, is controlled by either a PDP V1 Layout or a PDP V2 Layout. - Search Screen (aka PLP) - The Search Screen, or PLP, is controlled by the Search (PLP) Layout. - Hamburger Menu - If your app has a hamburger menu, then the links in the hamburger menu are defined in a Hamburger Menu Layout. - Sign Up / Sign In Screens - These screens are controlled by Layouts that define what the different input fields are and what the button says and looks like. You can see all of the different types of Layouts by expanding the Layout Pages section of the left hand navigation in the CMS. ## Layouts at a Glance It is easy to get overwhelmed by the number of capabilities in the CMS. Try not to. If you have a solid understanding of a few key ideas, then you will have more success when you try to make changes to Layouts in the CMS. Make sure that you understand the following points: - Layouts are tied to an App Config - Layouts are in some way tied back to an App Config (see [Segment App Configs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_seg.htm&release=264.0.0&type=5 "POS offers deep customization through App Config Segmentation. This feature lets retailers tailor the POS experience based on device, personnel roles or associates, and store locations. This enhanced method simplifies configuration and provides granular control over the POS interface for different users and contexts.")). A Layout can be assigned to one of the tabs in the App Config or it can be assigned somewhere else in the App Config (e.g., PDP, PLP, Hamburger Menu, Sign Up / Sign In screens, and many others). - Layout Editor Layouts vs Other Layouts - All Layouts fall into one of two camps: (1) Layouts that are created in the Layout Editor and (2) other Layouts. Layouts that are created with the Layout Editor consist of rows and cells that specify exactly what you should see and where. - Always Verify Behavior in App - Each time you save a Layout in the CMS you will need to force close the app, reload the app, and navigate to the relevant screen to see changes. Always check the behavior in the app to verify that what you changed in the CMS did what you think it did. #### See Also - [_Salesforce Help:_ Point of Sale Digital Asset Specs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_personalization_asset_specs.htm&release=264.0.0&type=5 "Use digital assets in layouts with the correct specifications for the POS app. Customize the app's flow by adding images, ensuring they meet the recommended specifications for optimal display. By adhering to these guidelines, you maintain the visual appeal and functionality of your POS app. Optimize your layouts with appropriately sized and formatted digital assets.") # Introduction to Omnichannel Inventory Omnichannel Inventory is a scalable inventory solution that shows you near real-time inventory availability at the location level across all your fulfillment channels. Omnichannel Inventory combines the power of headless APIs and the flexibility of the Salesforce Platform to provide merchants and shoppers with a single source of truth for inventory availability. It integrates seamlessly with Salesforce B2C Commerce, B2B Commerce, D2C Commerce, and Salesforce Order Management, so you can deliver a true end-to-end shopping experience on your ecommerce storefront. Omnichannel Inventory consists of these components. Omnichannel Inventory service A multitenant system consisting of headless APIs for getting inventory availability data and managing reservations across all your fulfillment channels. Omnichannel Inventory app A Salesforce console app where you can view inventory availability across locations and manage your locations and location groups. Prebuilt integrations Built-in tools to connect Omnichannel Inventory with B2C Commerce and Salesforce Order Management. Connect REST APIs Salesforce APIs that you can use to customize the inventory experience when integrating between Omnichannel Inventory and Salesforce Platform apps such as Salesforce Order Management and B2B Commerce on Lightning Experience. Learn about Omnichannel Inventory components, resources, and terms. - **[Set Up Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_get_started_with_omnichannel_inventory.htm&release=264.0.0&type=5)** Before starting, make sure that your org has an Omnichannel Inventory license. - **[Omnichannel Inventory Terminology](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_glossary.htm&release=264.0.0&type=5)** Familiarize yourself with common Omnichannel Inventory terms. - **[Omnichannel Inventory Editions](https://help.salesforce.com/s/articleView?id=commerce.inv_editions.htm&release=264.0.0&type=5)** Learn about the editions and user interfaces that support Omnichannel Inventory. - **[Omnichannel Inventory Resources](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_resources.htm&release=264.0.0&type=5)** In addition to _Salesforce Help_, Omnichannel Inventory has documentation resources to help you learn about, set up, administer, and extend Omnichannel Inventory. # Invalidate User Session for Improved Security To improve security, Account Manager user sessions are invalidated when an account is edited, reset, deleted, or the password is changed. **How:** The following user state changes invalidate a user session. - **Edit a User Account:** When a user is logged into Account Manager, and you remove their Account Manager-related roles or unassign them from an organization, the user session is automatically invalidated. To continue their session, the user must log in again. - **Reset a User Account:** When a user is logged in and you delete their account, the user session is automatically invalidated. To continue their session, the user must log in again. - **Delete an Account:** When a user is logged in and you delete their account, the user session is automatically invalidated. To continue their session, the user must log in again. - **Change Account Password:** When a user is logged in and resets their password, their session is automatically invalidated. To continue their session, the user must log in again. # Inventory Review the new B2C Commerce Inventory feature in the 20.9 release. - **[Inventory Quotas Increased](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_w7783379_inventory_quotas_increased_as.htm&release=264.0.0&type=5)** You can now create more Product Inventory Records and Lists. The Product Inventory Records quota increases to 50,000,000, and the Product Inventory Lists quota increases to 10,000. Reaching or exceeding 80% of either quota triggers a quota warning. # Inventory Adjustment Batch Report View ​​summarized changes to inventory quantities in Point of Sale CMS. The **Inventory Batch Adjustment Report** summarizes the changes made to inventory quantities within specific batches. It can provide details such as the adjusted products, types of adjustments, before and after quantities, reason codes (if applicable), and user or system information. ## Accessing Report - Go to **Inventory > Inventory Adjustment Batch**. - Configure the search filter. - Select **Search**. ## Adjustment Batch Details You can view additional details (for example product information, reason code, and so on) of a specific batch by clicking **View Details** to the right. ## Posting Batch via CMS While batches can be closed on the POS app, this can also be done on the CMS. For batches with a status of Closed, you have the option to manually post it in CMS and this updates all data from the batch accordingly. This can be done by clicking **Post Batch** in the Adjustment Batch Details. Posting a batch isn't revocable. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Only CMS User Roles with "Edit" permission for Inventory will be able to post batches. # Inventory Adjustment Known Issues and Restrictions Stay informed about common issues and restrictions to optimize your Point of Sale (POS) app experience. For app versions less than 9.8.1, while receiving, failure to save your progress can result in the loss of all work, including scanned items, if you tap the merchant logo in the POS app. However, for versions 9.8.1 or greater, users are provided with the option to save before exiting. # Inventory Adjustments Store inventory management lets merchants view and adjust product counts through the CMS. Full and delta inventory feeds allow for comprehensive or incremental updates from external systems. Merchants can also integrate with the Point of Sale platform to update store inventory via API calls. The system tracks inventory based on order details, decrementing counts for in-store purchases and allocating stock for online orders. ## CMS Merchants can view and adjust store inventory for specific products via CMS by going to: **Inventory** | **Store Inventory** | **Select a store** | **Edit Inventory** for a product. ## Store Inventory Feed Merchants can export and send store inventory details in various file formats to Point of Sale platform. These files can be processed periodically at configured intervals. Full inventory feed performs a complete refresh of inventory data in Point of Sale platform. This is done in an infrequent manner. Delta inventory feeds perform incremental changes or adjustments to the inventory level and this can be done more frequently even multiple times in a day. Refer to [Store Inventory & Pricing Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_store_inv_price.htm&release=264.0.0&type=5 "The Point of Sale store inventory feed is used for the Find-In-Store feature. On the PDP, a user can opt to see if a product is available in a nearby store.") to learn how to configure and schedule store inventory feeds. ## API Merchants who manage inventory via an external inventory management system can still integrate with Point of Sale platform and update store inventory via API call. Contact your customer success manager for details about API integration. ## Transactions When a customer places an order, Point of Sale can track the inventory based on the order details. In-store Take-Away/Carry-Out items will be decremented from store inventory. BOPIS (Buy Online Pickup In Store) and BOFIS (Buy Online Fulfill In Store) orders will mark the items as allocated and inventory will be decremented upon fulfillment. Refer to [BOPIS/Store Fulfillment Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_bopis_store_fulfillment.htm&release=264.0.0&type=5 "Explore a detailed list of Point of Sale BOPIS/store fulfillment deep links, each with a clear description and supported context. Links include features for order status, fulfillment, history, packing, and pickup. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.") for details. # Inventory and Product Reports Create and view reports for store products in Point of Sale CMS. - **[Price Lookup Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_prince_lookup_report.htm&release=264.0.0&type=5)** View a consolidated list of products in Point of Sale to determine prices at store and product levels. - **[Product Not on File Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_product_not_found.htm&release=264.0.0&type=5)** Generate reports for products that didn't originate from a product feed import in Point of Sale and were manually added by a store associate. # Inventory Buckets Point of Sale supports the following inventory buckets - Sellable Quantity, Allocated Quantity, Safety Stock, Quantity On Hand, Quantity In Transit, Quantity On Order, Not for sale, Returned items, and Floor/Demo items. To make a bucket adjustment, complete the following steps. 1. In CMS, go to Inventory Management > Inventory Overview And Bucket Adjustment. 2. Select a store from the drop-down menu and click **SEARCH**. 3. Click on the ellipsis (three vertical dots) to the right. 4. Click **Edit Inventory** and make the adjustments. 5. Click **SAVE**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note We permit negative inventory, which means the available product quantity can drop below zero, like '-2.' This happens because we allow items to be added via bar-code scanning without checking current inventory. Regardless of a product's online availability, you can add it to your cart if it's physically on hand. This approach accommodates potential inventory inaccuracies. # Inventory Bulk Quantity When scanning in inventory items during Blind Receiving or a Cycle Count, the PS POS app allows the user to manually enter a quantity for a scanned item so that each individual item does not need to be scanned. This is most helpful in scenarios where a large number of the same item must be scanned. POS Build, Platform Support & Technical Prerequisites: - Modern POS App build: 6.5.1 or above - Platform Support: iPhone & iPad - Offline Support: No 1. To enable Inventory Bulk Quantity, ensure that the `hasInventoryBulkQuantity` flag is enabled from Store Settings in the CMS. 2. When the `hasInventoryBulkQuantity` flag is enabled in the CMS, the interstitial shown below will be presented after each item is scanned during Blind Receiving or a Cycle Count. After entering the appropriate amount in the text field and tapping Confirm, the amount entered will be added to the quantity of the scanned product. ![Bulk quanity screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bulk_quantity.png) Note that when serialized inventory is enabled and a serialized product is scanned, the user will not be shown this interstitial and the user will not be able to manually input the quantity for such a product. # Inventory Configuration Manage inventory settings in Point of Sale to use PredictSpring (Point of Sale), SPI, or Salesforce Omnichannel Inventory (SFOCI) as your inventory provider. Historically, Point of Sale has managed all inventory for online and in-store orders. As part of the 8.10.1 build release, Point of Sale now offers the ability to rely on an external system for online inventory availability. This is available through an SPI endpoint as well as a native integration with Salesforce Omnichannel Inventory (SFOCI). This article explains how to go to the configuration screen needed to change providers and any additional toggles associated with inventory checks. For information on SFOCI Integration via CMS, refer to this [Set Up Salesforce Omnichannel Inventory (OCI) Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_oci.htm&release=264.0.0&type=5 "Point of Sale has native integration with Salesforce Omnichannel Inventory (OCI) to do live inventory checks for online orders. Learn how to configure POS and SFOMS to take advantage of this omnichannel capability."). Retrieving store inventory information is also available with an API, it returns details for queried store and product ID(s). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note, this API accepts multiproduct IDs/store IDs in one call. [Learn more](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#application-programming-interface-api) 1. In CMS, go to **Inventory > Inventory Configuration**. 2. Create or edit an existing configuration. 3. Complete the fields by referring to the table:
Field Description
Provider

Select the provider for this inventory configuration:

Track Online Inventory If PredictSpring is selected as the Provider and this switch is enabled, it checks if inventory for online fulfillment products (that is, ship-to customer from an ecomm warehouse) is available before submitting an order. The ability to process an order is dependent on ‌availability. If this flag is disabled, an order can be submitted without checking for availability.
Track Store Inventory If this flag is enabled, it checks if inventory for in-store fulfillment products (that is, take with, pick-up later) is available before submitting an order. The ability to process an order is dependent on ‌availability. If this flag is disabled, an order can be submitted without checking for availability.
Is PredictSpring Master of Records If PredictSpring is selected as the provider and this switch is enabled, Point of Sale will be the source of truth for inventory.
Enable Check Inventory If SFOCI is selected as the Provider and this switch is enabled, SFOCI checks online inventory availability.
Enable Reserve Inventory If SFOCI is selected as the Provider and this switch is enabled, SFOCI reserves inventory if it's available if the order is placed.
Enable Release Reservation If SFOCI is selected as the Provider and this switch is enabled, SFOCI immediately releases a previously reserved online inventory if an order failure occurs (for example payment error, order declined). If disabled, the reservation automatically releases after four hours. For more information, see this OCIFulfillReservationSingleOutputRepresentation.
Location Group RefID If SFOCI is selected as the Provider, enter the SFOCI location group to be used for checking online inventory. This is used to configure your fulfillment locations and segment inventory. This can also be configured at the Store Creation and via Store Feed. By default, the merchant-level is used, however, if store-level is also set, that is used as well.
A location group is a group of places that are related. This is a set of places in a certain area or places that are part of a same brand or store. The location group provides an aggregate view of inventory availability across all the locations in the group. ## Frequently Asked Questions (FAQs) Learn more information about Inventory Configuration in Point of Sale CMS. ### If SFOCI is set as the provider, what's the expected behavior for Ship to Home and Ship to Home from Current Store fulfillment method? For Ship to Home (Auto Route), Point of Sale checks SFOCI. However, for Ship to Home from Current Store, Point of Sale checks store inventory instead as any in-store fulfillment method uses local inventory. # Inventory Fulfillment Locations Omnichannel Inventory uses three objects to represent the facilities that fulfill orders: Location, Location Group, and Location Group Assignment. - Location tracks inventory availability for a location such as a warehouse or retail store. - Location Group aggregates and exposes inventory availability for a group of related locations, such as those in a defined geographic area or belonging to a common brand or storefront. When a shopper orders through a sales channel associated with a location group, routing logic can fulfill the order from any location or set of locations in that group. In B2C Commerce, you can easily associate a location group with a site or store by using the corresponding B2C Commerce inventory list. - Location Group Assignment is the relationship between a location and a location group. A location group has one assignment for each of its locations, and a location has one assignment for each location group that it belongs to. The complete set of locations, groups, and assignments is called the location graph. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note When using D2C Commerce, your location graph is limited to one location and one location group. Salesforce associates location and location group records with corresponding OCI records and B2C Commerce inventory lists by using the External Reference field. - External References must be unique. Attempting to save a duplicate External Reference causes an error. - A location or location group’s External Reference must exactly match the ID of the corresponding inventory list in B2C Commerce. - In inventory API inputs and outputs, locations and location groups are identified by External Reference, not record ID. # Inventory Intelligence Analytics Dashboard If you’re using Salesforce Omnichannel Inventory, use this dashboard to get insight into inventory performance. View data about inventory levels and orders across locations and units sold. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Use filters to select locations and time periods (1). See the value of inventory items based on their importance to the business (2), and review charts that show stock supply (3). Understand more about your current inventory snapshot with filters for stock level, product, and product grade (4). Review your inventory and order levels by location (5) and for individual products (6). ![Shows the various parts of the dashboard, including filters, tabs, charts and tables.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_intel_inventory_dashboard.png)
INVENTORY KPI CALCULATION
ABC Analysis by Product

The value of inventory items based on their importance to the business.

A-Grade are the top-selling products that account for 70%–80% of gross sales.

B-Grade are products that account for 15%–25% of gross sales.

C-Grade are products that account for 5%–10% of gross sales.

Out of Stock by Age The number of days that the product was out of stock during the defined period.
Days of Supply The number of days that the current inventory will last at the current rate of sales.
Low Stock by Days of Supply Products with a Days of Supply less than 10 days.
Excess Stock by Days of Supply Products with a Days of Supply greater than 180 days.
Average Unit Sold Per Day The average number of inventory units sold each day over a specific period.
Sell-Through Rate The percentage of inventory that was sold compared to what was available.
#### See Also - [Shopper Intelligence Analytics Dashboard for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_dashboards_customer.htm&release=264.0.0&type=5 "Understand the shopping behavior of your customers. Review data around active, at-risk, and churned customers.") - [Product Intelligence Analytics Dashboard](https://help.salesforce.com/s/articleView?id=commerce.comm_intelligence_dashboards_product.htm&release=264.0.0&type=5 "Get insight into product performance and top-selling categories across regions. View data about low-selling products, product searches, and see which products are frequently bought together.") # Inventory Ledger in Point of Sale Use an inventory ledger to track item details, quantities, costs, dates, and balances in Point of Sale CMS. An Inventory Ledger allows you to view all inventory movement-based transactions. It records item details, quantities, costs, dates, and balances. It can help merchants monitor stock levels, value, and facilitate accurate financial reporting. Point of Sale's Inventory Ledger can be filtered by store, category, transaction types, and date range. Additionally, in-depth details can be viewed for each transaction. ## Configure Inventory Ledger Settings Set up the Inventory Ledger in Point of Sale CMS so that it accurately reflects your inventory. ### Turn on Inventory Ledger 1. In CMS, go to **Inventory > Inventory Configurations**. 2. Under **Provider**, select **Salesforce**. 3. Turn on **Is Salesforce Master of Records**. 4. Save your changes. If the Inventory Configuration is set to any other Provider, inventory won't be recorded and therefore, won't yield accurate results in the ledger. ### Accessing Inventory Ledger 1. In CMS, go to **Inventory > Inventory Ledger**. 2. Under **Store**, select or search for a store. 3. Under **Entry Type**, select the transactions you want to see in the report (for example **Sold**, **Returned**, **Cycle Count**, and so on) or select all. 4. Under **Products**, enter the IDs of the products you want to see in the ledger. This can be done through manual entry, selecting from the Product Picker, or importing a CSV file. 5. (Optional) You can configure the date to view the ledger for a specific date range. 6. Select **Search**. The update interval for inventory data syncing to the inventory ledger is near real time and won’t take more than 15 minutes, depending on the current system workload ## Inventory Ledger Field Descriptions View the descriptions of the fields in the ledger report in Point of Sale CMS. ### Field Descriptions | Field | Description | | --- | --- | | Product ID | Product ID mapped in Product Field Mappings | | Title | Product title mapped in Product Field Mappings | | Quantity on Hand | Number of units physically available and in stock of the specific data range | | Sold | Number of units sold in the specified date range, which reduces Quanty On Hand (QTYOH) | | Returned | Number of units returned in the specified date range, which increases QTYOH | | BOPIS Picked | Number of items that were picked in the store for Buy Online Pickup In-Store (BOPIS) orders that originated online | | BOFIS Shipped | Number of items that were sent out for BOPIS orders from the store that the store, which reduces QTYOH filled. | | Received | Number of items received by the store that increased QTYOH | | Out - STS | Number of items that the store transferred in a Store to Store (STS) transfer that reduces QTYOH. | | Returned to Vendor (RTV) | Number of items in the store returned to the vendor, which reduces QTYOH | | Adjustments | Net change after an adjustment. A negative number indicates a decrease in QTYOH, while a positive number indicates a positive in QTYOH | | Cycle Count | Net change after a cycle count. A negative number indicates a decrease in QTYOH, while a positive number indicates a positive in QTYOH | ## Inventory Ledger Transaction Details View information about purchase events and up-to-date inventory numbers resulting from the event. Any event can have more information, including information about the transaction and changes to the quantity. For example, you can have information about Sold, Returned, BOPIS Picked, and more. They can be accessed by clicking on the quantity number (highlighted in blue) under their respective columns in the report. The screenshot is an example of the details:![Example of Transactions Details in the Inventory Ledger](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_inventory_transaction_details.png) # Inventory Management - Store to Store Initiated Transfers Merchants can create Corporate Transfers (CTS) in the Point of Sale CMS automatically by uploading a CSV file with inventory transfer information. This action will initiate a store-to-store transfer. After the file is uploaded, it'll be sent to the store's POS app. Store associates can then start packing the products for the store-to-store transfer. On the next screen, click Add to create a new transfer. 1. In CMS, go to **Inventory** | **Store to Store CSV Upload**. 2. On the next screen, click **Add** to create a new transfer. ![Store to Store CSV upload screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_store_to_store_initiated_transfers1.png) 3. When prompted to upload a file, please ensure that it is not a duplicate and does not have any missing field data (e.g., ProductID) or the wrong file format. Failure to do so may result in an error after uploading. Sample files can be found at the bottom of this article. The required fields for CTS uploads are UploadNumber, FromStoreID, ToStoreID, ProductID, and Quantity. All other fields are related to Advanced Shipping Notices (ASNs). ![CSV upload screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_store_to_store_initiated_transfers2.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important All files must be saved in UTF-8 format (without BOM), as using UTF-8 with BOM will result in an invalid column name error during upload. 4. The added file will be shown in a list before upload. You can upload multiple files at once. You can also remove files from the list using the delete icon. ![Store to store csv upload list view](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_store_to_store_initiated_transfers3.png) 5. After an upload completes, a message will show either the upload is successful or failed due to errors. ![Store to store csv upload message screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_store_to_store_initiated_transfers4.png) To learn how to locate and manage transfers on the POS app, please refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands."). Sample Files: [Single Transfer](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/CTSSampleofSingleTransfer.csv), [Multiple Transfers](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/CTSSampleofMultipleTransfers.csv) # Inventory Management of Serialized Products Point of Sale supports the management of serialized product inventory. In inventory processes such as transfers and receivings, any serialized products must have their serial numbers scanned or manually entered. The following inventory flows support serialized products: Blind Receivings, Store to Store (STS) Transfers, Return to Vendor (RTV), and Advanced Shipping Notice (ASN). ## Set Up Serialized Inventory Set up serialized inventory to manage serialized products effectively. Configure the Product Feed and enable serialized scanning in Store Settings to ensure accurate tracking and management of serialized items. Prerequisites - Modern POS App Build: 9.10.1 or above - Platform Support: iPhone & iPad - Offline Support: Yes Serialized products are identified by the SerialNumberRequired attribute, which is configured via the [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters."). This attribute is a boolean: setting it to True indicates that the product is serialized, prompting users to scan its serial number in the POS app. If set to False, users will not receive a prompt to scan. Enable serialized scanning or manual entry on the POS app. 1. Go to **Store Management** | **Store Settings** | **OMS**. 2. Expand **Advanced**. 3. Toggle on the flag, Enable Serialized Inventory. ## POS App Flows and Serialized Inventory Manage serialized inventory effectively in the POS App by following specific flows for ASN receiving, blind receiving, RTV, STS transfers, and cycle counts. Ensure accurate tracking and error handling to maintain reliable inventory records. ### ASN Receiving When processing an ASN receipt for serialized products, each item must be scanned to capture its serial number, which is listed below the product description. ![ASN receiving screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_serialized_pos1.png) If using the device’s camera, the prompt to scan the product's serial number will appear at the top of the screen as shown in the below screenshot. Scan again to add the product for the transfer. ![ASN receiving prompt screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_serialized_pos2.png) However, if you are using an external scanner, a serial number entry modal will appear, allowing you to scan or manually enter the serial number. The POS app will display an error message if an incorrect serial number is entered or scanned. It will also alert you if a serial number is scanned twice. ![ASn receiving screen error](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_serialized_pos3.png) Important: Case pack IDs and serialized inventory cannot be used together. Serialized products are individually tracked by their unique serial numbers, preventing them from being grouped into case packs for collective scanning. Each serialized item must be managed independently to maintain accurate inventory records. _The error displayed below occurs when you attempt to receive all items in a shipment without individually scanning each item._ ![ASN receiving screen individual products error](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_serialized_pos4.png) When a serialized product is successfully scanned, a checkmark will appear to the left of it. If there are discrepancies due to overscanning or underscanning, tap **Rescan** to restart the scanning process for the product. When the receiving process is complete, the details will be recorded in an event file. Serial numbers for each product will be listed using a pipe delimiter. ![ASN receiving checkmark and rescan](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_serialized_pos5.png) For an overview of ASN Receiving, please refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_asn_receiving.htm&release=264.0.0&type=5 "Set up accurate inventory receiving, check merchandise against prearrival notifications, and set reason codes for inventory mismatches in Point of Sale."). ### Blind Receiving For an overview of Blind Receiving and to understand how serialized inventory is managed during the process, please refer to the following [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_blind_receiving.htm&release=264.0.0&type=5 "Allow stores to receive products without requiring an Advance Shipping Notice (ASN) in Point of Sale."). ### Return to Vendor (RTV) For an overview of RTV and to understand how serialized inventory is managed during the process, please refer to the following [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_rtv_transfers.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise from a store back to either a vendor or a warehouse."). ### Store to Store Transfer (STS) For an overview of STS Transfers and to understand how serialized inventory is managed during the process, please refer to the following [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands."). ### Cycle Counts For an overview of Cycle Counts and to understand how serialized inventory is managed during the process, please refer to the following [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_configure_cycle_count_options.htm&release=264.0.0&type=5 "Improve cycle counts using serialized inventory and bulk entry to identify and track individual items uniquely in Point of Sale CMS."). ### Adjustments For an overview of STS Transfers and to understand how serialized inventory is managed during the process, please refer to the following [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_managing_inventory_adjustment_batch.htm&release=264.0.0&type=5 "Adjust inventory counts for your store items in Point of Sale CMS and gain better insights into the adjustments via reports."). ## Serialized Inventory Known Issues and Restrictions When using Case Pack Receivings, case pack IDs and serialized inventory are incompatible. When conducting cycle counts, scanning the same serial number in multiple batches can result in the same serialized item being recorded multiple times. ### Case Pack Receivings Case pack IDs and serialized inventory cannot be used together. Serialized products are individually tracked by their unique serial numbers, preventing them from being grouped into case packs for collective scanning. Each serialized item must be managed independently to maintain accurate inventory records. ### Cycle Counts: Handling Duplicate Serial Numbers If you scan the same serial number in multiple batches, it will record multiple quantities for the same serialized item. # Inventory Management Overview Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses. **Inventory Life Cycle** ![Diagram showing the inventory life cycle](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_mgmt_lifecycle.png) - **[Set Up Inventory Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_setup.htm&release=264.0.0&type=5)** Enable Point of Sale inventory management and store-level inventory tracking in CMS to streamline inventory processes and improve stock accuracy. Follow the steps to configure and schedule store inventory feeds for automated updates. - **[Inventory Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_receiving.htm&release=264.0.0&type=5)** Inventory receiving methods enable stores to track and manage incoming merchandise efficiently. Blind receiving allows the addition of items to store inventory without an ASN, while store-to-store transfers optimize inventory levels based on demand. Corporate-initiated transfers and advanced shipping notices (ASN) provide centralized control and streamline the receiving process from warehouses or suppliers. - **[Inventory Transfer Out](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_transfer_out.htm&release=264.0.0&type=5)** Inventory Transfer Out enables stores to initiate transfers directly from the Retail Cloud POS. Corporate can also create transfer orders through CMS or file uploads, adjusting inventory based on demand and supply. By facilitating efficient inventory management, stores can promptly address surges in demand. - **[Store Operations](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_store_operations.htm&release=264.0.0&type=5)** Cycle count lets stores perform regular inventory audits, and then make any needed changes. With full cycle count, you can audit all of a store's products, and with partial cycle count, you can audit only select merchandise. - **[Inventory Buckets](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_buckets.htm&release=264.0.0&type=5)** Point of Sale supports the following inventory buckets - Sellable Quantity, Allocated Quantity, Safety Stock, Quantity On Hand, Quantity In Transit, Quantity On Order, Not for sale, Returned items, and Floor/Demo items. - **[Sample Data Movement](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_sample_data.htm&release=264.0.0&type=5)** This table walks you through a Point of Sale Store Lifecycle and how inventory buckets are impacted as different transactions are happening in-store. - **[Inventory Adjustments](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_adjustments.htm&release=264.0.0&type=5)** Store inventory management lets merchants view and adjust product counts through the CMS. Full and delta inventory feeds allow for comprehensive or incremental updates from external systems. Merchants can also integrate with the Point of Sale platform to update store inventory via API calls. The system tracks inventory based on order details, decrementing counts for in-store purchases and allocating stock for online orders. - **[Inventory Types](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_types.htm&release=264.0.0&type=5)** Point of Sale supports both online and in-store inventory. Online inventory can be managed via Feed, CMS, and API. # Inventory Movement Glossary of Terms and Definitions This article explains the methods Point of Sale uses to calculate inventory buckets within its inventory management system. Additionally, it includes a table that shows how these buckets are impacted by specific actions in the POS app. ## Inventory Buckets & Descriptions | Bucket | Description | Calculation Method | | --- | --- | --- | | Quantity On Hand (QTYOH) | Physical inventory of an item. | Sum of ALOC, SS, SQTY, NFS, FLD, RET | | Available (AVBL) | Inventory amount that can be sold. | QTYOH - (ALOC + SS + RET + NFS + FLD) | | Allocated (ALOC) | Inventory reserved for carts, transfers, and Buy Online, Pick-up In Store (BOPIS) transactions. | Updated from transactions and features | | Safety Stock (SS) | Inventory kept as a buffer to manage risk of stockouts. | Set and updated manually or by corporate policy | | Quantity In Transit (QIT) | Inventory currently being transferred between locations. | Updated from posted store transfers and ASN from warehouse to store | | Not For Sale (NFS) | Inventory not available for sale, typically held for adjustments and not yet posted. | Updated from adjustments pending post | | Returned (RET) | Inventory returned due to damage or defects, including Return to Vendor (RTV) items pre-posting. | Updated through returns and bucket adjustments, and relieved by Return to Vendor (RTV) transactions | | Floor Demo (FLD) | Inventory set aside for in-store demonstrations. | Manually updated | ## Inventory Buckets & Descriptions This table illustrates how inventory buckets are impacted by various actions related to sales, returns, and BOPIS (Buy Online, Pick-up In Store) orders within the POS app. For additional details on inventory transfers and receivings, please see the referenced [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses.").
Action Impact on Inventory Buckets
Sales
  • Item scanned into cart
    • Quantity is increased in the Allocated (ALOC) bucket and decreased in the Available (AVBL) bucket.
  • Sales transaction completed
    • Quantity is decreased in both the Allocated (ALOC) and Available (AVBL) buckets.
  • Item deleted from cart
    • Quantity is decreased in the Allocated (ALOC) bucket.
  • Cart voided
    • All item quantities are decreased in the Allocated (ALOC) bucket.
  • Suspended cart deleted
    • All item quantities are decreased in the Allocated (ALOC) bucket.
Returns
  • Item returned as "Damaged"
    • Quantity is increased in the Returned (RET) bucket.
  • Item returned with other reasons
    • Quantity is increased in the Available (AVBL) bucket.
Buy Online, Pickup In Store (BOPIS)
  • Order created in-store
    • All items in the order are allocated in the Allocated (ALOC) bucket.
  • Order shipped
    • Quantities are decreased in both the Allocated (ALOC) and Quantity On Hand (QTYOH) buckets.
  • Remaining items in BOPIS order
    • Remaining quantities are decreased in the Allocated (ALOC) bucket.
# Inventory Objects Learn about the Inventory objects and fields available for reporting in Order Management. - **[Location Fields](https://help.salesforce.com/s/articleView?id=commerce.om_location_fields.htm&release=264.0.0&type=5)** The Location object represents a location that fulfills orders, such as a warehouse or retail store. - **[Location Group Fields](https://help.salesforce.com/s/articleView?id=commerce.om_location_group_fields.htm&release=264.0.0&type=5)** The Location Group object represents a group of inventory locations. You can define location groups according to the logic of your business needs. For example, a location group can represent the warehouses in a geographic region, or it can include the fulfillment centers associated with a particular online storefront. - **[Location Group Assignment Fields](https://help.salesforce.com/s/articleView?id=commerce.om_location_group_assignment_fields.htm&release=264.0.0&type=5)** The Location Group Assignment object represents the relationship between a location and a location group that includes it. You can assign a location to multiple location groups. If a location is assigned to more than one location group, each group has a location group assignment object. # Inventory Overview and Bucket Adjustment Report Use the Point of Sale Inventory Overview report to check product counts across locations and identify inventory. Point of Sale's Inventory Overview and Bucket Adjustment report in CMS allows merchants to check inventory levels across stores and identify the number of products by inventory buckets at each of those locations. This report can also allow a product's Floor Demo, Not for Sale, and Safety Stock inventory buckets to be adjusted as needed. _This article highlights the Inventory Overview report in CMS. For details about the report in the POS app, refer to_ [_this article_](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_view_product_inventory.htm&release=264.0.0&type=5 "View inventory at the item or variant group level, and based on inventory buckets.")_._ - **[Inventory Overview Configuration and Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_inventory_overview_setup.htm&release=264.0.0&type=5)** Inventory tracking is required to make sure accurate results in the Point of Sale Inventory Overview and Bucket Adjustment report. - **[Accessing Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_access_inventory_overview_reports.htm&release=264.0.0&type=5)** View inventory counts in Point of Sale CMS by specific store, product search, or inventory bucket. Also, group the report by product ID or variant ID. - **[Adjust Inventory Buckets](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_adjust_inventory_buckets.htm&release=264.0.0&type=5)** Change the inventory details for a product in Point of Sale CMS. - **[Download Inventory Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_download_inventory_reports.htm&release=264.0.0&type=5)** Retrieve reports in Point of Sale CMS about how many of a specific product you have in stock. # Inventory Overview Configuration and Setup Inventory tracking is required to make sure accurate results in the Point of Sale Inventory Overview and Bucket Adjustment report. 1. In CMS, go to **Store Management > Settings**. 2. Search and turn on these settings: - **Enable Store Inventory Tracking** - **Has Store Level Inventory** - **Enable Point of Sale Inventory Management** 3. Save your changes. # Inventory Quotas Increased You can now create more Product Inventory Records and Lists. The Product Inventory Records quota increases to 50,000,000, and the Product Inventory Lists quota increases to 10,000. Reaching or exceeding 80% of either quota triggers a quota warning. # Inventory Receiving Inventory receiving methods enable stores to track and manage incoming merchandise efficiently. Blind receiving allows the addition of items to store inventory without an ASN, while store-to-store transfers optimize inventory levels based on demand. Corporate-initiated transfers and advanced shipping notices (ASN) provide centralized control and streamline the receiving process from warehouses or suppliers. ## Blind Receiving Stores sometimes will source merchandise locally or may receive a shipment without ASN. To receive such items and add to store inventory the “Blind Receive” feature is used. Stores will be able to perform blind receive using the POS application itself. Refer to [Inventory Management - Blind Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_blind_receiving.htm&release=264.0.0&type=5 "Allow stores to receive products without requiring an Advance Shipping Notice (ASN) in Point of Sale.") to learn how to configure and use Blind Receiving features. ## Store to Store Transfer Store can also initiate store to store transfer right from the POS itself. This is useful if stores see sudden surge in demand and stores can optimize inventory levels across each other to ensure customers are served properly by having enough items on hand. Refer to [Inventory Management - Store to Store Transfers](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_corporate_transfers.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to align with regional demands and preferences.") to learn more about this feature. ## Corporate Initiated Transfer Merchant corporate team can initiate a store to store transfer by sending a “corp transfer order” via a file feed or via an API call to Point of Sale Platform. This will trigger a workflow in POS where one store will ship products to another store. This can be triggered via Point of Sale CMS as well. This feature is useful as the corporate team has visibility across all the stores and can optimize inventory level at different stores based on consumer demand and rate of product sale. Refer to [Inventory Management - Corporate Transfer](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_corporate_transfers.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to align with regional demands and preferences.") to learn how to configure and receive corporate transfers. ## Advanced Shipping Notice (ASN) Based ASN feature allows a store to receive merchandise from a warehouse or an outside supplier. The receiving personnel will be able to review transfers that are in transit and receive transfers that are delivered. Receiving can be completed by scanning pallet labels, carton labels,or product UPC tags. Once received merchandise will be added to the store inventory and will be available for sale. Refer to [Inventory ASN Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_asn_receiving.htm&release=264.0.0&type=5 "Set up accurate inventory receiving, check merchandise against prearrival notifications, and set reason codes for inventory mismatches in Point of Sale.") to learn how to configure and receive ASN-based inventory transfers. # Inventory Reservations When an order is placed, the system reserves inventory to fulfill that order. A reserved quantity of a specific product at a location or location group is called a reservation. When a reservation is assigned to a location group, you can implement business rules to transfer it to a specific location for fulfillment. For example, when a shopper places an online order for several products the system creates reservations for the ordered products at the location group containing the online store’s fulfillment locations. Business rules calculate the most efficient set of locations in the group that can fulfill all the reservations from the order. The system then transfers the reservations to the individual locations and each location fulfills its reservations. # Inventory Transfer Out Inventory Transfer Out enables stores to initiate transfers directly from the Retail Cloud POS. Corporate can also create transfer orders through CMS or file uploads, adjusting inventory based on demand and supply. By facilitating efficient inventory management, stores can promptly address surges in demand. ## Store Initiated Stores can also initiate store-to-store transfers right from the POS itself. This is useful if stores see a sudden surge in demand and stores can optimize inventory levels across each other to ensure customers are served properly by having enough items on hand. ## Corporate Initiated Corporate can create transfer orders to initiate store-to-store transfers. Corporate can send this right from CMS or can send a transfer order file to Point of Sale via file upload. This will allow corporate to adjust inventory between stores based on demand and supply. # Inventory Types Point of Sale supports both online and in-store inventory. Online inventory can be managed via Feed, CMS, and API. ## Online Inventory Feed In addition to managing store inventory online inventory details can also be sent via feeds to Point of Sale Platform. Full Product Feed can be configured to update all product details including inventory. Delta Product Feed can be configured to update a subset of the products and inventory details for those products. Refer to [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters.") to learn how to configure product feeds. API Online product details can be managed via API as well. Contact your customer success manager for details about API integration. # Invoice Fields The Invoice object represents an amount to be paid. This object is associated with one fulfillment order. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Invoice object.
Field Label Description
Balance The outstanding balance for the invoice.
Bill To Contact The contact for the customer account associated with the invoice.
Billing Contact The customer account associated with the invoice.
Created By The user who created the invoice record.
Created Date The date when the invoice record was created.
Description The description of the invoice.
Document Number The number used for organizing financial documents.
Due Date The date that payment is due for the invoice.
Invoice Date The date that the invoice was posted. This date is used with payment terms to determine the invoice due date. For example, an invoice with an Invoice Date of 04/01 and Net30 payment terms has a Due Date of 05/01.
Invoice Number The auto-generated number assigned to the invoice.
Last Modified By The user who last changed the invoice record.
Last Modified Date The date that the invoice record was last changed.
Owner Name The owner of the invoice.
Reference Entity The order or order summary associated with the invoice.
Status

The status of the invoice.

Possible values are:

  • Canceled—The invoice is canceled.
  • Draft—The invoice isn’t yet recorded as a financial transaction.
  • Error Posting—The invoice posting failed.
  • Pending—The invoice is pending.
  • Posted—The invoice has been recorded as a financial transaction.
Tax Locale Type

Indicates the method used to handle tax on the original order associated with the invoice.

Possible values are:

  • Gross—Displays most prices and taxes as combined values. Usually applies to taxes like value-added tax (VAT).
  • Net—Displays most prices and taxes as separate values. Usually applies to taxes like sales tax.
Total Adjustment Amount The total amount, not including tax, of the price adjustments applied to the products on the invoice.
Total Adjustment Tax Amount The tax on the total adjustment amount.
Total Adjustment Amount with Tax

The total amount, including tax, of the price adjustments applied to the products on the invoice.

Total Adjustment Amount with Tax = Total Adjustment Amount + Total Adjustment Tax Amount

Total Amount The total amount of the invoice, including adjustments but not tax.
Total Charges The total amount of the charges on the credit memo, not including taxes.
Total Charges Tax Amount The tax on the total charges.
Total Charges with Tax

The total amount of the charges on the invoice, including tax.

Total Charge Amount with Tax = Total Charges + Total Charge Tax Amount

Total Tax The tax on the total amount.
Total with Tax

The total amount of the invoice, including adjustments and tax.

Total with Tax = Total Amount + Total Tax

#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Invoice Line Fields The Invoice Line object represents a portion of the amount of an invoice. One invoice line can represent the full amount of an invoice. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Invoice Line object.
Field Label Description
Adjustment Amount The total amount of the price adjustments on the invoice line, not including tax. 
Adjustment Tax Amount The tax on the adjustment amount.
Adjustment Amount with Tax

The total amount of the price adjustments on the invoice line, including tax.

Adjustment Amount with Tax = Adjustment Amount + Adjustment Tax Amount

Charge Amount The total amount of the charges on the invoice line, not including tax.
Charge Amount Tax

The total amount on the charges on the invoice line, including tax.

Charge Amount with Tax = Charge Amount + Charge Amount Tax

Charge Amount with Tax The tax on the charge amount.
Created By The user who created the invoice line record.
Created Date The date when the invoice line record was created.
Description The description of the invoice line.
Gross Unit Price The unit price of the product on the invoice line, including tax.
Invoice The invoice that contains the invoice line.
Invoice Line End Date For invoices made from a time-based service, the end date of the billing for the service. 
Invoice Line Start Date For invoices made from a time-based service, the start date of the billing for the service.
Line Amount The total amount of the invoice line, including tax.
Name The name of the invoice line.
Product The product that was ordered or changed to create the invoice.
Quantity The number of units of the product that created the invoice line.
Reference Entity Item The product or adjustment that created the invoice line.
Reference Entity Item Type

The type of transaction that created the invoice line.

Possible values are:

  • Delivery Charge—Indicates that the return order line item represents a delivery charge.
  • Order Product—Indicates that the return order line item represents a product, service, or charge.

Each Reference Entity Item Type corresponds to one Reference Entity Item Type Code.

Reference Entity Item Type Code

The type code of the transaction that created the invoice line.

Possible values are:

  • Charge
  • Product
Related Line The original invoice that was adjusted or taxed.
Status

The status of the invoice line. Inherited from the invoice status.

Possible values are:

  • Canceled—The invoice is canceled.
  • Draft—The invoice isn’t yet recorded as a financial transaction.
  • Error Posting—The invoice posting failed.
  • Pending—The invoice is pending.
  • Posted—The invoice has been recorded as a financial transaction.
Tax Amount The total tax for the invoice line.
Tax Code The code representing the tax rage used to calculate the tax amount on the invoice line.
Tax Effective Date The date used to calculate the tax amount on the invoice line.
Tax Name The name of the tax applied to the invoice line.
Tax Rate The percentage value used to calculate the tax amount on the invoice line.
Total Amount The total amount of the invoice line, not including tax.
Total with Tax

The total amount, including tax, of the invoice line.

Total with Tax = Total Amount + Tax Amount

Type

The type of transaction for the invoice line.

Possible values re:

  • Adjustment
  • Charge
  • Tax
Unit Price The unit price of the product on the invoice line, not including tax.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # ISV Partners Can Get a Trial Sandbox Automatically When Registering B2C Commerce independent software vendor (ISV) partners can now get a trial sandbox environment within minutes of joining the AppExchange Partner program. ISV partner prospects can opt in for a 90-day trial sandbox when they register on the Partner Recruitment page. After their information is submitted, a trial sandbox is automatically provisioned, and the ISV partner receives an email with their sandbox credentials. # January 2024 SLAS - Improved error handling for TSOB(Trusted system on Behalf) for "customer not found" user scenarios. - Support added for using SAP Customer Data Cloud [socialize REST endpoints](https://help.sap.com/docs/SAP_CUSTOMER_DATA_CLOUD/8b8d6fffe113457094a17701f63e3d6a/4176c45f70b21014bbc5a10ce4041860.html). - IDP configuration now allows the IDP client credentials to be added to the POST body. - SLAS now supports OIDC client\_secret\_basic and client\_secret\_post for client authentication. - Updated the /introspect endpoint to include a “sub” claim in the [response](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-login?meta=introspectToken). - Improved validation in Session Bridge(SESB) flow by checking for the customer\_id and failing the request if the customer is already registered. For more detailed information, see[B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). # January 2024 PWA Kit and Managed Runtime PWA Kit - Storefront Preview Integration with a Third-Party CMS - Use a third-party content management system (CMS) with Storefront Preview. For example, if you have a holiday sale banner managed by your CMS, use Storefront Preview to see how the banner will appear on your site during your specified time period. See Storefront Preview. - Validate Customer-specific Site Changes - Preview how your Progressive Web App (PWA) Kit site will look based on one or more customer group IDs. For example, preview your site as it would appear to shoppers who get an employee discount. See Preview Your Storefront. Managed Runtime - Node 20 Support - Projects can now deploy with [Node 20!](https://nodejs.org/en/blog/announcements/v20-release-announce) PWA Kit projects will need to upgrade to the latest 3.4.x version and follow the instructions in [Upgrade Node Version](http://review-app-sdb2c-com-pr-1078.herokuapp.com/docs/commerce/pwa-kit-managed-runtime/guide/upgrade-node-version.html). - Osaka Region - Customers in Japan can now run their environment in the Osaka region, in addition to the existing Tokyo region. Your region can be changed via Environment Settings. - Source Maps for Debugging - Source maps are now available in Managed Runtime. This feature is designed to greatly improve the development and debugging experience by enhancing error stack readability. Source Maps can be generated starting in PWA Kit 3.4.x, and can be enabled by toggling the enable\_source\_maps environment setting. See [Debug Using Source Maps](https://review-app-sdb2c-com-pr-1036.herokuapp.com/docs/commerce/pwa-kit-managed-runtime/guide/debugging.html#debug-using-source-maps). # January 2025 SCAPI and SLAS For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI: - Support added for CORS headers with ports. - The new `sfdc_correlation_id` response header for the SCAPI Correlation ID is now fully enabled on all instances. - With B2C Commerce version 25.1: - SCAPI/OCAPI Coupons API Update: - Retrieved coupons are now sorted by `couponId` if no (optional) sorting order was passed. Previously, the sort order of retrieved coupons wasn't deterministic. For details, see: - OCAPI: Get Coupons in [Data Coupons](https://developer.salesforce.com/docs/commerce/b2c-commerce/references/ocapi-data-coupons?meta=Summary) - SCAPI: [Coupons Search](https://developer.salesforce.com/docs/commerce/commerce-api/references/coupons?meta=couponsSearch) - You can now add multiple remote includes from different sources in the array and create complex and powerful responses. For details, see [Remote Includes](https://developer.salesforce.com/docs/commerce/commerce-api/guide/remote_includes.html). - The `x-correlation-id` RESPONSE header is deprecated in some instances and is replaced by the `sfdc_correlation_id` RESPONSE header. For details, see [Match Request and Response Codes with Correlation IDs](https://developer.salesforce.com/docs/commerce/commerce-api/guide/identifying-requests-and-responses.html). SLAS - To enhance security for the Shopper Login API Access Service (SLAS), a `channel_id` (site) parameter is now required when requesting a guest access token with a `grant_type` of `client_credentials`. For details, see [Guest Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#guest-tokens). # January Build Summary (10.6.1) Build summary for Modern POS version 10.6.1, including what new features and changes it contains. Version 10.5.1 was an internal-only release for work done during code freeze, intentionally skipped number for public release 10.6.1. Access all new features and enhancements in 10.6.1. | Feature | Benefit | | --- | --- | | **Analytics/Reporting** |   | | [POS Sales Reports: Filter by Order Type](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Enables filtering by order channel (in-store, endless aisle, mixed cart, and BORIS) in POS sales reports | | [Log Manager Override IDs in Electronic Journal (EJ)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Captures manager overrides in the EJ for reporting | | **Core Platform** |   | | [Audit Log Improvements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Enhanced audit logs now support scheduled exports, additional filters, and more detailed event logging, including login/logout events | | [Configuration Flag for Blocking Returns](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | New flag allows merchants to control whether returns are permitted in the POS app | | [Replace Back Button with "X" for Webviews](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Webview navigation improved by replacing the back button with an 'X' | | [No Receipt Returns (NRR) Search Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Merchants can create and customize NRR Search layouts | | [New Transaction Types for EJ](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Introducing two new transaction types in the EJ for transaction discounts and if a till from the previous day is used | | **EJ/TLog/JSON Export** |   | | [Support EJ Exports on Hourly Schedule](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Merchants can now schedule EJ exports on an hourly basis | | **Integrations** |   | | [Phase 1 Synchrony: Card Present with Finance Tender](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Supports Synchrony cards for financing transactions in a card-present scenario | | **Payments** |   | | [Permit Clutch Gift Cards to Be Processed Without a PIN](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | New setting allows merchants to specify whether PINs are required, optional, or not needed for Clutch gift card transactions | | [Ability to Support Remote Pay by Link in Deposit Scenarios](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Pay by Link is now supported for remote deposits via the multitender screen | | **Returns/Refunds/Exchanges** |   | | [Start Return from Order History](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) | Enhanced ‌support for returns directly from Order History | | **Other** |   | | [Various](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_6_1.htm&release=264.0.0&type=5) |   | ## Analytics/Reporting ## POS Sales Reports: Filter by Order Type What it does: Permits filtering by order channel (in-store, endless aisle, mixed cart, and BORIS) in POS sales reports. This helps store teams look at sales and returns by channel. This gives them better information about how customers act, how they store their items, and how well they run their businesses. ![The Filter window for order types in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_pay_filter.JPG) How to configure in CMS: 1. In CMS, edit a layout or hamburger menu. 2. Using the deep link picker, search and add these links: - **Store Associate > Reconciliation Report** - **Reporting > Detailed Sales Report** 3. Set and save your changes. Learn more: [View Payment Reconciliation Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_payment_reconciliation_report.htm&release=264.0.0&type=5 "Confirm the accuracy of financial data and identify inconsistencies among the Retail Cloud order amount, the amount requested to the payment gateway, and the amount collected by a processor.") , [Detailed Sales Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_detailed_sales_report.htm&release=264.0.0&type=5 "Use the Detailed Sales report to see details related to sales, refunds, registers, and safes on the POS app.") ## Log Manager Override IDs in Electronic Journal (EJ) What it does: Takes IDs of managers who override in the EJ for reporting. This helps prevent losses for returns, discounts, and other approval processes. How to configure in CMS: No configuration is needed Learn more: [View and Edit Electronic Journal Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") ## Core Platform ## Audit Log Improvements What it does: We've enhanced Audit Logs in CMS with scheduled exports, additional filters, and more detailed event logging, including login and logout activities. These improvements permit merchants to see and control more of the system. This makes it easier to track user actions, make sure they follow the rules, and fix problems faster. Scheduled exports can also simplify reporting, while additional filters help pinpoint specific events for improved security and operational oversight. How to access and filter Audit Logs in CMS: 1. In CMS, go to **Audit Logs** in the left-hand menu. 2. Under **Resource Type**, select the type of resource (for example feed). For a complete list and detailed descriptions of all resource types, refer to [Resource Type](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_audit_logs.htm&release=264.0.0&type=5). 3. Under **Action**, select the action performed on the resource (for example created). 4. Under **User Role**, select the CMS role (for example CMS Admin) assigned to the user who performed the action for the specified record in the audit log. 5. Under **IP Address**, enter the IP address of the user who performed the action. 6. Under **User ID(s)**, enter CMS user IDs associated with the actions you want to review. You can input multiple user IDs to filter records for specific individuals or teams. 7. Configure the **Date Range** and time zone to narrow down the results to a specific time. ![Configuring Resource Types in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_audit_logs.png) How to export Audit Logs in CMS: 1. In CMS, go to **Feeds > Export Jobs**. 2. Select **+**. 3. Select **Audit Log Data Export**. 4. Configure the fields by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_export_jobs.htm&release=264.0.0&type=5 "Use export jobs to extract data from Point of Sale by using Secure File Transfer Protocol (SFTP). Configure and schedule these jobs in CMS to automate data extraction, and monitor their progress in the Export Logs for timely, efficient data retrieval."). ![The Audit Log Data Export settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_audit_log_data_export.png) Learn more: [Track Changes in Point of Sale CMS with Audit Logs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_audit_logs.htm&release=264.0.0&type=5 "Track who modified critical configurations in Point of Sale CMS to areas such as app configurations, layouts, and server settings.") ## Configuration Flag For Block Returns What it does: A new flag permits merchants to decide if returns are allowed in the POS app. This permits them to enforce store-specific return policies, reduce fraud risk, and improve operational control. Merchants can restrict returns during certain periods or promotional events, improving policy control and reducing unauthorized returns. How to configure in CMS: Returns can be turned on in two locations within CMS: the Returns Policies configuration and store settings. These settings are linked, so turning one on automatically turns on the other. 1. Returns Policy 1. In CMS, go to **Store Management > Return Policy Configuration**. 2. Verify **Block Returns (blockReturns)** is turned off. If turned on, returns can't be initiated on the POS app, resulting in the error: "`Returns are not supported per store policy. Reach out to your system admin if needed`." ![The Return Policies setting in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_return_policies.png) 2. Store Setting 1. In CMS, go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Verify **Block Returns (blockReturns)** is turned off. If turned on, returns can't be initiated on the POS app, resulting in the same error: "`Returns are not supported per store policy. Reach out to your system admin if needed.`" ![The Store setting for blocking returns in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_returns_store_settings.png) Learn more: [Returns & Exchanges in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_exchanges_overview.htm&release=264.0.0&type=5 "Shoppers can return and exchange products in the POS app. Exchanges are defined by any return transaction that also includes a sale.") ## Replace Back Button with 'X' for Webviews What it does: We've updated the UI of webviews by replacing the back button with an 'X.' Previously, selecting the back button caused any work done in the webview to be lost. This update establishes a smoother transition between the webview and native POS app, preserving data and enhancing the user experience. ![A mocked webpage on the POS app that shows PunchOut tiles.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_punchout_launch_pos_app.png) How to configure in CMS: No configuration is needed Learn more: [Supporting PunchOut Webpages on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_punchout_webpages.htm&release=264.0.0&type=5 "Integrate web-based workflows, like adding custom products, directly into store transactions using the Point of Sale (POS) app. Launch preconfigured web pages from the POS app to securely pass data and trigger actions via URL parameters. The POS app receives a message upon completion, which streamlines tasks such as customer login and cart navigation, enhancing the in-store shopping experience.") ## No Receipt Return (NRR) Search Layout What it does: Provides flexibility in configuring the UI, allowing merchants to customize their NRR experience How to configure in CMS: Create a layout and assign it to an app configuration. 1. Create Custom NRR Layout 1. In CMS, go to **Layouts > Layout Pages**. 2. Select **Add From Template**. 3. Select **No Receipt Returns Search**. 4. By default, the NRR layout template includes the deep links for order filtering: - **Order Search by Credit Card** - **Order Search by Customer** - **Order Search by Order Information** - **Order Search by Product**\* 5. \* If the Order Search by Product deep link is configured on the custom layout, No Receipt Returns — Turn on **Search by Product** to process returns. ![The No Receipt Return deep link configuration in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_nrr_layout.png) 2. Assign Custom NRR Layout 1. In CMS, go to **Apps**. 2. Edit the app configuration that supports NRR. 3. Go to **UI > Search Layouts**. 4. Under **No Receipt Return Search Layout**, select the layout you've created. 5. Save your changes. Learn more: [No Profile, No Card, No Receipt Returns (NRR) in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_nrr_overview.htm&release=264.0.0&type=5 "Allow returns for customers who don’t have a purchase receipt or a customer profile. No Profile, No Card, No Receipt Returns (NRR) in Point of Sale are performed at the lowest historical price and only if the returning item is still available in the system.") ## New Transaction Types for EJ What it does: Introducing two new transaction types in the EJ for transaction discounts and if a till from the previous day is used ![The Electronic Journal filters in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_ej_filters.png) How to configure in CMS: No configuration is needed Learn more: [View and Edit Electronic Journal Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") ## EJ/TLog/JSON Export ## Support EJ Exports on Hourly Schedule What it does: Merchants can now schedule EJ exports on an hourly basis, reducing file size and improving efficiency via SFTP. This can help mitigate issues related to connection timeouts, network disruptions, and bandwidth limitations if transferring large EJ files. ![The Electronic Journal schedule settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_ej_export_logs.png) How to configure in CMS: 1. In CMS, go to **Feeds > Export Jobs**. 2. Select **+** and select **Electronic Job**. 3. Under **Schedule**, check **Repeat** on internal. 4. Select the hourly cadence. Learn more: [Configure and Manage Export Jobs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_export_jobs.htm&release=264.0.0&type=5 "Use export jobs to extract data from Point of Sale by using Secure File Transfer Protocol (SFTP). Configure and schedule these jobs in CMS to automate data extraction, and monitor their progress in the Export Logs for timely, efficient data retrieval.") ## Integrations ## Phase 1 Synchrony: Card Present with Finance Tender What it does: Point of Sale's POS app, in combination with the Adyen terminal, supports the recognition of Synchrony cards and enables financing transactions. During checkout, if a customer chooses to pay with their Synchrony PLCC and the card is present, the store associate can process the payment. If the order total is more than a certain amount, the store associate can offer financing. The customer signs an electronic disclosure and financing contract. ![A tablet displays a payment option to proceed, including selecting a payment option for deferred interest financing.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_synchrony_pos_pay_method.png) How to configure in CMS: 1. In CMS, go to **Store Management > Store Settings > Payment**. 2. Expand **Advanced**. 3. Select the pencil icon next to **Payment Terminal Financing Configuration (cardAcquisitionSettings)**. A window opens, allowing you to define the rules for promotional financing options based on the card acquisition response. 4. Turn on "**Enable Card Acquisition**" to activate the card acquisition for each card swipe or insertion before payment. 5. Under **Financing Rules**, specify whether to use "**Synchrony via Adyen Terminal**" for cards with a PAN matching a specified BIN range (for example, the issuing bank's range for Synchrony cards). If no BIN range is specified, the POS app accepts all types of Synchrony cards. 6. Under **Set Order Rules** for Applicable Finance Code, specify the finance code to use for each order total range. This code is passed to the terminal for preauthorization of Synchrony financing and determines the APR for the applicable finance option. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Set at least one order total rule. Without it, the POS app won't present a financing option, as the finance code is required based on the order total. 7. Under **Finance Terms and Conditions**, enter the terms and conditions that the customer sees during the card acquisition process. Learn more: [Set Up Processing of Synchrony Credit Card Purchases using Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony.htm&release=264.0.0&type=5 "The POS app, in combination with an Adyen terminal, supports the recognition of Synchrony cards and enables financing transactions. During checkout, when a customer chooses to pay with their Synchrony PLCC and the card is presented, the store associate can process the payment. If the order total meets a set threshold, the store associate can offer financing, which requires the customer to sign an electronic disclosure and financing contract. The threshold, electronic disclosure, and financing contract terms are customizable in the CMS.") ## Payments ## Permit Clutch Gift Cards to Be Processed Without a PIN What it does: Configure whether a PIN is required for checking a Clutch gift card balance or redeeming it. Point of Sale offers three options: Optional, Required, or None. How to configure in CMS: 1. In CMS, go to **Integrations > Gift Cards**. 2. Edit an existing Clutch integration. If no integration exists, refer to this article to create one. 3. Under **Advanced > Pin Settings**, select one of these options: - **Optional**: PIN isn't mandatory but can be used if available - **Required**: Enter PIN to check the balance or redeem the gift card - **None**: A PIN is required, and the system processes gift cards without PIN validation 4. Save your changes. ![A form displays advanced settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_gift_card_clutch_pin_10_6.png) Learn more: [Integrate Clutch Gift Cards](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_gift_card_clutch.htm&release=264.0.0&type=5 "The Point of Sale (POS) app supports gift card integration with Clutch. Learn how to configure a Clutch account with the supported functionality.") ## Ability to Support Remote Pay by Link (PBL) in Deposit Scenarios What it does: Deposits made with PBL (both in-store and remote) can be done via the multitender screen. PBL can only be applied to the full deposit amount. If an order has been paid for and is marked as completed, PBL can't be used. If the order status is changed to partial or any other status other than completed after the deposit is made, PBL can't be used. ![The Pay by Link Deposit and Amount settings in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_pbl_remote.png) How to configure in CMS: - Enable and configure [deposits](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_laway_deposit.htm&release=264.0.0&type=5 "POS app supports partial payments/deposits while creating an order. An order is eligible for partial payments if it has online items. Partial payments can be done in two ways in the POS app: creating a layaway order and adding a deposit amount to an order. Only online orders define Layaway orders, while deposits can be a mix of in-store and online orders. The deposit must be more than the total of items in-store. If the deposit is less than 25% of the total for online purchases, a warning is shown."). - Enable and configure [multi-tender](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_multitender_config.htm&release=264.0.0&type=5 "Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app."). - Enable and configure [PBL](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_pbl_overview.htm&release=264.0.0&type=5 "Point of Sale's POS app offers Pay by Link functionality with two distinct payment flows. The In-Store Payment flow lets customers pay right away by scanning a QR code with their phone. The Remote Payment flow lets customers get an email link to pay later. Both payment flows are supported by Adyen and Verifone payment gateway terminals."). Learn more: [Point of Sale Pay by Link (PBL) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_pbl_overview.htm&release=264.0.0&type=5 "Point of Sale's POS app offers Pay by Link functionality with two distinct payment flows. The In-Store Payment flow lets customers pay right away by scanning a QR code with their phone. The Remote Payment flow lets customers get an email link to pay later. Both payment flows are supported by Adyen and Verifone payment gateway terminals.") ## Returns/Refunds/Exchanges ## Start Returns from Order History What it does: Enhanced to permit returns to be processed directly from Order History, giving store associates greater flexibility and streamlining the return process How to configure in CMS: This isn't a configurable feature as it's an enhancement of the Order History process Learn more: [Returns & Exchanges in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_exchanges_overview.htm&release=264.0.0&type=5 "Shoppers can return and exchange products in the POS app. Exchanges are defined by any return transaction that also includes a sale.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Block Returns of Unshipped Send Sale Orders | Prevents associates from returning unshipped items, establishing inventory accuracy, and eliminating the need for reconciliation | [Manage Buy Online, Fulfill In Store (BOFIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bofis.htm&release=264.0.0&type=5 "Process Buy Online, Fulfill In Store (BOFIS) orders in the POS app. Store associates pack, ship, and manage orders fulfilled from the store.") | | NetSuite OAuth Enablement | NetSuite’s OAuth authentication is now supported, establishing secure access and synchronization of customer data while minimizing authentication errors | N/A | | Service Level in Delivery Group SPI | SPI updated to include service levels (for example, 3-5 days), enhancing delivery flexibility and clarity | [https://help.salesforce.com/s/articleView?id=commerce.rt\_cms\_modules\_omnichannel\_delivery\_groups.htm&language=en\_US](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_delivery_groups.htm&language=en_US) | | CMS Register Reconciliation | Enhanced CMS till reconciliation by displaying till details, prompting users to count and enter amounts, and selecting reason codes for discrepancies to help prevent fraud | [Reconcile Open Tills in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reconcile_open_tills_in_retail_cloud_cms.htm&release=264.0.0&type=5 "Resolve open tills and other issues caused by ghost tills directly within Point of Sale CMS.") | | Migrate Terminal Management API Calls to Management API Calls | In preparation for Adyen's deprecation of the POS Terminal Management API on April 1, 2025, Point of Sale introduces the "Adyen Merchant Management URL Prefix" setting to replace the "Adyen Terminal Management URL Prefix." | [Adyen Payment Gateway Information](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5 "You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale.") | | Permit Zero Quantity to Be Part of Full Cycle Count | Items with zero quantity can now be added to the cycle count, even if not originally part of it, if the cycle count type is set to Full. | [Perform Cycle Count as an Associate](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_perform_cycle_count_as_associate.htm&release=264.0.0&type=5 "As an associate, you can create and use batches to perform cycle counts for store inventory in Point of Sale CMS.") | | Verifone M450 Payment Terminal | New certification | N/A | | Adyen AMS1 | New certification | N/A | # January Build Summary (11.6.1) Build summary for Modern POS version 11.56.1, including what new features and changes it contains. For a complete list of bug fixes and known open issues in this release, see the [Release Notes for Modern POS Version 11.6.1](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_rn_11_6_1.htm&release=264.0.0&type=5 "Release notes for Modern POS Version 11.6.1, including new features, bug fixes, and known issues.").
Section Feature
Platform
Omnichannel
Inventory
Fiscalization
Payments
## Platform ## The POS App Has a New Name and Icon The PredictSpring POS app is now called Modern POS and has a new icon. ![The Modern POS app icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_posapp_rebrand.png) ## Omnichannel ## Increase Quote Visibility Across Channels Find and manage POS-created quotes across your connected systems, including ecommerce, call centers, CRM, and order management. The new Quote SPI helps convert more quotes into orders, providing a unified quote experience across channels. How: In CMS, go to **Integrations |****Customer Connectors**. Create a connector and select **QUOTE\_SERVICE**. ![The Quote Service Connector in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_increase_quote_visibility.png) See Also: - [Create and Manage Customer Quotes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_create_manage_customer_quotes.htm&release=264.0.0&type=5 "Merchants can create and track customer quotes on the POS app. Each quote has a unique number and includes customer information. Store associates can work with customers on merchandise and pricing, either in-store or over the phone, and then email the quote for review or print it on A4 paper. Customers can save the quote, delete it, or complete the checkout process.") ## Inventory ## Manage Inventory on Android Devices Point of Sale now supports inventory management on Android devices. Reach more customers in regions that favor Android or rely on ruggedized Android devices. ![The Inventory Module on an Android device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_manage_inventory_android.png) See Also: - [Supported Hardware for Point of Sale on iOS](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - [Inventory Management Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses.") ## Improve Inventory Integrity with Integrated RFID Support Inventory cycle counts now support RFID scanning with Zebra readers. Eliminate manual barcode scanning and run high-volume counts with speed and accuracy. Handle processing exceptions like invalid tags, missing products, and duplicates, directly in the POS app, maintaining your inventory integrity. With RFID scanning, you can run a full, partial, or manual cycle count. Quickly view RFID inventory count stats in the POS app and manage reporting in CMS. How: In CMS, connect your RFID reader to your register. Then, in Device Manager, pair the reader to your register terminal.. ![The Quote Customer Connectors in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_improve_inventory_integrity.png) See Also: - [Point of Sale Registers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_point_of_sale_registers.htm&release=264.0.0&type=5 "Configuring Point of Sale (POS) registers lets you track devices that run the Retail Cloud store app.") - [Zebra Scanner Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_zebra_scanner_support.htm&release=264.0.0&type=5 "Configure your wired or wireless Zebra scanners in the Point of Sale (POS) to make sure of accurate and efficient barcode scanning.") - [Learn about Cycle Counts in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_learn_about_cycle_counts_in_retail_cloud.htm&release=264.0.0&type=5 "Understand the distinctions among each Cycle Count type to best suit your retail environment.") - [Perform Cycle Count as an Associate](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_perform_cycle_count_as_associate.htm&release=264.0.0&type=5 "As an associate, you can create and use batches to perform cycle counts for store inventory in Point of Sale CMS.") ## Fiscalization ## View Only Region-Specific Settings When Configuring Fiscalization See only the options necessary for your current merchant region when setting up fiscalization. Use the Integrations tab to standardize your fiscal configuration across regions without changing legacy store settings. You can also still manage your existing setup in Store Management. How: In CMS, go to **Integrations |****Fiscalization**. ![The fiscalization settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_view_only_region.png) See Also: - [Fiscal Checklist](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_fiscal_checklist.htm&release=264.0.0&type=5 "Use the fiscal checklist to track action items for fiscalization in supported regions before going live with Point of Sale.") ## Payments ## Offer Convenient Payment Options with Upgraded Tap to Pay Support the latest tap to pay options for customers with an upgrade of your Adyen terminal. Adyen’s v3.12.0 upgrade mitigates critical breaking changes and supports the latest POS features like unreferenced refunds, offline payments for U.S. merchants, and card acquisition. With this upgrade, you can test tap to pay in the POS app only in a production environment. To test tap to pay transactions in a nonproduction environment, install the new POS beta app. Your existing POS app and the beta app can safely coexist on the same device. How: Upgrade your device to iOS 16 if necessary. To test tap to pay in a nonproduction environment, download the new POS beta app. Contact your Customer Support Manager for help getting started. See Also: - [Tap to Pay Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_tap_to_pay_overview.htm&release=264.0.0&type=5 "Accept contactless payments directly on an iPhone using the Point of Sale (POS) app.") ## Enhanced Financial Accuracy for Currency Specific Rounding POS rounding support for zero-decimal currencies, including the Japanese Yen, is now more accurate. This standardizes calculations to match third-party tax engines and prevents totals that differ from downstream financial systems. With this enhanced rounding accuracy, you can avoid discrepancies between sales totals and return amounts in markets with zero-decimal currencies. How: In CMS, go to **Store Management |****Store Settings**|**System** and set **Number of Decimals Supported by Currency** to zero. Save your changes. ![The system settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_enhanced_financial.png) See Also: - [Currency Rounding in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_cash_rounding_in_retail_pos.htm&release=264.0.0&type=5 "Currency rounding is the practice of rounding order totals to some monetary increment. Currency rounding is common in countries where rounding is legally required (like Canada, Australia, South Korea), and in other countries where smaller coins are phased out. Salesforce POS supports multiple rounding scenarios, including calculation-driven, cash, currency specific, and currency conversions. This support ensures smoother cash handling and accurate change, enhancing customer shopping experiences and precise transactions for accurate sales reporting. Configure cash rounding in CMS and review rounding behavior for sales, returns, and exchanges.") ## Capture Richer Payment Data with Extended BINs Record the first 6 to 8 digits of the Bank Identification Number (BIN) in TLOGs and transaction JSONs for Adyen payments. This expanded data helps your finance and fraud teams perform issuer-level analytics and customer segmentation without storing a customer’s full card number. Previously, only the last four digits were captured, which limited detailed reporting capabilities. How: Enable card BIN capture in your Adyen terminal settings. For Terminal API, go to **Developers |****Additional Data**|**Card Section** and then select **Card BIN**. For Pay-by Link, got to **Developers |** **Webhooks |** select your Adyen payment gateway webhook **| Additional settings |****Card** and then select **Include Card BIN**. See Also: - [Receive card and shopper identifiers (Adyen documentation)](https://docs.adyen.com/point-of-sale/card-acquisition/identifiers#overview) ## Simplify Transactions with Cash Rounding for USD Speed up checkout and reduce cash drawer clutter with half-even rounding on cash transactions. You now have the option to turn on cash rounding for stores processing USD transactions. This enhancement supports the downward trend in lower coin denominations being used in cash transactions. Previously, cash rounding was supported only for regions where rounding practices are more common. How: In CMS, go to **Store Management |****Store Settings |** **Transaction** and turn on **Cash Rounding for Cash Related Transactions**. ![The transaction settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_simplify_transactions.png) See Also: - [Currency Rounding in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_cash_rounding_in_retail_pos.htm&release=264.0.0&type=5 "Currency rounding is the practice of rounding order totals to some monetary increment. Currency rounding is common in countries where rounding is legally required (like Canada, Australia, South Korea), and in other countries where smaller coins are phased out. Salesforce POS supports multiple rounding scenarios, including calculation-driven, cash, currency specific, and currency conversions. This support ensures smoother cash handling and accurate change, enhancing customer shopping experiences and precise transactions for accurate sales reporting. Configure cash rounding in CMS and review rounding behavior for sales, returns, and exchanges.") ## Adyen SFO1 Terminal Certification See Also: - [Supported Hardware for Point of Sale on iOS](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") # January Build Summary (9.7.1) Build summary for Modern POS version 9.7.1, including what new features and changes it contains. ## Overview of All Features | Theme | Feature | Benefit | | --- | --- | --- | | Loyalty | [Loyalty (Beta)](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5) | Merchants can use their customer creation form to add shoppers to their loyalty program. The POS can use loyalty rewards passed in the customer's SPI lookup. The Customer 360 profile has been improved to make it easier to see and track loyalty customers. It now has badges and more loyalty data. | | Inventory Management | [Adding items to an ASN Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5) | Ability to add an item to an Advanced Shipping Notice (ASN) if it's not in the ASN file but in the product catalog. This requires a CMS flag to turn on this capability for store associates | | Inventory Management | [Re-Scan in ASN Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5) | Ability to rescan items in an ASN receiving flow if a mistake is made | | Inventory Management | Product Search Capability for Inventory Flows ([Cycle Count](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_completing_cycle_count.htm&release=264.0.0&type=5 "Finalize cycle counts after verifying all batches are complete and items are scanned. Configure settings to automatically update inventory counts or send files for corporate review."), [Store to Store Transfer](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands."), [Return to Vendor](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_rtv_transfers.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise from a store back to either a vendor or a warehouse.")) | For cases where products don't have a barcode, you can search the product catalog to add items to Store-to-Store (STS) transfers, Return-to-Vendor (RTV), and Cycle Counts (CYC). | | Payments | [Switching Between Tap to Pay and Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5) | For Tap to Pay-enabled iPhone devices, there's now an ability to switch to a payment terminal if necessary from the device. This can be done from the Device Manager or a new deep link directly from the cart. | | Offline | [Offline Switch & Configurable Network Timeout](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5) | New offline switch permits you to switch between offline and online. It also has a new field that you can change to make offline more sensitive based on your network settings. | | Omnichannel | [Send Sale Fulfillment in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5) | New Omnichannel setting allows merchants to add orders that are Ship to Home from Current Store directly to the store fulfillment (Buy Online, Fulfill In-Store \[BOFIS\]) queue. Inventory movements follow the fulfillment status. | | SPI | [GTIN included in Inventory SPI Spec](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5) | Request for inventory SPI enhanced to include GTIN for merchant lookup | | SPI | [Multiple Order Controller (BORIS)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_config_boris_order_controller.htm&language=en_US) | Ability to support more than one order controller for BORIS if you want to maintain Point of Sale as order controller for all other fulfillment types | | API | [API gateway metrics on CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5) | Monitor API quotas and usage to avoid and more quickly debug timeouts | | Other | [Other Feature Enhancements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_7_1.htm&release=264.0.0&type=5) | Varies | ## Loyalty ## Loyalty (Beta) What it does: Merchants can use their customer creation form to add shoppers to their loyalty program. The POS can apply loyalty rewards passed in the customer's SPI lookup. The customer 360 profile has been improved to make it easier to see and track loyalty customers. It now has badges and more loyalty data. What you can do: - Track customers by their unique Loyalty ID - Display and track available rewards, point balances, and tiers, and integrate them with Customer Profile - Easily identify loyalty members with a badge - Apply customer rewards directly in the cart with a new deep link - Apply rewards as coupons or transaction discounts Learn More: [Point of Sale Loyalty Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_loyalty_overview.htm&release=264.0.0&type=5 "Point of Sale supports loyalty integration. This integration facilitates the search for loyalty customers within the app, and shows and applies available rewards to the cart.") Coming Soon: Additional receipt tags and loyalty enrollment on edit customer flow ## Inventory Management ## Rescan Items in an ASN Receiving What it does: Ability to rescan items in an ASN receiving flow if a mistake is made ![An item shown in the POS app with the Rescan option shown.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rescan.png) Learn More: [Configure Advanced Shipping Notice (ASN) Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_asn_receiving.htm&release=264.0.0&type=5 "Set up accurate inventory receiving, check merchandise against prearrival notifications, and set reason codes for inventory mismatches in Point of Sale.") ## Adding Items to an ASN Receiving What it does: Receive items that weren't originally included in the ASN report but were included in the shipment. The POS app permits you to only get items from the ASN. You can either get more or less than the items that are in the ASN. However, to get items that weren't first listed in the ASN, you can set a flag in the CMS to turn on manual receipt of unspecified items. How to configure: 1. In CMS, go to **Store Management > Store Settings > Inventory** 2. Turn on **Allow ASN Manual Receive Items**![The Inventory section of Point of Sale CMS, where you condigure the Inventory modules.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_asn_manual_receive.png) The POS app checks if the scanned item is present in the product database. If not found, the app provides the user with the option to manually receive it. ![An item showing as missing from the carton in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_asn_item_missing.png) The manually received items are displayed in a dedicated section, and if necessary, you can delete them. Additionally, information about unlisted items is recorded in an event file along with their product details. ![A list of items in a carton received by the merchant, showing in the POS app app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_asn_scanning.png) Learn More: [Configure Advanced Shipping Notice (ASN) Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_asn_receiving.htm&release=264.0.0&type=5 "Set up accurate inventory receiving, check merchandise against prearrival notifications, and set reason codes for inventory mismatches in Point of Sale.") Learn all about Advanced Shipping Notice capability: [Othert in Point of Sale Webhook Summary of Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#retail-cloud-webhook-summary) ## Payments ## Switching Between Tap to Pay and Payment Terminal What it does: Switch between Tap to Pay and a connected terminal in two ways on a register that uses Tap to Pay: from Device Manager, and, if the deep link is set, from the Cart Options layout. This makes it easier to change, especially in a multi tender situation. Via Dvice Manager ![The Tap to Pay tile in the Device Manager](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_tap_pay_tile.png) Via Deep Link ![A deep link to be selected in the Cart Options screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_tap_pay_deep_link.png)![The POS app showing the option to switch from Tap to Pay to a secure terminal.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_tap_pay_terminal_no_dm.png) Learn how to Configure: [Tap to Pay - User Experience](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_tap_pay_ux.htm&release=264.0.0&type=5 "Quickly process customer payments on a Point of Sale register configured to use Tap to Pay.") Enable Tap to Pay Today: [Tap to Pay Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_tap_to_pay_overview.htm&release=264.0.0&type=5 "Accept contactless payments directly on an iPhone using the Point of Sale (POS) app.") ## Offline ## Offline Switch & Configurable Network Timeout What it does: New offline settings let you switch between automatic and manual switching. You can also set a network timeout field to change how sensitive you are offline based on your network settings. How to configure: [https://labs.predictspring.com/cms/stores/configuration/offline](https://labs.predictspring.com/cms/stores/configuration/offline) ![The Offline Configuration section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_config_offline_switch.png) Auto: Indicates the POS automatically switches to Offline Mode in the event of an outage. Manual: Indicates that associates manually switch the POS to Offline Mode in the event of an outage. The POS app retries the request for the specified period, but won't automatically enter Offline Mode. Turn on '[Offline Mode' deep link](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_pos_offline_support_configuration_and_setup.htm&release=264.0.0&type=5 "Turn on and configure offline mode for your POS to confirm continuous operation during network outages.") for this to work. Network Timeout: Time in seconds to wait for a response from Point of Sale. The default is 120 seconds if no value is specified. Learn more about Offline and how to turn on this setting: [POS Offline Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_settings_pos_offline_support.htm&release=264.0.0&type=5 "Continue operating the POS app if the device isn't connected to WiFi or Ethernet, or your internet service is down. Sync the POS app data after you're back online.") ## Omnichannel ## Send Sale Fulfillment in POS What it does: Eliminate the risk of misplacing an order if transferring a Send Sale from cash wrap to back office. Omnichannel’s Ship to Home from Current Store carries an order systematically from transaction complete to order packed and shipped via BOFIS queue and order processing. How to configure: If you turn on Ship to Home From Current Store fulfillment, items in carts with this fulfillment type are allocated to the BOFIS queue for review and packing. ![The Omni Settings section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_omnichannel_1.png)![The Omnichannel settings in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_omni_settings_2.png) Learn more: [Enabling Omni Settings in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_enabling_omni_settings.htm&release=264.0.0&type=5 "Set up Omnichannel fulfillment options in CMS so that your store associates can fulfill orders from the Point of Sale (POS) app.") ## SPI ## Multiple Order Primary SPI What it does: Buy Online, Return In-Store (BORIS) is an order fulfillment method that allows customers to purchase products online and have them shipped to their homes. If customers are unsatisfied with their purchases, they can return them to in store. Merchants can set up an external controller for BORIS orders. They can still use Point of Sale's order management system for all in-store orders. This allows merchants to have a separate ecommerce controller and still process BORIS returns as receipted and referenced. How to configure: 1. In CMS, go to **Integrations > Custom Connectors** 2. Select **Create** in the upper right of the screen 3. Under **Connector Type**, select "**SPI**" 4. Under Endpoint Name, select "**BORIS\_GET\_ORDER\_DETAIL**" 5. Configure the rest of the fields by referring to [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html) 6. Save your changes ![Configuring the Custom Connectors in Point of Sale CMS for getting BORIS order details.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_boris_order.png) Learn more: [Separate Order Controller for Buy Online Return In-Store (BORIS) Orders](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_config_boris_order_controller.htm&language=en_US) If you're using Salesforce as the order controller: [Enable BORIS for SFOMS Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_oms_boris.htm&release=264.0.0&type=5 "Buy Online Return In-Store (BORIS) allows customers to purchase products online and have them shipped. Customers can return the product to a physical store or alternative location if they are unsatisfied with their purchase. Enable Point of Sale's BORIS feature so customers have options for how they receive and return their products. Review the sections and corresponding components in the CMS to get started.") ## Track Inventory by GTIN What it does: If the Inventory SPI is configured, manage inventory by GTIN number by configuring the endpoint ![The SPI endpoint for GTIN in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_gtin.png) Learn how to Configure: [Service Provider Interface (SPI) in Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#service-provider-interface-spi) ## API ## API Gateway Metrics Page What it does: Monitor your API quotas and usage to avoid and more quickly debug timeouts. The table provides descriptions and use cases for the API Usage Settings fields. They aren't editable and are used for API management. They encompass the monthly request limit, usage tracking, rate regulation per second, and burst handling for unexpected surges in a merchant environment. | Field | Field Type | Description | | --- | --- | --- | | Quote | Auto-Generated | Maximum number of permitted API requests per month | | Remaining Quota | Auto-Generated | Number of API requests remaining for current month | | Rate Limit | Auto-Generated | Maximum number of API requests allowed per second | | Burst Rate Limit | Auto-Generated | Maximum number of API requests allowed in a burst that exceeds API rate limit | Learn more: [Merchant Configuration and API Integration Fields](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_merch_config.htm&release=264.0.0&type=5 "Merchants in the CMS have key properties such as their name, locale, region, and currency support. Using Cloud configuration details, Point of Sale connects to the merchant's e-commerce platform. View the merchant's developer credentials, API keys, and related API usage details for efficient API management. You can also determine if the environment is active and if it's a store merchant.") ![The API Usage tab in the Merchant COnfiguration section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_api_usage.png) Access to CMS Page: [https://labs.predictspring.com/user/login](https://labs.predictspring.com/user/login) ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | New Receipt Tags: PS Print Receipt Tags for Attributed Associate and email and print financing tender tags | New receipt tags to show number of associate attributed to a sale (that is, for commission purposes) and financing tender information. An attributed associate name is available with our next release along with the email tags for attributed associate. | [Attributed Associate Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_list.htm&release=264.0.0&type=5 "Show dynamic data in your layouts by using Point of Sale print tags as placeholders. Each tag includes its description, location, receipt components, group list, and data mapping. Grouped lists output multiple data points for each tag."), [Finance](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_configure.htm&release=264.0.0&type=5 "Integrate Point of Sale CMS with your finance systems using the new payment gateway integration. You can now configure systems such as Synchrony and Nebraska Furniture Mart. Streamline your financial processes and gain better control over payment transactions. Accept payments seamlessly through your Point of Sale CMS.") | | ASN reports in CMS | Now requires an input to be made before getting report back to optimize the speed. | [https://labs.predictspring.com/user/login](https://labs.predictspring.com/user/login) | # JavaScript in HTML Attributes Allowed Only with Strong Authentication Beginning with this release, for security reasons, only Business Manager users with strong authentication, such as through multi-factor authentication with Account Manager, can embed JavaScript in HTML attributes. To make it easier to adjust to this change, a Business Manager user with strong authentication can temporarily allow users without strong authentication to include JavaScript in HTML attributes. How: To temporarily allow users without strong authentication to include JavaScript in HTML attributes, a strongly authenticated Business Manager user goes to **Administration** | **Global Preferences** | **JavaScript in Attributes** and clicks **Enable**. For one hour, users without strong authentication can embed JavaScript in HTML attributes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Separate from the issue of JavaScript in HTML attributes, Salesforce strongly recommends that you implement multi-factor authentication for all Business Manager users. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note This release note was updated for clarity. #### See Also - [JavaScript in HTML Attributes](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_javascript_in_html_attributes.html) # JobExecution Updates for OCAPI 21.10 The JobExecution document has a new property `log_file_path`, that specifies the full WebDAV path of the log file. The property `log_file_name` has been removed. # Jobs Review the new B2C Commerce Jobs feature in the 20.1 release. - **[Select All Storefront Sites or Site Parameter for Job Flow Scope](https://help.salesforce.com/s/articleView?id=commerce.b2c_19_11_w6883116_job_scopes_la.htm&release=264.0.0&type=5)** When you create a job flow, you can now select from four options for flow scope: Organization, All Storefront Sites, Specific Sites, and Site Parameter. The two new options, All Storefront Sites and Site Parameter, allow you to more easily specify which sites to include in the scope. # Jobs Review the new B2C Commerce Jobs feature in the 20.6 release. - **[Jobs Automatically Resume After Unplanned Events](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_w7571810_job_restart_la.htm&release=264.0.0&type=5)** If an unplanned event, for example an app server crash, interrupts a job running on the new job framework, the job automatically resumes. The job step in progress during the interruption and all subsequent job steps are executed. If the B2C Commerce or custom code version changed since the job started, the job is restarted from the beginning. If you restarted the instance or if the app server is shut down as part of a maintenance operation, the job is not resumed or restarted. # Jobs Review the new B2C Commerce Jobs feature in the 20.8 release. - **[ExportOrders Job Step Order Status Behavior Updated](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_w7778884_exportorders_job_step_as.htm&release=264.0.0&type=5)** Three parameters on the ExportOrders job step have changed. The Export Status default value is now `Ready for Export`, and the Created and Failed parameters have been deprecated. # Jobs Automatically Resume After Unplanned Events If an unplanned event, for example an app server crash, interrupts a job running on the new job framework, the job automatically resumes. The job step in progress during the interruption and all subsequent job steps are executed. If the B2C Commerce or custom code version changed since the job started, the job is restarted from the beginning. If you restarted the instance or if the app server is shut down as part of a maintenance operation, the job is not resumed or restarted. # July 2024 SCAPI release, SCAPI fixes, and SLAS Release with the B2C Commerce 24.8 release: For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI Release With B2C Commerce version 24.8.0 - Server-side Web0Tier Caching is automatically turned on for: - All (1) SBX and ODS instances - PRD instances that don't use use hooks in their [Shopper Search API](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=Summary) `productSearch` and `getSearchSuggestions` endpoints. For details, see: [Server-Side Web-Tier Caching](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=Summary). SCAPI Release With B2C Commerce version 24.7.2 - [Preferences API](https://developer.salesforce.com/docs/commerce/commerce-api/references/preferences?meta=Summary) - Returns the value of the most recent custom preference ID version if the preference ID definition is changed. SLAS Release With B2C Commerce version 24.7.2 - SLAS infrastructure updated in preparation for the holiday season. - To enhance security for the Shopper Login API Access Service (SLAS), a channel\_id (site) parameter is now required when requesting a guest access token with a grant\_type of client\_credentials . This change prevents unauthorized access across different storefronts. Existing customers must update their implementation to include the channel\_id parameter in the client credential call in guest flows by 7/31/2024. For details, see [Guest Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#guest-tokens). - Total number of scopes is now limited to 85 entries, which is enforced in both the SLAS API and SLAS Admin UI. - Added client credentials to the POST body when refreshing an access\_token from IDP. You can control this using a flag in the SLAS-IDP configuration. For details, refer to the documentation for the SLAS Admin IdentityProvider endpoint. # July 2025 SCAPI and SLAS For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI: - Enabled on all instances, including Production (PRD): API path and parameter validation based on the OAS standard. - You can now more conveniently grant client applications access to multiple sandboxes. This speeds up the provisioning of development environments. SLAS: - [Hybrid Auth](https://developer.salesforce.com/docs/commerce/commerce-api/guide/hybrid-authentication.html): Support added for SLAS public clients and SFRA Storefront Protection. - To enhance security and align with OAuth 2.1 specifications, reuse of the same `refresh_token` for public clients is now prohibited. Implement one-time usage for the `refresh_token`, using the new `refresh_token` issued by SLAS on each `/token` call. For details, see [Access Tokens and Refresh Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#access-tokens-and-refresh-tokens). # July Build Summary (10.2.1) Build summary for Modern POS version 10.1.1, including what new features and changes it contains | Theme | Feature | Benefit | | --- | --- | --- | | Returns / Refunds / Exchanges | [Appeasements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5) | Allows store associates to apply discounts at both item and order levels, facilitating partial refunds for reasons such as delayed deliveries, damaged goods, or other unforeseen issues. | | Inventory Management | [Inventory Overview with Filter by Style](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5) | Ability to see your store's inventory by style (variant group id). Users can select a product to view detailed information for each variant of the product, including size, color, and variant group ID. | | Analytics / Reporting | [Reporting ‌Top Styles Sold](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5) | See your top products sold to help you make selling and restocking decisions. | | Analytics / Reporting | [Customer Signups Report in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5) | New report in CMS that shows you the health of your clienteling and acquisition efforts. This report provides you with the ability to track and measure customer signups, loyalty, and number of guest vs. customer-linked checkouts. | | Analytics / Reporting | [BORIS as Value in GMV Report in CMS and App](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5) | If you have Buy Online, Return In-Store enabled, you can now see how much was refunded as a line in our GMV report on App and CMS. This is useful in cases where you permit ecommerce returns in-store but measure performance on net sales vs. gross. | | Analytics / Reporting | [Sales Metrics Label Revisions](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5) | Updated labels for sales metrics to industry standards. No calculations were changed, only the names/titles. | | Core Platform | [Gift Registry](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5) | Ability to search, sell, and return products from a Gift Registry that is made available through our new SPI. | | Cash Management | [Cash Drawer Open at Start of Create Till](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5) | Updated till operations that permit store managers to count the cash before making a till. This is useful if you can’t remove the cash from the registers after closing the store. | | Other | [Various](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_2_1.htm&release=264.0.0&type=5) |   | ## Returns/Refunds/Exchanges ## Appeasements What it does: Store associates can edit an order after it's been completed/fulfilled to provide a partial refund to provide appeasement to the customer at the item or order level (for any reason, such as a price match, delayed shipment, damaged item, poor customer experience, or overcharge). Setting up is a three-step process: Configure the level of edit order you want to permit, set up the discount reason codes for item and order levels, and lastly, verify you have the correct approval policy set up and reason codes to limit edit orders and appeasement to specific roles. 1. To turn on edit order (including Appeasements): 1. In the CMS, go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Specify the types of edit order flows you want to approve under **Allow Editing of Order (editOrderOptions)**, select one of these options: - **EDIT\_ORDER**: Permits online orders to be edited (for example delete products, cancel order). This behaves the same as "**Allow Editing of Order" (allowEditOrder)**\*. For more information on edit order functionalities and how they work, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_process_edit.htm&release=264.0.0&type=5 "With the POS app, you can change an order after it's placed but before it's fulfilled. Update quantities, remove items, or apply discounts to meet your customers' changing needs. Quickly adapt to requests and ensure order accuracy, leading to increased customer satisfaction and efficient service."). - **APPEASEMENT**: Permits price overrides on both in-store and online products. - **EDIT\_ORDER\_AND\_APPEASEMENT**: Permits all functionalities supported in both order editing and appeasements - **NOT\_ALLOWED**: Doesn't permit online orders to be edited (for example delete products, cancel order). This behaves the same as if "**Allow Editing of Order" (allowEditOrder)\*** is turned off. 4. **Under Appeasement Policy Window In Days (appeasementPolicyWindowInDays)**, set the number of days allowed for editing an order. For example, if the window is set to 5 days, line item price overrides and transaction discounts won't be allowed after five days. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note All appeasement-related functionality adheres to the rules of the appeasement window: - **EDIT\_ORDER**: Appeasement window is irrelevant - **APPEASEMENT**: If window has passed, no discounts can be applied at either the line or order level - **EDIT\_ORDER\_AND\_APPEASEMENT**: If window has passed, discounts can only be applied at the order level, not at the item level - **NOT\_ALLOWED**: Not applicable as order editing isn't allowed The "Allow Editing of Order" (allowEditOrder) flag will be deprecated and is currently supported only for app builds before version 10.2.1. For app builds 10.2.1 and later, use "Allow Editing of Order" (editOrderOptions), as the POS app doesn’t support the allowEditOrder flag. ![The Appeasement Policies in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_appeasements_1.png) 2. Create reason codes: 1. In CMS, go to **Store Management > Reason Codes**. 2. Create codes for **Item Level Discount** and **Transaction Level Discount**. For more detailed instructions, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments."). 3. Create an approval return policy: 1. In CMS, go to **Store Management > Associates > Return Policy Configuration**. 2. Select **Create** in the upper right. 3. Under **Policy Feature**, select "**Appeasement**." 4. Under **Approval Roles**, select the roles allowed to complete appeasements on the POS app.![The Create Associate Approval Policy section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_appeasements_2.png) Learn more: [Configuring Appeasements on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_appeasements_overview.htm&release=264.0.0&type=5 "Store associates can provide a partial refund to provide appeasement to the customer at the item or order-level (for any reason, for example such as a price match, delayed shipment, damaged item, poor customer experience, or overcharge). If appeasements are enabled and configured in Point of Sale CMS, associates can modify an order via Order History on the POS app and start the appeasement flow.") ## Inventory Management ## Inventory Overview with Filter by Style What it does: See your store's inventory by style (variant group ID). Users can ‌select a product to view detailed information for each variant of the product, including size, color, and variant group ID. How to access on app: Configure the deep link in the menu where you want to access this report from: 1. Edit a layout, hamburger menu, or a tab. 2. Using the deep link picker, go to **Store Associate > Inventory Management**. 3. Select "**Inventory Overview**". 4. Save your changes.![The Inventory Management screen in the POS app, grouped by Variant Group ID.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_inventory_overview.png) Learn more: [Inventory Overview in POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_view_product_inventory.htm&release=264.0.0&type=5 "View inventory at the item or variant group level, and based on inventory buckets.") ## Analytics/Reporting ## Reporting for Top Styles Sold—Available in App and CMS What it does: New report in App and CMS allow you to see your top products sold to help you make selling and restocking decisions. How to configure on app: Configure the deep link in the menu where you want to access this report from: 1. Edit a layout, hamburger menu, or a tab. 2. Using the deep link picker, go to **Reporting**. 3. Select "**Top-selling Products Report**". 4. Save your changes. ![The Top-selling Products Report in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_top_styles.png) How to access on CMS: 1. Go to **Reporting and Analytics > Report Builder**. 2. Under **Report Type**, select "**Products Sold**." 3. Under **Group Report By**, select "**Style**." 4. Configure the rest of the filters as needed. The report shows the product title, style (variant group ID), number of units sold, and gross sales (GMV). By default, the report displays results in descending order by units sold. Users have the option to download the report as a CSV file. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note While each column can be sorted, the sorting applies only to the current page and not to the entire dataset. ![The Report Builder in Point of Sale CMS, filtered to Products Sold.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_product_sold.png) Learn more: [View Top Styles Sold Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_orders_top_styles_report.htm&release=264.0.0&type=5 "Identify popular products and optimize inventory. Use the report in Point of Sale CMS to view product title, style, units sold, and gross sales data. In the point of sale (POS) app, filter the report by SKU or style and display results for the current store or all stores.") ## Customer Signups Report in CMS What it does: New report in CMS that shows you the health of your clienteling and acquisition efforts. This report provides you with the ability to track and measure customer signups, loyalty, and number of guest vs. customer-linked checkouts. You can group the report by stores if you want to see how your store is doing. You can also group by associates if you want to see how each person is doing. How to access: The report can be accessed in CMS by going to **Store Management > Reporting and Analytics > Customer Signups.** | Column | Description | | --- | --- | | Store ID | Unique identifier of store. Note, this is only shown ‌if grouping results by "Store" | | Customer Profiles Created | Number of customer profiles created for the specified store. Note, this number is the total count of successful calls to the customer creation API for a unique customer ID. | | Customer Profile Edits | Number of edits made on customer profiles for the specified store | | Loyalty Sign-ups | Number of loyalty sign-ups created for the specified store | | Collections Sent | Number of collections created and shared for the specified store | | Order Count | Number of orders completed for the specified store | **Grouping the report by associate:** When the report is grouped by associates, it displays associate-level aggregates of the below metrics: | Column | Description | | --- | --- | | Associate ID | Unique identifier of store associates. Note, this is only shown if grouping results by "Associate" | | Customer Profiles Created | Number of customer profiles created for the specified associate. This number is the total count of successful calls to the customer creation API for a unique customer ID. | | Customer Profile Edits | Number of edits made on customer profiles for the specified associate | | Loyalty Sign-ups | Number of loyalty sign-ups created for the specified associate | | Collections Sent | Number of collections created and shared for the specified associate | | Order Count | Number of orders completed for the specified associate | Learn more: [Customer Signups Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_customer_signups.htm&release=264.0.0&type=5 "Analyze customer signups, loyalty, and the ratio of guest checkouts to customer-linked checkouts.") ## BORIS as Value in GMV Report in CMS and App If you have Buy Online, Return In-Store (BORIS) enabled, you can now see how much was refunded in our GMV report on App and CMS. This is useful in cases where you permit ecommerce returns in-store but measure performance on net sales vs. gross. How to configure: Configure the deep link in the menu where you want to access this report from: 1. Edit a layout or hamburger menu. 2. Using the deep link picker, go to **Reporting > Store Sales Report with Register Breakdown.** 3. Set the link and save your changes. Learn more: [Sales and Hourly Sales Reports](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_sales_hourly_reports.htm&release=264.0.0&type=5 "Configure and access total and hourly sales reports in the Point of Sale (POS) app.") ![The Store Sales Report with Register Breakdown on the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_sales_breakdwn.png) ## Sales Metrics Label Revisions What it does: Updated labels for sales metrics to industry standards. No calculations were changed, only the names/titles. Learn more: [Sales Reporting Glossary of Terms and Definitions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_sales_reporting_glossary.htm&release=264.0.0&type=5 "To understand sales data, use this glossary of terms commonly seen in sales and app reports in Point of Sale.") ## Core Platform ## Gift Registry What it does: Ability to search, sell, and return products from a Gift Registry that is made available through our new SPI. ![The POS app shows a list of products in a registry.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_access_3.png) Learn more: [Managing Gift Registries on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types_gift_registries.htm&release=264.0.0&type=5 "Gift registries are supported in the POS app through an SPI. Using the SPI, businesses can access gift registries. Shoppers can make purchases off the registrant's list that can be noted back for the correct amount updates. Registrants can also use the store POS to return registry items in one transaction, irrespective of how many orders those items originated from") ## Cash Management ## Cash Drawer Open at Start of Create Till What it does: Updated till operations that permit store management to open the drawer before creating a till. This is best used in circumstances where you don’t remove the cash from the registers if closing the store and want to count before creating the till. ![The POS App showing the till's starting cash amount, with the Create Till option at the bottom.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_create_till.png) If the drawer is opened, it'll be recorded in the Electronic Journal as "No Sale" with a system-generated reason code of "Till Creation." The store associate can access the cash in the drawer. Note that the till won't be created until the starting amount is entered, and "Create Till" is selected. Learn more: [Till Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_till_mgmt.htm&release=264.0.0&type=5 "Use the Point of Sale (POS) app to manage tills in-store and reconcile all tills at the same time.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Handling refunds for cash when cash isn't configured for a register as a tender type | If cash isn't a configured tender type for a register but is configured at the store level, users attempting to process a refund via cash encounter an error message indicating that cash refunds aren't available. They'll be unable to select cash as a refund method and need to select an alternative refund method. | [Returns & Exchanges](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_exchanges_overview.htm&release=264.0.0&type=5 "Shoppers can return and exchange products in the POS app. Exchanges are defined by any return transaction that also includes a sale.") | | Capture Customer Details Offline | Enhanced UI on capturing customer info in Offline Mode | [Capturing Customer Information for Sales](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customer_info_sales.htm&release=264.0.0&type=5 "Configure a layout to show customer information such as name, email address, address, and other details to show associates in the Point of Sale (POS) app during a sale.") | | Star MC Print 2 | Certification for Star receipt printer | [Supported Hardware](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") | # July Build Summary (11.2.1) Build summary for Modern POS version 11.2.1, including what new features and changes it contains.
Section Feature
Clienteling Streamline and Track Customer Deletion
Core Platform
Loyalty Boost Customer Confidence with Clear Loyalty Reward Information at Checkout
POS Mobile Control Multi Tender Payment Options
Other Various
## Clienteling ## Streamline and Track Customer Deletion What it does: You can now delete customer records using either the customer’s ID or email address. You can also track deletion requests with real-time visibility into the status of each request. This updated flexibility helps merchants meet data privacy standards like GDPR and CCPA more efficiently by streamlining the deletion process and improving audit readiness and operational transparency. ![The Delete Customer Data settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_del_cust_data.png) How to configure in CMS: In CMS, set the new **Delete Customer Data** by setting if deleting customer data. Use the **Customer Data Deletion Tracker** to check the status of your deletion request. Learn more: [CMS User Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_user_management.htm&release=264.0.0&type=5 "Customize users in CMS to control access to reports, configurations, and other features within a company.") ## Core Platform ## Support Transparent and Flexible Shipping Information for POS Associates and Shoppers What it does: Show shipping charges and discounts at the item level in the POS app and on customer receipts. Previously, the POS system showed only the delivery group level shipping fees, which created misalignment on shipping charges between merchants and customers. Retail associates can now process checkout, refunds, and exchanges with more accuracy and shoppers can see item-level breakdowns of shipping fees and discounts. By not using shipping promotions set in the CMS that target whole delivery groups, you can keep revenue accurate and prevent overdiscounting and overrefunding of shipping fees. ![The Checkout Screen in the POS app that shows a shipping discount.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_shipping_discount.png) How to configure in CMS: 1. Enable and configure the [Delivery Groups SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_delivery_groups.htm&language=en_US). 2. Turn off any custom shipping method SPIs. 3. To provide the shipping cost in the Delivery Group SPI, first delete or turn off any No-cost Shipping promotions you’ve configured in CMS. 4. On your Sales print receipt template, add the print receipt tag for item-level shipping discounts: ps\_p\_item\_shipping\_discount\_text. 5. On email receipt templates, add these available etags: {item\_shipping\_charge}, {item\_shipping\_discount}, {item\_shipping\_discount\_text}. Learn more: - [No-Cost Shipping Promotion](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_no_cost_shipping.htm&release=264.0.0&type=5 "Create promotions in Point of Sale CMS that automatically apply no-cost shipping to eligible orders at checkout on the Point of Sale (POS) app.") - [Delivery Groups SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_delivery_groups.htm&language=en_US) - [Comprehensive Print Tags List](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_list.htm&release=264.0.0&type=5 "Show dynamic data in your layouts by using Point of Sale print tags as placeholders. Each tag includes its description, location, receipt components, group list, and data mapping. Grouped lists output multiple data points for each tag.") ## Streamline Region Access for CMS Users What it does: Assign access for a CMS user to all regions or only the region, they’re created in. Previously, if you wanted a user to access all regions in your merchant account, you had to manually add them to each region. This new setting reduces setup time, minimizes manual configuration, and verifies region permissions are consistently applied during user creation. It’s especially helpful for global merchants who manage users across multiple regions. ![The Add CMS User window with User Type configured in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_add_cms_user.png) How to configure in CMS: In CMS, set the new **User Type** setting if adding a new CMS user. Learn more: [CMS User Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_user_management.htm&release=264.0.0&type=5 "Customize users in CMS to control access to reports, configurations, and other features within a company.") ## Loyalty ## Boost Customer Confidence with Clear Loyalty Reward Information at Checkout What it does: Clearly show customers the total reward points available and the monetary value of the points. With this information, customers and store associates can better understand the value of loyalty points and track their loyalty rewards balances. With improved tracking of reward point balances, the POS system can enforce redemption limits accurately and show clear errors. ![The Transaction Rewards marked for a transaction discount in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_loyalty_rewards_pos.png) How to configure in CMS: No configuration needed as this is the new default behavior. Learn more: [Point of Sale Loyalty SPIs](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_loyalty_spis.htm&release=264.0.0&type=5 "Use Point of Sale's SPI to connect your loyalty program to the POS app. Make it easier to find loyalty customers and show rewards.") ## POS Mobile ## Control Multi Tender Payment Options What it does: You can now easily hide payment options that you don’t want available for a split payment. Before this change, deleting a payment option from the Multi-Tender Display Order deleted the tender option completely. Now you can easily control which of your supported tender options are available to customers using a split payment. How to configure in CMS: 1. In CMS, go to **Apps | All** and edit a selected app. 2. In your app settings, go to **Modules | POS**. 3. Edit the **Multi Tender Display**. 4. To hide a tender option from the multi tender screen at checkout, select the trash can icon (1) to delete it.![The trash can icon to delete a multi tender payment method in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_multitender_pay.png) Learn more: [Configure Multiple Tenders for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_multitender_config.htm&release=264.0.0&type=5 "Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Reconcile Transactions More Efficiently with Acquirer Reference Data | Acquirer Reference numbers are now available in order to export reports. Easily reconcile transactions, like gift card redemptions, with this new information. Acquirer reference numbers help you reconcile data more effectively for internal audits, enhancing compliance and risk management. | [Purchase Order](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_purchase_order.htm&release=264.0.0&type=5 "Explore a detailed list of Point of Sale purchase order deep links each with a clear description and supported context. Use these links to help users quickly navigate to purchase order creation and history, enhancing their experience and streamlining retail operations.") | | Capture Discounts, Tariffs, and Punchout SKUs in Salesforce Order Management Integration | Native integration between POS and Salesforce Order Management (SF OMS) now supports sending additional order-level data. This includes discount codes and promotion names applied at checkout, tariff amounts collected as part of the order, and CustomSKU values used in Punchout transactions. | [SF OMS CMS Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_sf_int_sfoms.htm&release=264.0.0&type=5 "Discover the steps to configure the Salesforce Order Management System (OMS) in CMS. Point of Sale platform has an inbuilt Salesforce OMS connector. The connector is built on the best practices and collaboration with the Salesforce team.") | # July Build Summary (9.2.1) Build summary for Modern POS version 9.2.1, including what new features and changes it contains. ## Overview of All Features | Theme | Feature | | --- | --- | | Analytics / Reporting | [Sales Reporting Terms Defined](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | | Analytics / Reporting | [Associate Sales Attribution Report on POS and CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | | Analytics / Reporting | [Associate Login Report](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | | Core Platform | [UI Enhancement to Product Cell in Returns Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | | Core Platform | [Return and Exchange Policy Approval](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | | Core Platform | [Suspend Cart if Any Items Are in Cart at Time of Auto Log-off of Associate](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | | Core Platform | [No Profile, No Card, No Receipt Returns](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | | Receipts | [Enhancements to Receipt Tags and How They Render in Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | | Clienteling SPI | [Customer Segments in POS and App](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | | Clienteling SPI | [Validate Customer Profile Address from SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_2_1.htm&release=264.0.0&type=5) | ## Analytics/Reporting ## Sales Reporting Terms Defined What it does: Check out our glossary of terms seen in CMS and App reports. There you can find definitions and calculations for metrics like GMV, Order Count, Net Sales, Taxes from Gross Sales, and so on Learn More: [Sales Reporting Glossary of Terms and Definitions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_sales_reporting_glossary.htm&release=264.0.0&type=5 "To understand sales data, use this glossary of terms commonly seen in sales and app reports in Point of Sale.") ## Associate Sales Attribution Report on POS and CMS What it does: Point of Sale's [Sales Attribution](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_track_sales_attribution.htm&release=264.0.0&type=5 "Set sales attribution at either the order level or the item level so associates can get credit for the sales they make and you can track their performance.") report allows merchants to predict commissions and measure performance. This comprehensive report is accessible on both the POS app and CMS. It presents a concise summary of sales and returns attributed to each sales associate, allowing merchants to view insights into their performance. The attributed sales ‌vary from the sales where the associate completed the transaction. How to access in CMS: [Enable Store Associate Sales Attribution](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_track_sales_attribution_associate.htm&release=264.0.0&type=5 "Give store associates credit for assisting customers with their purchases. By default, products added to the cart are attributed to the logged-in store associate, but you can change the default attribution to a different associate. You can also attribute individual products to specific store associates. This ensures accurate sales tracking and performance measurement.") ![The SA attrubution report in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_sales_terms.png) How to configure in the App: 1. In CMS, go to **Layouts > Layout Templates > Hamburger Menu**. 2. Edit an existing menu or create one. 3. Using the deep link picker, go to **Store Associate > Associate Sales Attribution Report**. 4. Set and save the changes. 5. Access the report via the deep link you set up. ![The Associate Sales Attribution Report in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_sales_attribute_pos_app.png) ## Associate Login Report What it does: The associate login report provides a reference to log in information for all registered store associates in the CMS and POS app. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note In the CMS, the report displays the store ID while the POS app shows data only for the associate's store. How to access in CMS: [Access Associate Login Report in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_associate_login_report.htm&release=264.0.0&type=5 "View a store associate's ID, full name, and last login date and time. Use the report in both Point of Sale CMS and the Point of Sale (POS) app to monitor associate activity. Customize the report by date to view specific timeframes.") ![The Assocaite Login Report screen in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_associate_login_csv.png) How to configure in the App: 1. In CMS, go to **Layouts > Layout Templates > Hamburger Menu**. 2. Edit an existing menu or create one. 3. Using the deep link picker, go to **Store Associate > Associate Login Report**. 4. Set and save the changes. 5. Access the report via the deep link you set up. ![The Store Associate information shown in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_store_assocaite_info.png) ## Core POS ## UI Enhancement to Product Cell in Return Flow What it does: For app builds 9.1.2 and greater, the return product checkbox is replaced by a switch. Additionally, the user is prompted for the number of returns if a product's quantity is more than one. Learn more about returns and exchanges [here](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns.htm&release=264.0.0&type=5 "Point of Sale provides flexible return options, including Buy Online Return In Store (BORIS), appeasements, and No Receipt Returns (NRR), to meet customer needs. Point of Sale also validates refunds to prevent fraud. Shoppers can return and exchange products at the point of sale (POS)."). ![A shopping cart in the POS app with the Return this product switch turned on.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_return_product.png) ## Return and Exchange Policy Approval What it does: With POS Builds 9.2.1 or greater, you now have the ability to require manager approval for returns or exchange transactions regardless of whether they fall within the return window or not. Previous versions allow the merchant to configure manager approval only for returns outside the return window. Learn more about store associate approval policies [here](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_approval_policies.htm&release=264.0.0&type=5 "Control which features and roles in Point of Sale CMS require approval."). How to configure: [https://labs.predictspring.com/cms/associate-policies](https://labs.predictspring.com/cms/associate-policies) 1. Select **Create** on the top-right of the approval policies page. 2. Select **All Returns, Exchanges & Edit Orders** 3. Select **Approving Roles** that can approve this policy (for example **Store Associate**, **Senior Associate**). 4. Select **Save**.![Create Associate Approval Policy Modal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_create_associate_modal.png) ## Auto Suspend Cart What it does: With builds 9.2.1 and later, you not only can manually suspend and save a cart; you can have a cart auto-suspended either after the associate logs out, if there are contents in the cart or after the app times out. [Learn more](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_process_suspend_cart.htm&release=264.0.0&type=5 "The Point of Sale platform supports a feature that allows store associates to save a cart and resume and complete it later. By saving a cart, the totals, discounts, customer information (including shipping/billing addresses), and shipping methods will be put on pause until the associate chooses to resume it.") ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Auto-Suspend won't function while in offline mode. ## No Profile, No Card, No Receipt Returns Refresher + Reason Code What it does: No Profile, No Card, No Receipt Returns feature allows a return of an item without a purchase receipt or even customer profile details. The returns and exchanges supported as part of No-Receipt Returns are listed: - Returning an item or multiple items (that is, pure return) - Returning item(s) along with a purchase where a customer still gets a refund - Returning item(s) along with a purchase where a customer makes a payment - Exchanging (even exchange) an item or multiple items - Exchanging (even exchange) item(s) with purchase To create NRR Price Correction [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments."): 1. In CMS, go to **Store Management > Reason Codes**. 2. Select **Return Price Correction**. 3. Select **Create** in the upper right and fill out the required fields. 4. Save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The Reason Code is reported in the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") and [TLogs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog.htm&language=en_US) along with the before-and-after price corrections. ## Receipts ## Enhancements to Receipt Tags and How they Render in Layouts What it does: Starting with POS version 9.2.1, if the "=IF" function returns an empty string, the receipt line is truncated, thus removing the empty row where the "=IF" function result ‌has been. How to configure: [https://labs.predictspring.com/cms/layouts](https://labs.predictspring.com/cms/layouts) (Learn more about Receipt Layouts here) For Example: In a scenario if your customer pays with cash and you have Gift Card Remaining Balance, Cash Tendered Amount, and Cash Change Amount configured in your template, only Cash Tendered Amount and Cash Change Amount shows. ![Payment tender PS tags configured in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_payment-tender_scenario.png)![Example receipt displaying details for a cash payment.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_receipts_tender_functions_result.png) Learn More: [Customize Receipts Using Functions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_receipt_functions.htm&release=264.0.0&type=5 "Functions in Point of Sale receipt layouts dynamically display relevant information, improving clarity and reducing clutter. For instance, cash details are hidden for credit card payments, and employee discount info is omitted for non-employee sales, ensuring a cleaner, more user-friendly receipt.") ## Clienteling SPI ## Applying Customer Groups to Promotions What it does: Create targeted promotions tailored for specific customer groups. How to configure the layout: 1. In the merchant's external system, configure Salesforce's [Clienteling SPI](https://app.swaggerhub.com/search). 2. In CMS, configure a Customer Sign-up layout by going to **Layouts > Layout Pages**. 3. Add a new field for **Customer Groups**.![The Add New Customer screen in the POS app with the Customer Group field highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_new_cust_group.png)![The textfield for adding Customer Group in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_textfield_cust_group.png) 4. Configure the [rest of the fields](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_sign_up.htm&release=264.0.0&type=5 "Point of Sale enables businesses to boost customer engagement and loyalty by setting up a new customer sign-up layout. Customers can easily create accounts, subscribe to newsletters, and join rewards programs, enhancing their overall experience and driving long-term retention."). How to configure the customer group-specific promotion: 1. In CMS, create a promotion by going to **Promotions**. 2. Select the type of promotion. 3. Under **Basic Promotion Information**, enter the required fields.![The Basic Promotion Info in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_promotion_info_1.png) 4. Under **Promotion Configuration**, configure the promotion discounts.![Promotion info configured in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_promotion_info_2.png) 5. Go to **Customer** and create a **Customer Group**.![Customer Groups configured for promotions in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_promotion_info_3.png) 6. Fill out the [rest of the fields](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&release=264.0.0&type=5 "Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes."). 7. Save the changes. How it functions: - If signing up a new customer in the POS app, the value entered in the Customer Group field will be saved to Salesforce’s Backend. - If a customer group-specific promotion is successfully applied to an order, and the customer completes the checkout process, the customer's group attributes are automatically logged in the TLogs and Exports. Learn More: [Apply Customer Groups to Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_apply_customer_groups_to_promotions.htm&release=264.0.0&type=5 "Merchants can create targeted promotions tailored for specific customer groups, for example veterans, teachers, which are defined in their customer records. By using the customerGroup attribute, shared across the SPI and Salesforce fields, merchants can efficiently apply these targeted promotions to groups of customers. This functionality is supported via Point of Sale's SPIs and Salesforce Sales Cloud (SFSC). For NetSuite customers, contact a Retail Cloud representative for custom mapping instructions.") ## Validate Customer Profile Address from SPI What it does: If the CRM isn't complete or doesn't have a valid shipping address, Salesforce can check the customer's address before an order is placed. How to configure: 1. In the merchant's CRM system, configure the [Clienteling SPI](https://app.swaggerhub.com/search). 2. Configure the endpoints of the merchant's third-party integration in CMS by going to [Integrations > Custom API Connectors](https://labs.predictspring.com/cms/custom-api). 3. In CMS, go to **Apps > All**. 4. Edit the app configuration(s) to have address validation. 5. Go to **Modules > Settings**. 6. Turn on **Enable Address Verification**. Learn More: [Validating Customer Profile Address on Cart](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_validate_profile_addresses.htm&release=264.0.0&type=5 "Integrate the Clienteling SPI to check a customer’s address before placing an order.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | PS Inventory Lookup API | By setting up your inventory API with Salesforce, you can call Salesforce to see where your products are in a store or all stores. | [Application Programming Interface (API)](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#application-programming-interface-api) in Point of Sale API, SPI, and Webhook Specs | | New Language Support: Simplified Chinese and Catalan | Out-of-the-box support for Simplified Chinese and Catalan! | [Region Support in POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_region_support.htm&release=264.0.0&type=5 "Localize the POS app to make sure that your users see the correct language and region. Change the language in the app by setting the language in the device or by using the region deep link to switch the app language, independent of the device's language.") | | Ireland Cash Rounding | Out-of-the-box support for regional cash rounding requirements. | [Currency Rounding in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_cash_rounding_in_retail_pos.htm&release=264.0.0&type=5 "Currency rounding is the practice of rounding order totals to some monetary increment. Currency rounding is common in countries where rounding is legally required (like Canada, Australia, South Korea), and in other countries where smaller coins are phased out. Salesforce POS supports multiple rounding scenarios, including calculation-driven, cash, currency specific, and currency conversions. This support ensures smoother cash handling and accurate change, enhancing customer shopping experiences and precise transactions for accurate sales reporting. Configure cash rounding in CMS and review rounding behavior for sales, returns, and exchanges.") | | Reversal for SVS Failure | If attempting to issue a gift card with an invalid number, the activation process fails. | [Configure Gift Card Payments in Payment Terminal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_config_gift_cards_terminal.htm&release=264.0.0&type=5 "Configure Point of Sale's Point of Sale (POS) to accept gift card payments, add value, cash out, and check balances, using a payment terminal. Merchants can select the integration approach that suits their needs, verifying all transactions are available through gateway reporting.") | | Verifone Payments and Onboarding | Updated onboarding steps for using the Verifone Payment terminals. | [Verifone Payment Onboarding](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_payment_onboarding.htm&release=264.0.0&type=5 "This article goes over the onboarding steps for using the Verifone Payments terminals with Point of Sale.") | # June 2024 SCAPI release, SCAPI fixes, and SLAS Release with the B2C Commerce 24.7 release: For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI Release With B2C Commerce version 24.7.0 - [Collect Request Details](https://developer.salesforce.com/docs/commerce/commerce-api/guide/collect-request-details.html) for SCAPI requests by using the HTTP request header sfdc\_verbose: true. - Merchants and developers can update the status of redeemed coupons using the new [Coupons API](https://developer.salesforce.com/docs/commerce/commerce-api/references/coupons?meta=Summary) `redeemCoupon` endpoint. - Use the [SEO API](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-seo?meta=Summary) to upload a custom sitemap and trigger the sitemap generation process. You can now combine your external routes with those in B2C Commerce in a single sitemap. - [Shopper Context API](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-context?meta=Summary) - Now provides enhanced geolocation capabilities. For details, see [Shopper Geolocation.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/shopper-context-geolocation.html) - Checkout APIs - For Shopper Baskets [v1](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets?meta=Summary) and [v2](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets-v2?meta=Summary) `createBasket` and `updateBasket` endpoints, the product line item quantity limit is now set to the API quota [`api.basket.productLineItemQuantity`](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/upcoming/quota/html/API_Quotas.html#category_Basket) of 1000, and the API no longer returns a 400 Bad Request for values greater than 999. - In addition, the 999 product line item quantity limit on [`createOrders`](https://developer.salesforce.com/docs/commerce/commerce-api/references/orders?meta=createOrders) is removed, and the quantity set by this endpoint is now unlimited. With B2C Commerce version 24.7.1 - [Shopper Context API](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-context?meta=Summary) - Now requires a `siteId` to be passed. For details, see the [Shopper Context Guide](https://developer.salesforce.com/docs/commerce/commerce-api/guide/shopper-context-api.html#constraints). - Constraints have been relaxed, and all SCAPI and OCAPI endpoints are now fully compatible with Shopper Context. For details, see [Shopper Context Constraints](https://developer.salesforce.com/docs/commerce/commerce-api/guide/shopper-context-api.html#constraints). - The [Shopper Customers API](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-customers?meta=Summary) `updateCustomer` endpoint allows the `loginId` to be updated if a valid current password is provided for the shopper. - [Preferences API](https://developer.salesforce.com/docs/commerce/commerce-api/references/preferences?meta=Summary) - When retrieving site and global preferences, the Preferences API first checks for custom settings, and if no custom settings exist, now instead returns the default settings in Business Manager. - The following Script API methods are available to support SCAPI external taxation APIs with hooks: - - [dw.order.LineItemCtnr#isExternallyTaxed](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/scriptapi/html/api/class_dw_order_LineItemCtnr.html#dw_order_LineItemCtnr_isExternallyTaxed_DetailAnchor): Returns true if the basket was created with taxMode = external. - [dw.order.TaxMgr#applyExternalTax](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/scriptapi/html/api/class_dw_order_TaxMgr.html#dw_order_TaxMgr_applyExternalTax_Basket_DetailAnchor): Applies externally set tax rates to the given basket. Use when dw.order.LineItemCtnr#isExternallyTaxed returns true. For details, see [Extensibility via Hooks](https://developer.salesforce.com/docs/commerce/commerce-api/guide/extensibility_via_hooks.html#taxes-apis-and-hooks) and [updateItemsinBasket](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets?meta=updateItemsInBasket). - The Shopper endpoint constraint for supporting trusted agent tokens on a specific subset of Shopper endpoints has been removed. For details, see [Trusted Agent](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-trusted-agent.html#constraints) - The `siteId` query parameter is no longer mandatory for custom API calls. For details, see [Custom APIs](https://developer.salesforce.com/docs/commerce/commerce-api/guide/custom-apis.html). - Server-Side Web-Tier Caching is enabled for: - All SCAPI customers who aren’t currently using the cached APIs and haven’t made production requests to any cached APIs in the last 7 days. For the list of cached APIs and other details, see [Server-Side Web-Tier Caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html). - All instances that don't use [Shopper Search API](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=Summary) `productSearch` and `getSearchSuggestions` endpoints on their PRD instances. For details, see [Server-Side Web-Tier Caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html) SCAPI Fixes With B2C Commerce version 24.6, the [`mergeBasket`](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets-v2?meta=mergeBasket) endpoint now merges the guest shopper’s `shippingAddress` and `shippingMethod` into the registered basket when the registered basket does not contain `shippingAddress` or `shippingMethod`. SLAS Release - To enhance security for our customers using the Shopper Login API Access Service (SLAS), a `channel_id` (site) parameter is now required when requesting a guest access token with a `grant_type` of `client_credentials` . This change prevents unauthorized access across different storefronts. Existing customers must update their implementation to include the `channel_id` parameter in the client credential call in guest flows by 7/31/2024. For details, see [Guest Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#guest-tokens). - SLAS Admin: Added validation for SLAS Client callback URLs to prevent the use of localhost or loopback addresses as host names in production environments. # June 2024 PWA Kit and Managed Runtime PWA Kit 6/19/24 - **Product Tile Enhancements** - Drive conversion and shopper engagement and reduce implementation costs with our greatly improved product tiles available in the PWA Kit Retail React App. Product tiles now feature: - Promo callouts - Strike-through pricing - Product tile swatches for variant selection - Product badges - Use of the productSearch API with expansions, which offers improved performance over the combination of the productSearch and getProduct(s) APIs 6/18/24 - **BM-Generated Sitemaps Available for Headless Sites** - Easily create a sitemap in Business Manager (BM) for your headless or PWA Kit storefront built on B2C Commerce. Sitemaps provide search crawlers with instructions on the pages to index and site hierarchy and they help to improve SEO ranking. See Improve SEO with a Sitemap. See [Improve SEO with a Sitemap](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/create-a-sitemap.html). - **Collect Active Data Order Events** - PWA Kit now supports the collection of Active Data order metrics. Use this collection to understand customer behavior and optimize your merchandising and segmentation strategy. See [Active Data](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/active-data.html). Managed Runtime 6/20/2024 - **Origin Lockdown for Third-Party CDNs** - Restrict access to your Managed Runtime environment to traffic coming from your third-party content delivery network (CDN). Set a shared access control header across your CDN and environment to ensure that shoppers, bots, and crawlers don’t access your environment directly.See [Access Control Headers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/managed-runtime-administration.html#access-control-headers). and the [projects\_target\_access\_control\_header\_create](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/mrt-admin?meta=projects_target_access_control_header_create) API to learn how you can lock down your environment. 6/17/2024 - **Environment Variable Support** - Use Runtime Admin to manage environment variables. This feature is available as an alternative to managing environment variables by using the Managed Runtime API. Environment variables allow you to add variables into the application process running in an environment, without having to make code changes. See [Environment Variables](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/environment-variables.html). 6/3/2024 - **Centralized Logs in Log Center** - This feature is now generally available. Troubleshoot errors in your site built with PWA Kit by using Log Center: - Search and filter many logs. Check historical logs. - Access a single user interface to view logs from [Managed Runtime (MRT)](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/debugging.html#tail-logs-on-managed-runtime) and your B2C Commerce instance. Connect what's happening in your MRT environment with what's going on in your B2C Commerce instance. - Easily see MRT logs without using a CLI. See [Debug Using Log Center](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/debugging.html#debug-using-log-center). # June 2025 SCAPI and SLAS For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI: - Enabled on ODS instances only: Custom OnRequest and OnSession hooks are no longer executed for the SCAPI `/shopper-experience` APIs. Make sure you validate your SCAPI `/shopper-experience` API calls. - Enabled on Sandbox instances only: API contract validation based on OAS standard. - On selected sandboxes, OAS-based SCAPI request validation for parameters, authN / authZ, and request path is enabled. SLAS: - [Hybrid Auth](https://developer.salesforce.com/docs/commerce/commerce-api/guide/hybrid-authentication.html): Support added for SLAS public clients and SFRA Storefront Protection. - To enhance security and align with OAuth 2.1 specifications, reuse of the same `refresh_token` for public clients is now prohibited. Implement one-time usage for the `refresh_token`, using the new `refresh_token` issued by SLAS on each `/token` call. For details, see [Access Tokens and Refresh Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#access-tokens-and-refresh-tokens). SLAS - EU and US-East Regions - SLAS now supports LINE as 3rd party IDP. - SLAS `/password/action` endpoint now returns `locale` in the response. # June Build Summary (10.1.1) Build summary for Modern POS version 10.1.1, including what new features and changes it contains | Theme | Feature | Benefit | | --- | --- | --- | | Core Platform | [Associate 360](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | New page that shows an associate their key performance metrics for better benchmarking (available in versions 10.0.1 and later) | | Core Platform | [App configuration segmentation](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | Target each app configuration to specific combinations of devices, roles, and locations. Consider a scenario where a store needs different app functionalities for managers and associates. Managers need a special app setup, like access to performance reports. Associate workers need a less special setup. | | Core Platform | [Retain Quote ID](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | If Point of Sale is the controller of quotes, merchants can select to keep the same quote ID if editing a quote. | | Analytics / Reporting | [Tender Reconciliation Report](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | Report ‌connections mismatches between order total and total tendered, giving you greater visibility to payment discrepancies | | Inventory Management | [Inventory Lookup on Product Display Page (PDP) via SPIs](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | Ability to show inventory by proximity to store location and estimated delivery date | | Inventory Management | [Inventory Overview: Group by Variant](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | View inventory by variant ID | | Inventory Management | [Serialized Inventory - Cycle count, adjustments](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | Expanded inventory operations to support Cycle Counts and Adjustments for serialized inventory | | Payments | [Deposits at line level](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | Ability to take an initial payment on a product that hasn't shipped, been fulfilled, or is being held | | Payments | [Checks as Tender Type for No Receipt Returns](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | Ability to accept checks as a tender for nonreceipted returns | | New Receipt Tags | [New tags for Pay by Link Templates](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | Added discount total, shipping total, and order total to Share Payment Link Email and Print Template | | Other Feature Enhancements | [Various](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_1_1.htm&release=264.0.0&type=5) | Various | ## Core POS ## Associate 360 What it does: New page that shows an associate their key performance metrics ‌ for better benchmarking. Quotes are optional. How to configure: Set up the deep link on any layout you like ![The Associate 360 Deep Link in the POS ap.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_associate_360_pos.png) Learn more: [Access Associate 360 Report on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_associate_360_pos.htm&release=264.0.0&type=5 "Track assocate's individual productivity. Use snapshots of key metrics to better benchmark and course-corret relative to targets that determine performance and compensation.") ## App Configuration Segmentation What it does: Target each app configuration to specific combinations of devices, roles, and locations. Consider a scenario where a store needs different app functionalities for managers and associates. Managers need a special app setup, like access to performance reports. Associate workers need a less special setup. How to configure: 1. Creating New App Configuration 1. In CMS, go to **Apps**. 2. Select the **+** to create an app configuration. 3. Select the app configuration type and select **Next** in the upper right corner. 4. On the **App Configuration Details** screen, set the logo, fonts, and other related settings to customize the app's look and feel. 5. iOS supports [many fonts](http://iosfonts.com/) natively. You can type in a font name even if it doesn't appear in the dropdown list. These are license-free fonts available for use. 6. Select Next. You are directed to the **App Configuration Segment Preferences** screen. ![The General Settings of the App Config Details screen in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_app_config_details.png) 2. Setting App Configuration Segment Preferences 1. In the **App Configuration Segment Preferences** screen, set the segmentation preferences. If **Modern POS** is selected as the app configuration type, set preferences at both the associate and manager levels. 2. Turn on **Is Default** to set this app configuration as the default before associate login. Default app configs are marked with a blue Default label underneath them. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If this is the first app configuration, the flag is turned on by default and unavailable. 3. Select the device type for **Device Type Segmentation** (iPhone, iPad, or both). 4. For **Personnel Segmentation**, select the personnel type: - **Role**: Multiselect dropdown to specify applicable roles - **Store Associate**: Multiselect dropdown to specify applicable users - **All**: This app configuration is available to all personnel 5. For **Location Segmentation**, select the location type: - **Store Group**: Enter the store group ID - **Store**: Select the store ID - **All**: This app configuration is available to all locations - ![The Location Segmentation settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_app_config_segment.png) Learn more about editing and rules of precedence: [App Configs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_configs_app.htm&release=264.0.0&type=5 "Customize and manage multiple app configs to tailor the appearance and behavior of POS for different use cases or segments, ensuring each register uses the most appropriate settings for its specific scenario. This flexibility enhances user experience and operational efficiency.") ## Retain Quote ID What it does: If Retail Cloud is the controller of quotes, merchants can select to keep the same quote ID if editing a quote. If this option is enabled, resumed quotes use the existing quote ID. If it's turned off, a new quote ID is generated each time a resumed quote is saved again. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If this setting is enabled, and a resumed quote is saved, the suspended cart won't be listed in the saved cart lookup. However, all changes are updated in the original quote. How to configure: [CMS Link](https://labs.predictspring.com/user/login) Turn on **Keep the same Quote ID after the quote is resumed as a cart and then converted back to quote (retainQuoteIdOnResumedCart)**. ![The Retail Quote ID setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_retain_quote.png) Learn more about creating and managing quotes: [Create and Manage Customer Quotes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_create_manage_customer_quotes.htm&release=264.0.0&type=5 "Merchants can create and track customer quotes on the POS app. Each quote has a unique number and includes customer information. Store associates can work with customers on merchandise and pricing, either in-store or over the phone, and then email the quote for review or print it on A4 paper. Customers can save the quote, delete it, or complete the checkout process.") ## Analytics/Reporting ## Tender Reconciliation Report What it does: Use this report to identify mismatches between order total and total tendered, giving you greater visibility to payment discrepancies How to access: [CMS Link](https://labs.predictspring.com/user/login) Key things to know: - You can tailor your search by transaction type (sale/return), store, order ID, and date range.![Grouping transaction types by date range, transaction type, and order ID.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_tender_reconciliation_1.png) - You can group results by **None**, which returns each order on a separate line. Grouping by date returns the sum of the results on one line for the selected date range.![Group results by None in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_tender_reconciliation_2.png) - If you have the report grouped by **None**, you can drill into tender details of an order you want more info on by selecting **Details** on the far right.![The Tender Details report in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_tender_reconciliation_3.png) Learn more: [Tender Reconciliation Report in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_tender_reconciliation_report.htm&release=264.0.0&type=5 "Identify and investigate these mismatches by accessing detailed information, including transaction details, payment information, and authorization amounts related to each order.") ## Inventory Management ## Delivery Estimate by Zip via SPI What it does: Ability to get a delivery estimate by ZIP code after the SPI and deeplink for window are configured ![The Delivery Availability wundow in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_delivery_zip_est.png) How to configure SPI: 1. In CMS, go to **Integrations > Custom Connectors**. 2. Create an integration by selecting **Create**. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**INVENTORY\_BY\_ZIPCODE**". 5. Under **API Endpoint**, provide the URL to get a product's inventory, for example `https://sample/external/endpoint/product/zipcode/getAvailabilityInformation`. 6. Under **Integration Type**, select "**HTTP\_POST**". 7. Under **JSON Headers**, provide headers to be passed. 8. Configure the rest of the fields as needed. 9. Save your changes. How to configure deep link 1. Using the deep link picker, go to **Store Associate > Inventory Availability**. 2. Set the deep link in the layout and save your changes.![The Inventory Availabiloity Deep Link in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_inventory_availability.png) Learn more: [https://help.salesforce.com/s/articleView?id=commerce.rt\_pos\_inventory\_lookup\_inventory\_spis.htm&language=en\_US](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_lookup_inventory_spis.htm&language=en_US) ## Inventory Overview via SPI What it does: Inventory Overview window displays nearby store inventory. You see the product's availability counts for On-Hand, Allocated, Available, In Transit, and On Order. ![The Inventory Overview widget in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_overview_widget.png) How to configure SPI 1. In CMS, go to **Integrations > Custom Connectors** 2. Create an integration by selecting **Create**. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**GET\_PRODUCT\_INVENTORY\_OVERVIEW**". 5. Under **API Endpoint**, provide the URL to get a product's inventory, for example `https://sample/external/endpoint/to/get/inventory/from/external/system`. 6. Under **Integration Type**, select "**HTTP\_POST**". 7. Under **JSON Headers**, provide headers to be passed. 8. Configure the rest of the fields as needed. 9. Save your changes. How to configure CTA button to open a window on app: 1. Edit ‌PDP layout. 2. Edit or create a cell. 3. On the right toolbar menu, go to **Cell Content > Form Element**. 4. Under **Field Type**, select "**Button**". 5. Under **Button Text**, enter the text you want to show on the PDP button (for example "**Inventory Overview**"). 6. Under **Button Action**, select "**Inventory Panel**". 7. Configure the rest of the fields as needed. 8. Set and save your changes.![The Form Element Button setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_config_button_1.png) Learn more: [https://help.salesforce.com/s/articleView?id=commerce.rt\_pos\_inventory\_lookup\_inventory\_spis.htm&language=en\_US](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_lookup_inventory_spis.htm&language=en_US) ## Group by Variant Report What it does: New filter to both CMS and App Inventory Overview Reports, giving you the ability to filter by variant group ID (style/color). If the report is grouped by variant ID, it displays the inventory for all items within the same variant group, along with their variant group ID. CMS: [Link](https://labs.predictspring.com/user/login) ![The Variant Report in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_inventory_report.png) App: ![The Inventory Overview filters in the POS app in an app build before 10.7.1](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_app_filters.jpg) Learn more: [CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_inventory_overview.htm&release=264.0.0&type=5 "Use the Point of Sale Inventory Overview report to check product counts across locations and identify inventory."), [App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_view_product_inventory.htm&release=264.0.0&type=5 "View inventory at the item or variant group level, and based on inventory buckets.") ## Cycle Count and Adjustments for Serialized Inventory Point of Sale supports serialized inventory. It has more features to support serialized inventory for cycle counts and adjustments. If serialized inventory is enabled, scanning a serialized number prompts the associate to enter a serial number during a cycle count or inventory adjustment. ![The Scan Serial Number window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_scan_serial.png) Learn more: [Inventory Management of Serialized Products](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_serialized_products.htm&release=264.0.0&type=5 "Point of Sale supports the management of serialized product inventory. In inventory processes such as transfers and receivings, any serialized products must have their serial numbers scanned or manually entered. The following inventory flows support serialized products: Blind Receivings, Store to Store (STS) Transfers, Return to Vendor (RTV), and Advanced Shipping Notice (ASN).") ## Payments ## Deposits at Line Level What it does: Point of Sale allows merchants to customize the required deposit percentage on the POS app. Through CMS configuration, rules can be set for regular or outlet store types. Merchants can define a default deposit or specify product-specific requirements using attributes and values. Fulfillment and shipping methods can also be configured to require full payment before checkout instead of a deposit. Deposit details are displayed on the POS app in the cart, during returns, and if editing an order, and can also be found in TLogs. For credit card or Tap to Pay orders, Point of Sale supports tokenization for Adyen terminals, permitting merchants to use tokenized details for further payments. Flow highlight: - If a product added to the cart meets the rules set in the deposit configuration settings, the required deposit is listed under the product details.![The POS app showing a deposit required on purchases.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_deposit_details_1.png) - To make a deposit, initiate the multitender flow. The required deposit is the sum of the deposits for the products and tax. This deposit value can be edited, but if it's lower than the required amount, an error appears.![The Deposit window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_deposit_details_2.png) - If using a credit card on an Adyen terminal, a shopper's consent window appears on the app. This is because the app receives tokenized details from the Adyen terminal, requiring consent. If consent is given, the credit card can be used to pay the deposit. After the order is placed, the tokenized details can be found in the TLogs.![The Shopper Consent Required for deposit window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_deposit_details_3.png) Learn how to configure: [Configure Deposits at Item Level for POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_deposits_item_level_configure.htm&release=264.0.0&type=5 "Customize deposit percentages within the POS app to meet specific business needs. Configure rules in CMS for different store types and define requirements based on product attributes or specify that fulfillment and shipping methods require full payment. Deposit details are clearly displayed in the POS app, including during returns and order edits, ensuring transparency and control over payment options.") ## Check as Tender Type for Non-Receipted Returns What it does: Ability to accept checks as a tender for nonreceipted returns How to configure: [CMS Link](https://labs.predictspring.com/user/login) Update your return policy to permit for checks as a tender type ![No Receipt Returns settings in Retail Coud CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_nrr_10_1_1.png) ## New Receipt Tags ## New Tags for Share Payment Link Template What it does: Added discount total, shipping total, and order total to Share Payment Link Email and Print Template | Description | Print Tag | Email Tag | | --- | --- | --- | | Total discount of the transaction | :ps\_o\_discount | {discount} | | Shipping total of transaction | :ps\_o\_shipping\_charges | {shipping\_total} | | Order total | :ps\_o\_total | {order\_total} | Learn more: [Receipt Print and Email Component Tags by Receipt Section](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_by_component.htm&release=264.0.0&type=5 "Understand the print and email tags for the content components of Point of Sale receipts and see the templates they are included in.") ## Other Feature Enhancements
Punchout: Custom ProductsExpansion of punchout that enables custom products to be passed into POS from a webviewSupporting PunchOut Webpages on POS App
Avalara Connector: sending total quantity x price for tax calcEnhancement to our Avalara connector for more precise penny roundingN/A
Managing and Deleting Export JobsRefresher on managing your export jobs. New functionality to delete inactive jobs.Configure and Manage Export Jobs
Void Cart Webhook Reason CodesNew system reason codes for automatically voided carts, giving you more visibility into why a cart was voidedhttps://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_process_export_suspend_void_data.htm&language=en_US
Custom Product Attributes in Order TLOGCustom string attributes are now included in the order JSONhttps://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog.htm&language=en_US
Customer Default AddressAbility to set default address for customer in POS and NetSuiteIntegrate NetSuite ERP in CMS
# June Build Summary (11.1.1) Build summary for Modern POS version 11.1.1, including what new features and changes it contains. | Feature | Description | | --- | --- | | **API / SPI** |   | | [Fulfillment Type in Vertex Tax Quotations](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5) | Implemented fulfillment type determination for accurate tax quotations. | | **Clienteling** |   | | [Enhanced California Consumer Privacy Act (CCPA) / General Data Protection Regulation (GDPR) Customer Data Deletion](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5) | Enhanced CMS to delete customer data from Point of Sale databases and outputs. | | **Core Platform** |   | | [Tariff Surcharge Handling in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5) | Handles tariff surcharges within the POS system, allowing merchants to transparently pass on costs to customers and improve pricing transparency. | | [Improved No-Cost Shipping Promo Visibility](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5) | Introduced clearer visual indicators for no-cost shipping promotions. | | **Fiscal** |   | | [Compliance with Spain Fiscal Requirements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5) | Integrated new fiscal requirements for Spain to follow EFSTA regulations. | | **Inventory Management** |   | | [Serial Number Tracking in Returns Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5) | Serial numbers are now recorded in order history, TLogs/JSON, and receipts. | | **Payments** |   | | [Enhanced Adyen Cross-Store Return Processing](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5) | New setting to process returns to Adyen across multiple stores for accurate reconciliation. | | **Returns** |   | | [Customer Profile Prompt for Return](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5) | New setting prompts the POS app to capture customer information for all returns, both online and offline, verifying accurate and consistent data. | | **Receipts** |   | | [Print Deposit Amount in Email Templates](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_1_1.htm&release=264.0.0&type=5) | New tags show the paid and required deposit amounts at the order level in email templates. | ## API / SPI ## Fulfillment Type in Vertex Tax Quotations What it does: New settings in the Vertex configuration support accurate tax quotations based on the fulfillment type of items. This can assist with company regulations compliance and improving financial accuracy. How to configure in CMS: 1. Configure the Vertex tax engine in CMS. 2. Under **In Store Merchant Reference Code**, enter the Company Code you configured for your in-store taxpayer entity in [Create Taxpayer Entity](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_setup.htm&release=264.0.0&type=5) (for example PS001). 3. Under **Online Merchant Reference Code**, enter the Company Code configured for your online taxpayer entity in [Create Taxpayer Entity](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex_setup.htm&release=264.0.0&type=5) (PS002). If a separate online entity isn't configured, you can reuse the in-store Company Code (for example PS001). ![The Tax Reference Code settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_references_bfs_tax_quotes.png) Learn more: [Integrate Vertex](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex.htm&release=264.0.0&type=5 "Integrate Point of Sale with the Vertex tax engine to facilitate tax calculations during sale transactions. Confirm that the Vertex engine handles all necessary tax computations.") ## Clienteling ## Enhanced CCPA/GDPR Customer Data Deletion What it does: Enhancements to CMS supports deleting customer data from Retail Cloud databases and outputs. Thorough data removal from all relevant databases and outputs helps businesses be fully compliant with security regulations. How to configure in CMS: 1. In CMS, go to **Advanced > Delete Customers Data**. 2. Select either **Email Address** or **Customer ID**. 3. Enter the values for the option you chose. 4. Select **Request Deletion**. ![The Delete Customer Data section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_delete_cust_data.png) ## Core Platform ## Tariff Surcharge Handling in POS What it does: Set the tariff percentage rate with this new configuration in CMS. This new feature can help with regulatory requirement alignments, enhance customer trust, and provide a competitive advantage. How to configure in CMS: 1. In CMS, go to **Store Management > Store Settings > Tariffs**. 2. Enter a percentage value in the **Tariff Rate (tariffRate)** field. 3. Save your changes. ![The POS app shows a tariff surcharge on an order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_tariff_surcharges_configure_pos.png) Learn more: [Managing Tariff Surcharges in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types_tariff_surcharges.htm&release=264.0.0&type=5 "Manage tariff surcharges in the POS app so merchants can consistently apply them and shoppers have a clear understanding of the impact on their purchases. The POS dynamically calculates the tariff based on the order subtotal and updates the amount as items are added or removed. The tariff appears as a separate charge, distinct from the subtotal and tax.") ## Improved No-Cost Shipping Promo Visibility What it does: Better visibility of applied no-cost shipping promotions increases user engagement and trust, making the checkout process more transparent. ![The Shipping Options window in the POS app, where you can select the shipping type.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_no_cost_shipping.png) How to configure in CMS: No configuration is needed as this is the default behavior. Learn more: [No-Cost Shipping Promotion](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_no_cost_shipping.htm&release=264.0.0&type=5 "Create promotions in Point of Sale CMS that automatically apply no-cost shipping to eligible orders at checkout on the Point of Sale (POS) app.") ## Fiscal ## Compliance with Spain Fiscal Requirements What it does: Integrated new fiscal requirements for Spain to follow EFSTA regulations. The integration enhances data accuracy and integrity, improving regulatory reporting and audit readiness. How to configure in CMS: 1. In CMS, go to **Store Management > Store Settings > Fiscal**. 2. **Expand All** and turn on these settings: - **Enabling Fiscalization** - **Tax Identifier (merchant tax ID)** Learn more: [Fiscalization Requirements for Spain](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_fiscalization_requirements_for_spain.htm&release=264.0.0&type=5 "Set up Point of Sale CMS to follow Spain's tax rules, including Verifactu and TicketBAI. These tools check how much VAT is being reported and if it's being paid.") ## Inventory Management ## Serial Number Tracking in Returns Flow What it does: Serial numbers are now recorded in order history, TLogs/JSON, and receipts. This provides accurate tracking of serialized items, which is crucial for inventory management and customer service. ![The Serial Number for tracking a product in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/tr_releases_bfs_serial_numbers_flow.png) How to configure in CMS: No configuration is needed as this is the default behavior. ## Payments ## Enhanced Adyen Cross-Store Return Processing What it does: New setting for processing returns to Adyen across multiple stores for accurate reconciliation. This feature reduces reconciliation discrepancies, improving financial accuracy and reporting. How to configure in CMS: 1. In CMS, go to **Store Management > Store Settings** 2. Expand Adyen. 3. Turn on **Attribute Cross-Store Returns to the Store where Returns are Processed (crossStoreRefundWithAdyen)** (1). ![The Attribute Cross-Store Returns to the Store where Returns are Processed (crossStoreRefundWithAdyen) setting turned on.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_mcs_hardware_ayden_settings_xstore_refund.png) Learn more: [Adyen Payment Gateway Information](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5 "You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale.") ## Returns ## Customer Profile Prompt for Return What it does: New setting prompts the POS app to capture customer information for all returns, both online and offline, verifying accurate and consistent data. This feature improves operational efficiency and customer service, enhancing trust through data accuracy. How to configure in CMS: 1. In CMS, go to **Store Management > Store Settings > Clienteling**. 2. To edit **Customer Information Capture Configuration (customerInfoConfig)**, select the pencil icon. 3. For the **Return Transaction Type**, select a layout. 4. Turn on **Customer Profile Required for All Returns** (1).![Turn on the Customer Profile Required for All Returns setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_customer_profile_all_returns.png) 5. Set and save your changes. Learn more: [Require Customer Information for Returns in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_require_info_cust_returns.htm&release=264.0.0&type=5 "Collect customer information for all return types in the POS app and increase clienteling opportunities. Store associates can search for existing customer profiles and automatically prefill the return form with the customer’s information. If no profile is found, the store associate can create one for the customer. Additionally, if the original sales order included customer details, those fields also prefill the return form.") ## Receipts ## Display Deposit Amount in Email Templates What it does: New tags show the paid and required deposit amounts at the order level in email templates. This clear display of deposit amounts in email templates enhances order transparency and improves customer communication. How to configure in CMS: 1. In CMS, configure an **email template**. 2. Add ‌the PS Tags: - **{order\_required\_deposit}** - prints the required deposit amount at the order level - **{order\_paid\_deposit}** - prints the paid deposit amount at the order level 3. Set and save your changes. ![The Order Deposit Receipt Tags configured in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_deposit_email_tags.png) Learn more: [Receipt Print and Email Component Tags by Receipt Section](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_by_component.htm&release=264.0.0&type=5 "Understand the print and email tags for the content components of Point of Sale receipts and see the templates they are included in.") # June Build Summary (9.1.3) Build summary for Modern POS version 9.1.3, including what new features and changes it contains. ## Overview of All Features | Theme | Feature | | --- | --- | | Core Platform | [New Reports in App: Hourly Net Sales and Total Sales, Associate Login, Reconciliation Report](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_1_3.htm&release=264.0.0&type=5) | | Core Platform | [Extended Variant Functions on PDP](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_1_3.htm&release=264.0.0&type=5) | | Cart/Checkout | [Guest Suspended Cart identification](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_1_3.htm&release=264.0.0&type=5) | | Gift Card | [GC Cash Out Rules](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_1_3.htm&release=264.0.0&type=5) | | Inventory Management | [Adjustment Batch Reporting](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_1_3.htm&release=264.0.0&type=5) | | Promotion | [Outlet Store Channel Support](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_1_3.htm&release=264.0.0&type=5) | | Various Feature Enhancements | [Additional feature enhancements to existing features](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_1_3.htm&release=264.0.0&type=5) | ## Core POS ## New In-App Reports New deep links permit merchants to access these reports: Total Sales, Hourly Net Sales, Associate Log Ins, and Reconciliation Report ## Configure Access From Hamburger Menu Add deep link to Hamburger Menu: [https://labs.predictspring.com/cms/layout-settings-list/MENU](https://labs.predictspring.com/cms/layout-settings-list/MENU) 1. Step 1: Add a deep link to a Hamburger Menu![The Set Deep Link option to configure access to an in-app report from a hamburger menu in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_in_app_report_link.png) 2. Step 2: Search for deep link, set, and confirm![The Deep Link where you select a report to connect to the deep link in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_in_app_report_deep_link.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Follow the same steps for any report you want to make available ## Configure Access From Layout Add a deep link to Layout: [https://labs.predictspring.com/cms/layout/edit](https://labs.predictspring.com/cms/layout/edit) 1. Step 1: Add or create a layout![The Deep Link access selection in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_config_layout_access.png) 2. Step 2: Search for the deep link and set it![The Deep Link where you select a report to connect to the deep link in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_in_app_report_deep_link.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Reconciliation Report isn't available via Layout ## Total Sales Report What it does: Provides a snapshot of sales metrics for the store and each register. Report accessed in POS show full store-level details as well as each register data only for that store. [Learn more](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_sales_hourly_reports.htm&release=264.0.0&type=5 "Configure and access total and hourly sales reports in the Point of Sale (POS) app.") ![The Total Sales report in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_app_flow_reports.png) ## Hourly Sales What it does: Provides a snapshot of Net Sales for stores and registers for the current day. [Learn more](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_sales_hourly_reports.htm&release=264.0.0&type=5 "Configure and access total and hourly sales reports in the Point of Sale (POS) app.") ![The Hourly Sales Report in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_hourly_report_pos_app.png) ## Reconciliation Report What it does: Provides an option to view key fields from the reconciliation report and print it on a receipt printer. App users can view single-day data from any of the past seven days.![The Reconciliation Report showing in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_report_reconcililiation_report_app.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Not all fields are present in this report and full reconciliation can only be done within CMS. A4 printing of the sales report is not supported on the POS app. The Reconciliation Report receipt is not supported for Fiscal printers. [Learn more](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_payment_reconciliation_report.htm&release=264.0.0&type=5 "Confirm the accuracy of financial data and identify inconsistencies among the Retail Cloud order amount, the amount requested to the payment gateway, and the amount collected by a processor.") ## Extended Variant Functions on PDP What it does: We love this new feature and think you will too. You can now make different versions of your Product Display Page (PDP) based on any product attribute. You can rank them in a certain order of appearance on the PDP by uploading a file or directly in the CMS. How to configure: [https://labs.predictspring.com/cms/product-variant-config](https://labs.predictspring.com/cms/product-variant-config) 1. Step 1: Configure and change the display priority of the product attributes manually or via a feed 1. Edit or add a new product attribute by clicking **\+ Add** in the upper right. The product attributes show alphabetically in the POS app regardless of their hierarchy in the CMS configuration.![The Product Variant Configuration section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_add_attribute.png) 2. Under **Product Attribute**, select an attribute (Currently, the only product fields or attributes that can be set as variants are: **Color**, **Size**, **Custom String 0 to 12**) 3. Under **PDP Display Name**, enter the name to be displayed in the POS app. 4. Under **Default Display Order**, select **Set Display Order**, which open a popup allowing you to configure the variant options.![The Sort Variant Order window in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_sort_varient_order.png) 5. Edit your selected app configuration and select **Save** in the upper right. Repeat this step for all app configurations you want to have the product variants for and whenever you make a change in the configuration. This allows the latest variants to be injected into the app configuration.![The app config edited in the CMS and an example of how the POS app will appear.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_edited_app_config_pos.png) 2. Step 2: Customize the display of the PDP 1. Create a PDP layout or edit an existing one. For more detailed instructions, refer to [this article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_customizing_product_display_page_pdp.htm&release=264.0.0&type=5 "Configure the Product Display Page (PDP) in the Point of Sale (POS) app to present products effectively and improve the buying process."). Your previously configured variants are visible in the layout.![The Edit OmniPDP Config section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_customize_pdp.png) 2. To make further customizations, double-click on the variant section to open a window. Here, you can change the display style (for example swatch), swatch type (for example, circle, rectangle). ![The Variants window in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_customize_pdp_2.png). 3. After you finish customizing, set and publish your changes. 4. Relaunch your POS app and go to the PDP of any product. The variants that you've configured along with their display order appear.![The POS app showing the variants that you chose.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_single_value_variant.png) 5. To make a product with only one version easier to see, turn on **Hide Single Value Variant** in **Apps > UI > UI Options**. Turning on this flag automatically displays the single variant on the Product Detail Page (PDP) and hides any nonapplicable variants. ## Cart/Checkout ## Guest Suspended Cart Identification What it does: Store associates can assign a name to a suspended cart exclusively for guests. However, if a customer is signed in, the cart will be identified using their full name. How to configure: Follow the steps in the App Saved Cart Flow [Learn more: Suspend & Resume Carts](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_process_suspend_cart.htm&release=264.0.0&type=5 "The Point of Sale platform supports a feature that allows store associates to save a cart and resume and complete it later. By saving a cart, the totals, discounts, customer information (including shipping/billing addresses), and shipping methods will be put on pause until the associate chooses to resume it.") ![The Name this Saved Cart window in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_suspend_resume_carts.png) ## Gift Cards ## Gift Card Cash-Out Threshold What it does: Define a cash redemption threshold for gift cards for example if your state has rules and regulations. How to configure: [https://labs.predictspring.com/cms/gift-card/edit/](https://labs.predictspring.com/cms/gift-card/edit/) 1. Step 1: Go to **Cash Out Configuration** in **Advanced Gift Card Settings**![The Cash Out COnfig option in the Advanced section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_cash_out_config.png) 2. Step 2: Enter threshold amount, set, and save![The Default Cash Redemption Threshold setting configured in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_cash_out_config_2.png) [Learn more: Gift Cards Support in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_gift_card.htm&release=264.0.0&type=5 "Gift card support in the POS app enables store associates to handle gift card payments, purchases, and returns, streamlining the checkout process. Associates can easily apply gift card tenders, add value to cards, and redeem them for merchandise. With gift card returns, associates can issue refunds to new gift cards, offering customers a convenient option.") ## Inventory Management ## Adjustment Batch Reporting What it does: Summarizes changes made to inventory numbers in specific batches. This helps merchants track and reconcile inventory changes more easily. Additional details (for example product information, reason code, and so on) of a specific batch can be viewed as well. How to access: [https://labs.predictspring.com/cms/inventory-batches](https://labs.predictspring.com/cms/inventory-batches) ![The Inventory Management Batch section in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_adjust_batch_report.png) For batches with a status of Closed, merchants have the option to manually post it in CMS and this updates all data from the batch accordingly.Posting a batch isn't revocable. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Only CMS User Roles with **Edit** permission for Inventory will be able to post batches. ![The Adjustment Batch Details in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_batch_status_closed.png) [Learn more: Inventory Adjustment Batch Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_managing_inventory_adjustment_batch.htm&release=264.0.0&type=5 "Adjust inventory counts for your store items in Point of Sale CMS and gain better insights into the adjustments via reports.") ## Promotions ## Outlet Store Channel Support What it does: It now helps you create and manage outlet stores, and select promotions, return policies, and transfers between stores. Refer to our [Outlet Store Support](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_outlet_store_support.htm&release=264.0.0&type=5 "Create and manage outlet stores in the Point of Sale (POS) app, providing customers with lower prices and everyday bargains.") for all the details. ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Show Remaining Tender Balance in Multi-Tender Flow | Optimized UI to show the remaining balance of an order in the payment method capture interstitial | [Configure Multiple Tenders for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_multitender_config.htm&release=264.0.0&type=5 "Accept payments across multiple credit cards and other tenders in a single transaction. Configure the supported tenders and customize their display order in your POS app.") | | Adyen Validation for URL Base | Added validation for Adyen credentials to verify a successful connection. | [Adyen Payment Gateway Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_ayden_gateway_info.htm&release=264.0.0&type=5 "You can configure different payment gateways at the store level, such as store-level settlements, reporting, and currency requirements and integrate Adyen into Point of Sale.") | | Fiscalization: Order number for non-receipted returns | Ability to capture the original sale number and process a return for any orders that aren't found in the system. | [Returns & Exchanges in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_exchanges_overview.htm&release=264.0.0&type=5 "Shoppers can return and exchange products in the POS app. Exchanges are defined by any return transaction that also includes a sale.") | | Fulfillment restriction check at tender rather than add item | Previously, fulfillment combination rules were governed if adding items to the cart. To provide more capability for cart creation, the rule is executed at the payment step. | [Fulfillment Type Combination Rules](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_fulfillment_type_combination_rules.htm&release=264.0.0&type=5 "Configure fulfillment combination rules in Point of Sale CMS to prevent incompatible order types.") | # Known Issues & Restrictions Get details of known issues and restrictions with Point of Sale App Config Segmentation. - Every merchant and region must have a default app config. - Direct retrieval by tokens will override the flag, Is Default. - An app config must always be set as a default. If the Is Default toggle is enabled and then turned off, a confirmation modal will prompt you to designate another app config as the default. There must always be one merchant default. - Duplication of app configs is not supported. When defining the segment for an app config, if the segmentation criteria match those of another app config for the same merchant region/environment, you will receive an error message indicating that another app config is already targeted to that segment. # Known Issues & Restrictions - Italy Understand the limitations in Point of Sale for printing receipts in offline mode, including different order scenarios and restrictions. ## Print Receipt Limitations in Offline Mode The table outlines the limitations regarding printing receipts in offline mode, categorized by different scenarios:
Case # Steps Sale Order Receipt Return Order Receipt
1
  • ONLINE - Order placed
  • OFFLINE - Order returned
Will work as expected A nonfiscal receipt will be printed
2
  • ONLINE - Order placed
  • OFFLINE - Order synced
Will work as expected A nonfiscal receipt will be printed
3
  • OFFLINE - Order placed
  • ONLINE - Order returned
Will work as expected Will work as expected
4
  • OFFLINE - Order placed
  • OFFLINE - Order returned
Will work as expected A non-fiscal receipt will be printed
5
  • OFFLINE - Order placed
  • ONLINE - Order synced
  • OFFLINE - Order returned.
Same as Case # 1 Same as Case # 1
## Other Limitations - Exchange Transactions in Italy: Due to printer limitations, Exchange transactions are not supported in Italy. - Multi-Tender Order Refunds: Multitender order refunds are only supported on app versions 9.5.1 or greater. For app versions below this, multitender order refunds can't be fiscalized due to printer limitations. - Transaction Rollback: If a print receipt fails for any reason, the app doesn't cancel or roll back the transaction. - Fiscal Printers and Connectivity: Fiscal printers can only be connected using an IP address and operate in a 1:1 print topology. - Print Receipts Template: You can't change receipts with Fiscal Italy printers. You can change the receipts in Point of Sale CMS (**App Config > Modules > POS > Receipt Configuration**). - Reprinted Receipts: Reprinted receipts are generated directly by the printer, and the POS app doesn't control the data printed on reprints. As a result, barcodes or QR codes aren't printed on reprints. - X/Z Report on Reprinted Receipts: If X or Z reports are printed more than once, the subsequent order may include these reports on the reprinted receipts for those orders. - SKU Gift Receipts: SKU gift receipts are not supported with fiscal printers. - Logo Placement: The logo will be printed at the bottom of the fiscal receipt. # Known Issues & Restrictions in Receipt Layouts Explore common challenges in Point of Sale receipt layouts, such as text wrapping and spacing issues, which can affect the clarity and readability of receipts. Understand how to handle return and exchange transactions, customize receipt headers and footers, and navigate the hamburger menu for deep linking, ensuring a seamless customer experience. ## Text Wrapping In instances in which text cannot be fully displayed within the width of a grid, the Modern POS will limit text to wrap no more than two lines. Any text which exceeds this will be truncated. Modern POS <= 8.7.1. ## Text Spacing You can add spacing to receipts like this: Vertical Spacing - Carriage Return: For standard text, adding a carriage return inserts a blank line on the receipt. - Empty Grid Row: Within a grid layout, add a row with no content to create vertical space. Horizontal Spacing - To add space between lines, such as between product entries, add a blank row that contains one space. This creates visual separation on the receipt without displaying additional content. ## Return and Exchange Transactions If a "Return" and/or "Exchange" receipt layout has no specific receipt layout configured, the "order" receipt layout will be used. Please ensure any static text properly is desired for "return" and "exchange" receipt layouts for this use case. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Order receipt types must be configured for "Return" and/or "Exchange" or receipt generation found in Modern POS 7.16.5 will be used. A combination of receipt layout and Modern POS 7.16.5 receipt generation is not supported. ## Receipt Header or Footer Unlike automatic receipt generation (V1), there is no concept of a receipt header or receipt footer in receipt layouts. For receipts with multiple transactions, the entire receipt layout will be printed for each receipt transaction. ## Hamburger Menu Deep Link When configuring a hamburger menu deep link to a print receipt, there is no ability to select a language. Please do not use receipt layouts when requiring multiple languages in this scenario. # Known Issues and Restrictions with Email & Print Templates Find details of imitations in the Point of Sale email and print templates. Share Cart and Share Collection can only be used with a grid view (two-column product display). All other templates are recommended to use list view (one-column product display). If changing product view style (for example from a grid view to a list view or vice versa) contact Salesforce Customer Support before making the changes. Point of Sale platform support is needed for these types of changes. # Known Issues and Troubleshooting Address Point of Sale (POS) issues such as a product not found when scanning a UPC-A barcode offline. ## Product Not Found When scanning a UPC-A barcode offline, if you see an error that the product wasn't found, the barcode number might begin with "0". To rectify this issue, go to **CMS > Store Management > Store Settings > Feed > Product.** Under **Barcode Scan Replacement JSON**, add this regex: ``` "regex":"^0+(?!$)","replace":"" ``` ## Missing Latest Offline Configuration Settings If an offline register doesn't behave as expected per the Offline Configuration Settings in CMS, one reason might be that it went offline before retrieving that update. One such setting that might not have taken effect is a change to [Maximum Allowances](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_pos_offline_support_configuration_and_setup.htm&release=264.0.0&type=5 "Turn on and configure offline mode for your POS to confirm continuous operation during network outages."). Offline Configuration Settings in CMS are downloaded along with Store Credentials Offline Feeds, either at the next scheduled sync (based on Offline Database Refresh Time) or during a forced refresh (while online, tap **Download All** from the Offline Logs). This behavior differs from other app configurations or store settings, which are updated on each launch or log in. ## Offline Data warning when switching to Offline Mode The Point of Sale (POS) app shows this warning if either of the offline feeds are missing for products, taxes, or store associate credentials required to transact offline. Make sure POS has downloaded or attempted to download all the offline-related feeds. You can check this by navigating to the "Offline Logs" Deeplink. If not configured, configure the Offline Logs deeplink in the Hamburger Menu. Follow this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_hamburger_menu.htm&release=264.0.0&type=5 "Configure a hamburger menu in the POS app to access a wide range of features without cluttering the screen. This setup streamlines navigation, making it easier for users to find and use essential functions quickly.") to understand how Hamburger Menu can be configured. If POS attempted a download, but there are zero records downloaded or an error downloading, check if the Offline configuration is setup and Offline feeds are enabled for this merchant. Check this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_offline_feed_file_extracts.htm&release=264.0.0&type=5 "Offline feed files help the Point of Sale (POS) app function properly, where at least one online session is needed to download the required files.") for more information. After the feeds are configured, relaunch the app and check the Offline Logs screen to see the Offline Feeds Download status. # LAN Setup for Adyen Card Reader and Star Printer The Point of Sale platform supports fully wired LAN—ethernet-connected networking setups for the Modern Point of Sale system. ## How It Works In a traditional configuration, the card reader and the printer communicate directly with the iOS device. When setup to communicate over LAN, the devices communicate through the router. The router is the intermediary between the printer and card reader when they communicate with the iOS device.![A LAN setup diagram showing connection among a Wi-Fi connection, a new IP connection, Point of Sale, and Ayden.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_lan_network_diagram.png) ## Hardware There's additional hardware required to complete the setup beyond the card reader and printer. Get a connector device to connect the iPad to the network through ethernet. You also require three ethernet cables to connect the printer, the card reader, and the iPad. Finally, you need a router that can accommodate all these incoming connections. ## Connector For the connector, buy a device that plugs into the iOS device through the Lightning or USB-C connector that has a connector port for an ethernet cable.![A USB-C device to plug into an iOS device for LAN connections.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_lan_connector.jpg) ## Adyen - On the Adyen device, remove the back panel.![The back panel of an Ayden device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_back.jpg) - After the back panel is removed, find the port which you can plug the device into. This is located next to the USB slot.![The LAN cable plug next to the USB slot on an Ayden device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_lan_port.jpg) - Plug the cable in:![The LAN cable plugged in to the Ayden deice properly.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ayden_lan_cable_connected.jpg) - Put the cover back on the device to prevent any removal of the physical cables. ## Star Printer The iOS device must also be plugged into the router with the Ethernet cable using the connector device that plugs into the Lightning port / USB-C port at the bottom of the device. After it is plugged in, the cable can light up to indicate an active connection. Make sure that the iOS device is communicating through the LAN cable. Go to your device's settings and make sure the Ethernet setting is toggled on. You may also want to turn off Wi-Fi.![The LAN connector outlet on a Star printer for use with a payment terminal when in an LAN setup.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_harfware_star_printer_lan_connection.jpg) # Landscape and Portrait Mode Layouts for Point of Sale Point of Sale on Android and Windows supports both landscape and portrait mode. Design layouts for either orientation in Point of Sale CMS. Contact your account team to enable layout drafting in landscape mode for your organization. ## Get the Landscape Mode Activation QR Code Go to **Store Management** | **Activate App** in CMS to get the activation QR code for landscape mode. ## Create a Landscape Layout 1. Go to **Layouts** | **Layout Pages** in CMS. 2. Edit an existing layout or create one. 3. Turn on the layout to **Landscape**. #### See Also - [_Salesforce Help:_ Point of Sale on Android and Windows](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_android_windows.htm&release=264.0.0&type=5 "Point of Sale is available on Android and Windows, in addition to iOS. Use Android or Windows devices for in-store checkout and other retail operations.") # Language Selection and Usage The POS app lets users change the language at any time or select a language for a specific operation, such as searching for products or printing receipts. ## The POS app has functionalities that the store uses to change the language at any time or select a language for a specific operation. The following aspects of the app are considered: 1. Selecting a display language on the app 2. Searching for products 3. Print receipts 4. Offline functions ## Selecting a Display Language on the App 1. Set a deep link via CMS. For instructions on how to set up a deep link, see [Languages Localization on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_localization_pos_app.htm&release=264.0.0&type=5 "Set up language localization deep links in the POS app through CMS configurations."). 2. Restart the app and log in. 3. In the app, select the language deep link you've set. 4. Select the language and select Apply. After a successful language update, the app will fetch the language-specific app configuration and show the updated layouts and labels. ## Resetting the language In the language picker screen, you can always reset the previously set language and fetch the app configuration and other settings based on the default language set in the iPad settings. ## Searching for Products After the language is set on the app, the products via a product search now show the specific text and result in the language selected. ## Printing Receipts The app will show the supported languages on the Thank You screen, allowing you to print the order receipts in a specific language. The Thank You screen is a layout that can be changed through Point of Sale CMS. The language picker can be set up as a form element to print receipts in a different language. For more information on layouts and form elements, see Layout - Cell Configuration # Languages Localization on the POS App Set up language localization deep links in the POS app through CMS configurations. Different languages can also be set in the POS app. This is a two-step process involving initial configurations via Point of Sale CMS and then the app. In Point of Sale CMS, the deep link has to be set to change the language in the app. 1. Go to **CMS > Apps > All > your app config > Edit**. 2. Select **Edit Layout**. 3. Select where you want to assign a deep link to it. For example in a cell, in the hamburger menu, and so on. 4. In the right toolbar, select **Deep link**. 5. Do a search for "Language Picker". 6. Select **Language Picker** and select **SET**. 7. Select **PUBLISH NOW** or **Schedule**. # Languages Supported for Search Results Search for B2B stores supports all languages provided by Salesforce. For D2C stores, search results are returned in the language of the store. For B2B stores, search results are returned in the language assigned to the buyer’s user account. If a buyer is configured to use a language that isn’t enabled for the store, search results, including facet and filter values, are returned in the store's default language. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Search for B2B stores supports the same languages as the [Salesforce platform](https://help.salesforce.com/s/articleView?id=xcloud.faq_getstart_what_languages_does.htm&type=5&language=en_US). However, search behavior varies based on the default language set for your [B2B](https://help.salesforce.com/s/articleView?id=commerce.comm_lang_curr_international_b2b_store.htm&type=5&language=en_US) or [D2C](https://help.salesforce.com/s/articleView?id=commerce.comm_lang_curr_international_b2c_store.htm&type=5&language=en_US) store, the translations you define for products and categories, and the language that the customer selects for browsing. To get the best search results, make sure [Translation Workbench](https://help.salesforce.com/s/articleView?id=commerce.comm_translation_workbench.htm&type=5&language=en_US) and [Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&type=5&language=en_US) are enabled, and that [translations are defined](https://help.salesforce.com/s/articleView?id=commerce.comm_create_data_translation.htm&type=5&language=en_US) for all products and languages. If you don’t define translations for all products in all languages enabled for the store, including the default language, the search returns products only when the customer searches for terms that match values in the product record detail. Search results also vary based on whether or not semantic search is enabled. For example, consider a B2B store where the default language is Spanish. The product name on the product record page is the Spanish word for shirt, "camisa”. A customer browsing the store selects Spanish as the language for the store. If they enter "camisa" in the search box, the product appears in the search results even if no specific Spanish translation is defined for "camisa." Similarly, if a customer selects Korean as the language for the store but no specific Korean translation is defined for the product, entering the Spanish word "camisa" in the search returns the product in the search results. However, if the customer selects French as the language for the store and the French translation is defined for the product, entering the Spanish word "camisa" in the search doesn’t return any results. The customer must enter the words specified in the French translation to yield results.
Store's Default Language Product Record Details Customer Browsing Language Product Translations Search Phrase Search Results Search Results (Semantic Search Enabled)
    Spanish Not defined in Spanish camisa Product is returned in search results. Product is returned in search results.
Spanish Product Name in Spanish: camisa French Product Name defined in French: chemise camisa Product isn't returned in search results. Product is likely returned in search results.
    camisa Product is included in search results. Product isn't included in search results.
Korean Not defined in Korean syeocheu Product isn't included in search results. Product is likely returned in search results.
        셔츠 Product isn't returned in search results. Product is likely returned in search results.
#### See Also - [Enable Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&release=264.0.0&type=5 "When you enable data translation, you can translate the data stored in your B2B store product, category, and promotion fields. You can also enable data translation for custom text and URL fields on the product and category objects.") - [Manually Localize Product, Category, and Promotion Data](https://help.salesforce.com/s/articleView?id=commerce.comm_create_data_translation.htm&release=264.0.0&type=5 "You can manually enter translated text for your B2B product and category names and descriptions. To translate promotion names and descriptions, you must use Translation Workbench. To perform bulk translations for product, category, or promotion data, use Translation Workbench.") - [Search and Merchandising](https://help.salesforce.com/s/articleView?id=commerce.comm_search_setup.htm&release=264.0.0&type=5 "Get the most out of your B2B Commerce store by helping shoppers find what they’re looking for.") # Launch Agentforce for B2C Commerce from More Places in Your SFRA Storefront Give your customers more ways to chat with the Shopping Agent for B2C Commerce by selecting different launch locations. Add agent access from an icon in the site header, from a shopper's search suggestions, or a floating icon at the bottom of each storefront page. **Where:** This change applies to SFRA storefronts for B2C Commerce. **When:** This change is available January 2026. **Who:** This change is available to customers with a B2C Commerce Cloud license and the Agentforce add-on. **How:** In Business Manager, select your site, and go to **Custom Preferences** | **Shopping Agent**. Select each launch location that you want to make available to your shoppers. ![Launch location settings for the B2C Shopping Agent](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/26_1/b2c_shopping_agent_bm_settings.png) #### See Also - [_Salesforce Help_: Shopping Agent Setup for SFRA Storefronts](https://help.salesforce.com/s/articleView?id=cc.b2c_shopping_agent_sfra_cartridge_container.htm&language=en_US) # Launch Agentforce Merchandising for B2B Stores Before launching an agent, test it to ensure good performance. After Merchandising Agent is live, depending on the topics you selected, the agent can help you create promotions or get insights about how to improve KPIs. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Test the Agent actions. Test the agent to confirm that it understands a user’s request or instruction and launches the correct actions. Review whether the responses are helpful and accurate. 1. At the top of the page, click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In the Quick Find box, enter `Agentforce Agents`, and then select **Agentforce Agents**. 3. Click Agentforce (Default). 4. On the Agent Details page, click **Open in Builder**. 5. Test the agent actions. In the Conversation Preview window, enter some text in the dialog box. Use natural language to try out Commerce Promotions and Insights Business Objectives topics. 6. Follow the prompts from Einstein as you fine-tune your request. 7. Review the list of actions taken to get the response. Continue this process until you’ve reviewed the necessary test cases to ensure a good experience for agent users. 2. When you’re ready, **Activate** the agent. After the agent is activated, it’s immediately available to the users who you’ve given access to. 3. To interact with the agent, click the Einstein logo ![Einstein logo](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_einstein_icon.jpg) in Lightning and type a phrase, also known as an utterance, to get started. Not sure what to say? To get you started, check out the [Commerce Promotions](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_ref_commerce_promotions.htm&type=5&language=en_US) and [Insights Business Objectives](https://help.salesforce.com/s/articleView?id=ai.copilot_topics_ref_insights_business_objectives.htm&type=5&language=en_US) references for sample utterances. #### See Also - [Test Your Agent](https://help.salesforce.com/s/articleView?id=ai.agent_parent_test.htm&language=en_US) # Launch the Shopping Agent from Two Places in Your PWA Kit Storefront Give your customers more ways to chat with the Shopping Agent for B2C Commerce. A floating icon appears by default at the bottom of each page. You can also add an icon in the site header for agent access. **Where:** This change applies to PWA Kit storefronts for B2C Commerce. **When:** This change is available mid-February 2026. **Who:** This change is available to customers with a B2C Commerce Cloud license and the Agentforce add-on. **How:** From the PWA Kit repository, deploy the current release, and add the enableAgentFromHeader variable to your MRT project. This setting adds agent access in the site header (1). The icon (2) at the bottom of each page is shown by default. ![Site header and floating icon launch locations for PWA Kit storefronts](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/26_2/b2c_rn_26_2_pwa_launch_locations.png) #### See Also - [Select Where in Your PWA Kit Storefront to Launch the Shopping Agent](https://help.salesforce.com/s/articleView?id=cc.b2c_shopping_agent_launch_locations_pwa.htm&language=en_US) # Laway and Deposit POS App Flow Customers can reserve items with a down payment and adjust deposit amounts as needed. The app supports various tender types, including Pay by Link for compatible versions, enhancing payment flexibility. ## Creating a Layaway Order When an associate starts the Layaway Order from the multitender screen, they are asked for a first Deposit Amount. The Suggested Minimum Deposit is already filled in. This amount is calculated as 25% of the total sum. The associate can adjust the Deposit Amount, however, it can't be lower than the Suggested Minimum Deposit. After the deposit amount is entered, the associate can add tender(s) to cover the deposit amount and the order is placed. ## Adding a Deposit to an Order After you land on the multitender screen, the Deposit toggle is enabled by default. The Suggested Minimum Deposit prepopulates the Deposit Amount. It is calculated from the total cost of in-store items and 25% of the total cost of online items. The associate can adjust the Deposit Amount by tapping on the pencil icon. The Deposit Amount must exceed the Required Deposit, calculated as the total sum of all in-store items. If the edited amount exceeds the Required Deposit but falls short of the Suggested Minimum Deposit, a window appears requesting confirmation. After confirmationion, the associate can add tender(s) to cover the deposit amount and the order is placed. ## Known Issues & Restrictions - Layaway orders can't be created if the cart contains in-store items— they are reserved exclusively for items designated for pick up later or delivery. - Deposits can't be applied to an order comprised solely of in-store items. - After adding a tender, the deposit amount can't be changed. To modify the deposit, the associate must first remove all applied tenders before adjusting the deposit amount. - Deposits made with Pay by Link (both in-store and remote) are supported for app builds 10.7.1 or greater via the multitender screen. Note, PBL can only be applied to the full deposit amount. If an order has already been paid for and is marked as completed, PBL can't be used. If the order status is changed to partial or any other status other than completed when the deposit is made, PBL can't be used. See Pay by Link Overview. # Layout Deep Links Explore a detailed list of Point of Sale layout deep links, each with a clear description and supported context. Links include features for customer information and general layouts. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.
Deep Link Description Supported Context
Get Customer Info Layout

Retrieves a specified Customer Information layout. The following settings can be customized:

  • Layout Type - Select either a specific Layout or Layout Group to render on the POS app.
  • Presentation Style - If using the Clienteling SPI, select Push or Modal, and update the Save button action to saveProfile.
  • Display Title - Specify the text that should be shown in the navbar
  • Show Temporarily - Layout will be shown for the specified number of seconds and will then disappear
  • Is an Advanced Cart Option Layout Deeplink - Use this option when linking to an Advanced Cart Option layout.
"Layouts, Hamburger Menu,"
Layout

Retrieves a specified layout. The following settings can be customized:

  • Layout Type - Select either a specific Layout orLayout Group to render on the POS app.
  • Presentation Style - Specifies how the layout should be transitioned into the current view.
  • Display Title - Specify the text that should be shown in the navbar
  • Show Temporarily - Layout will be shown for the specified number of seconds and will then disappear
  • Is an Advanced Cart Option Layout Deeplink - Use this option when linking to an Advanced Cart Option layout for all app versions < 7.14.5. For apps >= 7.14.5 use the Advanced Cart Options deep link.
"Layouts, Hamburger Menu,"
# Layout Editor Easily manage and customize your layout in Point of Sale with powerful editing tools. Add, insert, resize, and delete rows and cells, and adjust cell padding for precise control. Enhance user experience with features like Paginate for full-screen views, override app config settings for tailored UI options, and Snap to Grid for accurate overlay alignment. - **[Edit Rows and Cells in the Layout Editor](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_editor_cells_rows.htm&release=264.0.0&type=5)** Easily manage your Point of Sale layout by adding, inserting, resizing, and deleting rows and cells. Customize cell padding and split cells horizontally or vertically for precise control, enhancing your design flexibility and efficiency. - **[Edit Layout Settings in the Layout Editor](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_editor_layout_settings.htm&release=264.0.0&type=5)** Customize layout settings in the Point of Sale Layout Editor to enhance user experience and control. Enable features such as Paginate for full-screen cell views, override app config settings for tailored UI options, and use Snap to Grid for precise overlay alignment. # Layout Image Best Practices Learn about the recommended specifications for images for use in Point of Sale layouts. Images uploaded through the CMS aren't compressed or altered in any way. While this offers a high degree of flexibility, it can also result in suboptimal performance if users upload images that are unnecessarily large. These are the best practices image specifications for layouts: 1. use compressed JPG files with a DPI of 72 2. a full-screen image should be no greater than 1,100 pixels in height by 700 pixels in width ![2x3 layout](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) 2x3 layout A 698 x 540pt image with corner radius of 15pt on a white background of 768 x 602pt with side padding 30 x 30pt and 40 x 30pt. Asset on the left: ![The left-hand image from a 2 x 3 layout showing the image padding.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_image_specs_2x3_layout_example_left.png)rt\_cms\_layouts\_settings\_image\_specs\_2x3\_layout\_example\_left.png Asset on the right: ![The right-hand image from a 2 x 3 layout showing the image padding.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_image_specs_2x3_layout_example_right.png) # Learn about Cycle Counts in Point of Sale Understand the distinctions among each Cycle Count type to best suit your retail environment. Point of Sale's Cycle Count feature empowers retailers to perform thorough product item counts within their stores, to manage the accuracy of their inventory. This functionality seamlessly integrates the recently counted inventory with the current quantity on hand (QTYOH). Counts made during the inventory check can automatically update the available inventory. For instance, consider a scenario where the QTYOH was 10, the available quantity was 8, and the latest count was 7. In this case, both the QTYOH and Available buckets are adjusted to 7. ## Prerequisites - Modern POS App Build: 6.3.4 or later - [Supported POS Device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - Offline Support: no ## Product Identifier Requirements When performing cycle counts, it's important to understand how products are identified during manual search and barcode scanning: - **Manual Search**: When you use manual search to add products to a cycle count batch, the system uses the product's GTIN (Global Trade Item Number) as the identifier sent to the backend. Products without a populated GTIN field cannot be added via manual search and will display a "Product not found" error. - **Barcode Scanning**: Barcode scanning is unaffected by GTIN requirements. When you scan a product barcode, the scanned code string is sent directly to the backend, regardless of what identifier is encoded on the physical label. If your product catalog does not natively include GTIN values, you can use field mapping to populate the GTIN field with an alternative identifier (such as productId or SKU). For more information on configuring field mappings, see [Map Data Feed Fields](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5 "Set Field Mappings in Point of Sale to transform data from external sources into the format that Point of Sale uses. Field mappings use transformations and regular expressions. When you import data feeds, the field mappings ensure that your data is accurate and consistent. This consistency helps to streamline your retail operations."). ## Types of Cycle Counts Cycle counts in Point of Sale CMS are categorized into manual, partial, and full types, each suited for different retail needs. ### Manual Cycle Count Manual cycle count involves counting items either by selecting them in the CMS or scanning them at the store level. There's no limit to the number of items that can be added, and items from all departments or product classes can be selected. ### Partial Cycle Count Partial cycle count is a method where only a portion or subset of the total inventory is counted, rather than counting the entire inventory all at once. Instead of waiting for an annual or semiannual full count, a partial cycle count can be implemented on a more frequent basis. For instance, a specific clothing section can be counted every week, which can help provide consistent and accurate checks. Partial cycle counts group items based on specific attributes of the product file. The selection criteria for partial cycle counts can be set using the Partial Cycle Count Product Attribute configuration flag. This flag is where a product attribute like brand or product class is entered. 1. In CMS, go to **Store Management > Store Settings > Inventory**. 2. Go to **Partial Cycle Count Product Attribute (partialCycleCountProductAttribute)** and enter a product attribute or product class. Only one value can be configured in this field. 3. Go back to CMS and go to **Products > Search Config**. 4. Edit an existing configuration. If one hasn't been created, refer to [Product Search Configuration in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_product_search_settings.htm&release=264.0.0&type=5 "Configure the product search function in the Point of Sale CMS to define the data fields used to match query text in search requests.") to create one. 5. Under **App Filters Fields**, enter the same attribute or product class that you previously configured in step #2. The Search Config needs to have the same filter field matching the **partialCycleCountProductAttribute** in order for a list of attributes to be displayed. ### Full Cycle Count Full cycle counts include all items in the product table that have an inventory record. Depending on your Product Catalog, larger counts take time to load the full amount. ## Understand Cycle Count Phases Interact with several distinct phases of the cycle count process in Point of Sale CMS, each falling under either the manager or sales associate's experience. ### Managing Cycle Count (manager experience) Managers are expected to oversee ‌associate counts and batches. They will have a view into completed batches and ongoing counts. The manager will be able to flag items for recounts and also complete the cycle count. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_managing_cycle_count.htm&release=264.0.0&type=5 "If you are a store manager, you can use manager-specific views in Point of Sale CMS to oversee store associate counts, manage and edit batches, and view product statuses to efficiently monitor and maintain accurate inventory.") ### Performing Cycle Count (sales associate experience) Sales associates who are performing counts on the floor are expected to be given store location assignments if they do their counts. To maintain the integrity of the count, Retail Cloud doesn't show expected counts or product information to the associate's experience. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_perform_cycle_count_as_associate.htm&release=264.0.0&type=5 "As an associate, you can create and use batches to perform cycle counts for store inventory in Point of Sale CMS.") ## Frequently Asked Cycle Count Questions Find answers to common questions about cycle counts. ### Blind Counts—Can counts be set to be blind? Yes, the expected quantity is only visible to managers in the Product View. Counters don't see the expected quantity—they just scan the items. ### Why do products with a quantity of 0 appear in the list? If the inventory count for an item is incorrect and shows as 0 or negative, the item needs to be included in the cycle count if it's physically present in the store and needs to be scanned. If these items aren't in the cycle count batch, they appear as Product not found when scanned. ### What drives the categories under the 'partial count' list? Do L2 > L3 categories appear? Yes, you can select subcategories. The main category is listed with an arrow next to it. By selecting the arrow, you can then select the subcategories. ### Is it possible to turn on a 'search feature' under the manual count option so that a user can create a list without needing to scan each item? A: Yes, store associates can type, for example, **skirt** in the search bar, and all skirts are displayed. They can then select the ones they want to include. ### Why does manual search return "Product not found" for valid products? If manual search returns a "Product not found" error for products that exist in your catalog, check that the product record has a GTIN (Global Trade Item Number) field populated. Manual search uses the GTIN as the product identifier sent to the backend. Products without a GTIN value cannot be added to cycle count batches via manual search. If your source catalog does not natively include GTIN values, you can configure a field mapping that populates the GTIN field with an alternative identifier (such as productId or SKU). To set up field mappings, see [Map Data Feed Fields](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5 "Set Field Mappings in Point of Sale to transform data from external sources into the format that Point of Sale uses. Field mappings use transformations and regular expressions. When you import data feeds, the field mappings ensure that your data is accurate and consistent. This consistency helps to streamline your retail operations."). Note that barcode scanning is not affected by this requirement. Scanned barcodes are sent directly to the backend as-is, regardless of the GTIN field value. # Learn More About B2B Commerce Learn about the possibilities with Salesforce B2B Commerce. Design a store website that showcases your brand and offers engaging customer experiences. Add products to the store, and configure the tax, shipping, and payment services. Optimize store performance using SEO, insights, and recommended actions. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Banner showing the Set Up A Commerce Store title](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/main-banner-lm-set-up-commerce-store.png)

Icon indicating start of learning map

Learn About B2B Commerce

Salesforce Help: Commerce Basics

Developer Guide: B2B Commerce Data Model

Trailhead: Salesforce D2C Commerce for Developers

Trailhead: Configure Your B2B Commerce Store

Trailhead: Salesforce Order Management for Salesforce Commerce

Icon indicating progress in the learning map

Get Started

Salesforce Help: Get Started with Salesforce Commerce

Salesforce Help: Start Selling Online

Salesforce Help: Salesforce Omnichannel Inventory Implementation

Salesforce Help: Salesforce Order Management Implementation

Image showing progress in learning map

Manage Products

Salesforce Help: Products

Salesforce Help: Product Sets

Salesforce Help: Product Categories

Salesforce Help: Import and Export Commerce Data

Image showing progress in learning map

Configure Checkout

Salesforce Help: Custom Checkout for a Commerce Store

Salesforce Help: Customize Checkout

Trailhead: Salesforce Payments for Administrators

Trailhead: Salesforce D2C Commerce for Developers

Image showing progress in learning map

Design Your Website

Salesforce Help: Design a Store in the Commerce Website Design Workspace

Salesforce Help: Use Experience Builder to Customize Your Store

Salesforce Help: Commerce Store Components

Developer Guide: Build Custom Components

Image showing progress in learning map

Optimize Your Store

Salesforce Help: Get Recommendations to Improve Store Performance

Salesforce Help: Store Search

Salesforce Help: Search Engine Optimization (SEO) for Commerce

Salesforce Help: Improve Store Performance with Commerce Intelligence

Salesforce Help: Commerce Einstein

Salesforce Help: AI-Powered Search for Commerce

Salesforce Help: Improve Page Performance During Add-to-Cart in a Commerce Store

# Let Admins Self-Provision Order Integration Business Manager administrators can now self-provision and activate order integration. How: In Business Manager, select **Administration** | **Global Preferences** | **Salesforce Order Management Configuration** and activate order integration. Access to the integration setting requires Business Manager administrator permissions. # Let Customers Save and Manage Their Payment Methods Give registered customers the option to save their payment information for future transactions. Saving payment methods reduces a customer's checkout time because previously entered information is filled in. For B2B and D2C stores that use custom checkout, you must enable this feature manually. For D2C stores that use managed checkout and Pay Now stores, this feature is enabled by default. The option to save payment methods isnʼt supported for guest customers. ### Required Editions ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_important.png) Important These steps apply to the refreshed Commerce app introduced in Summer ’24. We encourage you to use the refreshed app. If you’re still using the previous app, now called the Commerce Storefront Console, see [B2B and D2C Commerce Using the Commerce Storefront Console](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/commerce_storefront_console_help_summer24.pdf). To switch to the refreshed app, see [Enable the Refreshed Commerce App](https://help.salesforce.com/articleView?id=commerce.comm_refreshed_app.htm&type=5&language=en_US).
View supported editions.
Before you begin, make sure you created a payment method set. For instructions, see [Set Up Salesforce Payments for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.payments_add_merch_acct.htm&language=en_US). 1. From the store home page, select the B2B or D2C store from the dropdown menu. 2. Click **Experience Builder**. 3. From the Pages dropdown list, select **Checkout**, and then select the Salesforce Payments component on the page to reveal the properties. 4. Select **Enable saved payments**. 5. For stores created before Summer ‘24, update the Saved Payment Methods component. 1. From the Pages dropdown menu, select **Saved Payment Methods**. 2. Remove the Saved Payment Method header, component, and Add button from the page layout. 3. From the components list, select the Saved Payment Method component and place it on the page layout. 4. Click the component to open the properties. 5. Expand the header and select **Display header**. 6. If it's not selected, select **Enabled saved payments**. 6. Publish the site. When a registered customer checks out, the checkbox to save the payment method is now available. ![Checkbox to save a payment method](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_checkbox_save_payment_methods.png) From My Account, a registered customer can view, add, and delete their saved payment methods. ![Saved payments list in the account profile](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/view_saved_payments.png) #### See Also - [Salesforce Payments Setup](https://help.salesforce.com/s/artivleView?id=commerce.payments_setup_intro.htm) # License Requirements for Custom Checkout Order Tracking To comply with B2B Commerce licensing requirements, make sure that your custom checkout implementation is tracking orders for Gross Merchandise Value (GMV) and Price Per Order (PPO). If your cart-to-order process invokes the Cart to Order flow core action or the Commerce Webstore Checkout Orders Connect REST API, no additional steps are required. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) If not, you must implement an Apex method for order tracking. In your custom cart-to-order process, invoke the `licenseCompliance()` method from the `B2BCheckoutController` class. This method requires you to input the IDs of a cart and the order created from it. You must use the order entity, not a custom object. The order’s status category must be `Activated`. To verify that your orders are accurately tracked, see [View Your Salesforce Org’s Usage-Based Entitlements](https://help.salesforce.com/s/articleView?id=platform.users_usagebased_entitlements_viewing.htm&language=en_US). Confirm that the Amount Used column is populated for Commerce Orders Placed and Commerce GMV. # Limit Allowed Component Types Developers can now limit which components are added to a region by defining an allowlist in `component_type_inclusions` in addition to the existing blocklisting via `component_type_exclusions`. # Limit Source Code Group ID Characters Source code group IDs are now limited to 28 ASCII characters. The limit applies to source codes defined using the Business Manager Source Code Creation page and through import. If a source code exceeds 28 ASCII characters, an error message states the character limit. Previously, source code IDs that exceeded 28 ASCII characters were truncated. # Link Account Manager Account for SSO without MFA New Account Manager users can now use using their Account Manager username and password to link their account with Salesforce Identity or a third party IDM (for example, OKTA) for SSO/federation. Previously, users were required to use multi-factor authentication (MFA) to link to Salesforce Identity or a third party IDM for SSO/federation. # LINK Marketplace Retirement The LINK Marketplace is now retired. To help you extend B2C Commerce, we’ve migrated all apps from the LINK (B2C Commerce) marketplace to AppExchange – made up of cartridges and headless integrations. The AppExchange is now the sole Salesforce marketplace for B2C Commerce Integrations. B2C Commerce independent software vendor (ISV) partner cartridge code has been removed from Salesforce GitHub repositories, and the LINK Program has officially concluded. How: All B2C Commerce cartridges and headless integrations are now discoverable on [AppExchange.com](http://appexchange.com/) by searching for B2C Commerce or the ISV partner name in the search box. #### See Also - [Expanded Commerce Ecosystem on AppExchange](https://appexchange.salesforce.com/appxContentListingDetail?listingId=a0N3u00000RMnd3EAD) # Linking to Salesforce Identity Disabled from Business Manager Screensaver You can no longer link Account Manager profiles to Salesforce Identity using the Business Manager Screensaver. This reduces errors or issues during the linking process. # Locales Review the new B2C Commerce Page Locales Setting in the 20.6 release. - **[Check Numeral System Settings for Locales](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_w7405189_locale_numerals_la.htm&release=264.0.0&type=5)** Locales now correctly display numbers as defined in Business Manager in the locale's Numeral System setting. Previously, in some cases, the locale used the locale's default Numeral System even though a different Numeral System was configured in Business Manager. # Localization Review the update to B2C Commerce localization in the 20.5 release. - **[B2C Commerce Business Manager Available in German](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_bm_german_localization_je.htm&release=264.0.0&type=5)** The language pack for Business Manager is now localized into 8 languages including French, Italian, Portuguese, Spanish, Japanese, Simplified Chinese, Korean and for the first time German. In addition, the B2C Commerce release notes and the release highlights in the Message Center are also available in German. # Localize a B2B Guided Shopping Agent Reach more customers with a multilanguage Guided Shopping Agent for a B2B store. Configure the agent to interact with customers in their preferred language. ### Required Editions
View supported editions.
Before you begin: - [Create a guided shipping agent for a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_create_agent.htm&language=en_US). - [Create an Omni-Channel routing flow for the B2B Guided Shopping Agent](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_omnichannelflow.htm&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note If a buyer changes the store locale during an agent chat session, the agent doesn't change its language. To use the new locale, the buyer must end the chat and start a new one. 1. Create a custom parameter on the Messaging Session object that maps to a variable in your inbound Omni-Channel flow. 1. In your Salesforce org, click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter and select **Messaging Settings**. 3. Select the name of your channel. 4. Under Custom Parameters, click **New**. 5. Enter a Parameter Name, and select the Data Type. The Parameter API Name and the Channel Variable Name are automatically populated. If you select String as the Data Type, also specify the maximum length of the string. 6. Save your changes. The new custom parameter is listed in the Commerce Parameters section. 7. Under Parameter Mappings, click **New**. 8. Select Language as the value for the Parameter field. 9. Enter endUserLanguage in the Flow Variable Name field, and save your changes. The new parameter mapping is listed in the Parameter Mappings section. 2. Update your inbound Omni-Channel flow so that it sets the value of the Messaging User Language context variable field. 1. In the App Launcher, find and select **Automation**. 2. Click **Flows**. 3. Select the inbound Omni-Channel flow and open it. 4. In the **Manager** tab, click **New Resource**. 5. Select **Variable** as the Resource Type. 6. Enter endUserLanguage as the API Name, and select Text as the Data Type. 7. Select **Available for input**. 8. Click **Done**. 9. Add an element, Update Records, immediately before the Route Work element in the flow. - Make sure that you select **Specify conditions to identify records and set fields individually**. - Select **Messaging Session** as the object type. - In the Filter Records section, filter based on the recordId value. 10. In the messaging session record element, under Set Field Values, add a field. - Enter endUserLanguage for the context variable field API name. - Enter endUserLanguage for the flow variable API name. 3. Activate pre-chat. 1. At the top of the page, click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In the Quick Find box, enter and select **Embedded Service Deployments**. 3. Select the embedded service deployment that you created for the channel your agent is using. 4. Click **Edit Pre-Chat**, and then select **Activate the pre-chat feature**. 5. Under Hidden Pre-Chat Fields, add Locale to the Selected column. 4. Add the embedded messaging component to your page. 1. At the top of the page, click ![Setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Setup**. 2. In the Quick Find box, enter and select **All Sites**. 3. Click **Builder** next to your B2B store. 4. Click the **Components** widget. 5. Drag and drop **Embedded Settings** in the store footer. 6. Republish your store. 5. To test your language setup for a channel, select **Test Messaging** on the embedded service deployment setting page. #### See Also - [Customize Pre-Chat for Messaging fo In-App and Web](https://help.salesforce.com/s/articleView?id=sf.miaw_custom_prechat_2.htm&language=en_US) - [Map Pre-Chat Values in Omni-Channel Flow](https://help.salesforce.com/s/articleView?id=sf.miaw_map_messaging_2.htm&language=en_US) - [Add a Content Security Policy (CSP) Trusted Site for the Commerce Einstein Domain](https://help.salesforce.com/s/articleView?id=commerce.comm_einstein_csp_trusted_site_add.htm&language=en_US) # Localize Marketing Consents in B2B Commerce Provide consent requests to buyers in their preferred language. ### Required Editions
View supported editions.
Before you begin, - [Enable Translation Workbench](https://help.salesforce.com/s/articleView?id=commerce.comm_translation_workbench.htm&language=en_US). - [Configure Salesforce for your global store](https://help.salesforce.com/s/articleView?id=commerce.comm_config_org_for_international.htm&language=en_US). - [Enable markets for B2B authenticated users](https://help.salesforce.com/s/articleView?id=commerce.comm_markets_b2bauthbuyers.htm&language=en_US). - [Configure languages and currencies for your store](https://help.salesforce.com/s/articleView?id=commerce.comm_lang_curr_international_b2b_store.htm&language=en_US). - [Enable marketing consents](https://help.salesforce.com/s/articleView?id=commerce.comm_marketing_consents_enable.htm&language=en_US). - [Enable data translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&language=en_US). To localize marketing consents in your store, complete these steps. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Translation Workbench, and select **Export**. 3. Select **Data** as the metadata type. 4. Select **Web Store Consent Channel Definition**. 5. Click **Export**. 6. On your local system, open the .STF file you downloaded. 7. Make edits to the file for each language in which consents are displayed. Add the language code and the translated text for each row in the file. 8. Save your changes. 9. In the Quick Find box, enter Translation Workbench, and select **Import**. Select the file from your local system and then click **Import**. # Localize Product Tax Classes with the Localized Tax Class ID Attribute If you operate one site across multiple regions, you can use the localizedTaxClassId to define different tax class Ids for the same product in different locales. The new attribute eliminates the need to map a different tax rate for each product that requires a specific tax handling. How: The attribute is a global product preference. To change your system preference to use the localizedTaxClassId, in Business Manager, select **Administration** | **Global Preferences** | **Products**. Check Localized Tax Class for Product. The taxClassId is the default for SFRA and SiteGenesis sites. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The taxClassId attribute is not changed or deprecated. You can provide values for both attributes, but only the active attribute is used. # Localize Product Variation Data If you’re using product variations in your B2B store, you can translate the variation attribute names into languages that your org supports to offer product variations in multiple locales. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Translate, and then select **Translate**. 3. Under Select the filter criteria, enter these values. - Language—Select the language that you’re translating to. - Setup Component—Select **Custom Field**. - Object—Select **Product Attribute**. 4. For each attribute, hover over the Field Label Translation column, and click the pencil icon to edit the field. Enter the translation for the field. 5. Repeat these steps for each language translation. #### See Also - [Product Variations and Attributes](https://help.salesforce.com/s/articleView?id=commerce.comm_var_att_intro.htm&release=264.0.0&type=5 "Use variations to extend the range of products that you offer in your B2B store. For example, add size and color options to a tee shirt. Configure variations to be searchable in your stores and available in multiple languages.") # Localize Promotion Data You can manually enter translated text for promotion names, display names, and terms and conditions if you have Data Translation enabled. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Go to the promotion that you want to add translations to. 2. On the Translations tab, click **Add Translation**. The Translations tab is available only if you have Data Translation enabled for your org. 3. Select the language, and enter the translated text. 4. Click **Save**. 5. To load the translation, refresh the store page. #### See Also - [Enable Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&release=264.0.0&type=5 "When you enable data translation, you can translate the data stored in your B2B store product, category, and promotion fields. You can also enable data translation for custom text and URL fields on the product and category objects.") # Localize Receipts in POS App Use Point of Sale (POS) App to localize the content of the paper receipt based on the user’s choice in the order confirmation screen. Prerequisites - Modern POS App Build: 6.3.1 and later - Platform Support: iPad, iPhone - Offline Support: yes ## Paper Receipt Configuration In Mobile Configuration Settings 1. Go to **Modules > POS > Receipt Configuration**. 2. Select the languages to be supported in the **Languages** field. 3. Set the desired default language in **Default Language** field. 4. Go to the **Text Fields** section and find a tab for all the supported languages. 5. Set the localized text for all the text fields in this section for each tab and click **Save**. ## Configuration Receipt Language Option in Order Confirmation Layouts 1. Complete the previously-mentioned mobile configuration setting for the receipt language support 2. **Layout Settings > Order Confirmation > Select the existing order confirmation layout** 3. Select the cell where the language dropdown needs to be added 1. Select **Cell Content > Form Element > Dropdown list** 2. Add “**ps.print.language**” in field 3. Add any place-holder text if needed 4. Select add options and use the key for each language 5. **Display name**: English, **Key** : en 6. **Display name**: French, **Key** : fr 7. **Display name**: Dutch, **Key** : nl 8. **Display name**: Spanish, **Key** : es 9. **Display name**: Polish, **Key** : pl 10. **Display name**: Portuguese, **Key** : pt 11. **Display name**: Japanese, **Key** : ja 4. Save to view the dropdown list in the layout. 5. Save the layout. ## User Documentation Users can see the preconfigured language in the order confirmation screen and select the ‌language to print the receipt. ![The POS app asking you what language you want your paper receipt in, with Polish selected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_receipt_localoze_pos_app_1.png)![The POS App asking you what language you want your paper receipt in, with the user selecting English at the bottom.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_receipt_localization_2.png) ## Limitations Users can see the preconfigured language in the order confirmation screen and select the ‌language to print the receipt. - The terminal translates the EMV lines in Elavon and receipt lines for Adyen only based on the end customer’s language choice with their card issuer - POS App supports only English, French, Dutch, Spanish, Polish, Portuguese, Japanese - The product names, store addresses, and tax names are from the data feeds for the specific feed uploaded in CMS. These won't be localized to the selected language. - The POS app supports printing Japanese characters on Epson printers starting with build 11.1.1. - TM-m30II-NT or newer models will work out of the box, as they support all Unicode characters, including Japanese. - TM-m30II or older models require additional considerations: - The printer has to be purchased in the target region (for example, to print in Japanese, purchase a Japan-region model). - If the printer isn't purchased in the target region, a language-specific font file has to be loaded onto the printer via a firmware update. # Localize Store Labels in Bulk When you add languages to Experience Builder, some component labels are translated for you into the selected language. If you add more languages, you can translate your B2B store’s text elements in bulk by using the translation tool. You can also translate configurable labels manually in the component properties. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. On your store’s home page, click **Website Design**, and then click **Experience Builder**. 2. Click ![Experience Builder Settings icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) and select **Languages**. 3. Click **Add Languages** or **Edit Languages**, and choose which languages to make available for your store. 4. Click **Export Content**. 5. Select the language that you want to translate to, and click **Export**. 6. From [GitHub](https://github.com/forcedotcom/b2b-commerce-on-lightning-quickstart/tree/master), click **Code**, and then click **Download ZIP**. 7. Unzip the file, and select **examples** | **xlf translator** | **engine** | **index.html**. You're redirected to the translation tool. 8. In the translation tool, click **Upload File**, upload the XLF file, and click **Translate**. The XLF file is translated. 9. Go to the Experience Builder Languages settings page and under Import Translated Content, click **Upload File** and upload your translated file. 10. At the top of the navigation bar, click ![Languages icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_language_icon.png) and select the store’s language. Your store is translated to the selected language. #### See Also - [Manually Localize Store Labels](https://help.salesforce.com/s/articleView?id=commerce.comm_translate_store_labels_manually.htm&release=264.0.0&type=5 "Some B2B component labels are translated for you into the store's selected language, but you need to manually translate some labels. To translate your store’s text elements in bulk, use the translation tool.") # Locate and Manage Store Associates Edit an associate's information, locate profiles, or reset passwords, all from one place in Point of Sale CMS. To locate and manage a store associate: 1. In CMS, go to **Store Management > Associates > Associates**. 2. Configure the search filter using a combination of the following: - **Store** - This filters all the store associates of a selected store. - **Associate Status** — This filters all the store associates with status as active, inactive, or both. - **Associate Role** — This filters all the store associates based on their role (for example Store Associate, Store Manager, Area Manager, and so on) - **Search Box** — This filters all the store associates based on keywords (for example Lily, manager, admin, and so on) After a store associate ID has been created, it can't be changed. A new user needs to be created. # Location Fields The Location object represents a location that fulfills orders, such as a warehouse or retail store. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Location object. | Field Label | Description | | --- | --- | | Created By | The user who created the location record. | | Created Date | The date when the location record was created. | | Description | The description of the location. | | Driving Directions | The driving directions to the location. | | External Reference | The ID of the location. | | Last Modified By | The user who last changed the location record. | | Last Modified Date | The date when the location record was last changed. | | Location | The name of the location. | | Location Name | The name of the location. | | Location Type | The location type, for example, store or warehouse. | | Owner | The owner of the location. | | Parent Location | The name of the location’s parent location, if any. | | Sync with OCI | Indicates whether to synchronize location data with the Omnichannel Inventory service. | | Time Zone | The location’s time zone. | | Visitor Address | The physical address of the location. Order Management uses this address for proximity-based routing. | #### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Location Graph Set up your Location Graph by creating locations and location groups in your Salesforce org and committing them. This process is described in [Manage Locations and Location Groups](https://help.salesforce.com/articleView?id=commerce.inv_manage_locations_and_location_groups.htm&language=en_US) in Salesforce Help. Set up your Location Graph by creating locations and location groups in your Salesforce org and committing them Use Connect in Apex, Connect REST API, or Omnichannel Inventory console app. You can’t use the headless Commerce API to set up your location graph. For information on managing your Location Graph with Connect in Apex, see [OmnichannelInventoryService Class](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_ConnectAPI_OmnichannelInventoryService_static_methods.htm) in the Apex Reference Guide. For information on managing your Location Graph with Connect REST API, see [Salesforce Omnichannel Inventory Resources](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_omnichannel_inventory_resources.htm) in the Connect REST API Developer Guide. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note Configuring the location graph isn’t a straightforward process. Before you begin, study the documentation. Here’s an overview of the steps to follow in your Salesforce org: 1. Create at least one location type. 2. For each location that fulfills orders, create a Location record. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note When using D2C Commerce, your location graph is limited to one location. 1. Set Should Sync With OCI to **True**. 2. Set Is Inventory Location to **True**. 3. Set the Location Type as appropriate. 4. Set the Visitor Address to the physical address of the location. 5. Set the External Reference to a unique value. If you use Salesforce B2C Commerce, use the External Reference to associate the location with a dedicated B2C Commerce inventory list. 3. For each storefront, sales channel, or desired logical group of locations, create a Location Group record. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_note.png) Note When using D2C Commerce, your location graph is limited to one location group. 1. Set Should Sync With OCI to **True**. 2. Set Is Enabled to **True**. 3. Set the External Reference to a unique value. If you use Salesforce B2C Commerce, use the External Reference to associate the location group with a dedicated B2C Commerce inventory list. 4. For each location, create a Location Group Assignment record for each location group that it belongs to. 1. A location doesn’t have to belong to any location groups. 2. A location can belong to multiple location groups. Create a location group assignment for each one. 3. Assign at least one location to each location group. 5. Commit the changes to Omnichannel Inventory by following the instructions in the help topics. Adding or removing locations or location groups after loading inventory availability data can trigger large availability data and cache updates. To mitigate the performance impact, we recommend these practices: - If you use Salesforce B2C Commerce, follow the instructions in [Omnichannel Inventory Location Graph Changes](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/inventory/b2c_omnichannel_inventory_location_graph_changes.html) in the B2C Commerce Infocenter. - Schedule location graph changes for times with low-order traffic. - Add or remove only one location or location group at a time. - After making a change, wait for the update to finish before importing new inventory availability data. # Location Group Assignment Fields The Location Group Assignment object represents the relationship between a location and a location group that includes it. You can assign a location to multiple location groups. If a location is assigned to more than one location group, each group has a location group assignment object. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Location Group Assignment object. | Field Label | Description | | --- | --- | | Created By | The user who created the location group assignment record. | | Created Date | The date when the location group assignment record was created. | | Last Modified By | The user who last changed the location group assignment record. | | Last Modified Date | The date when the location group assignment record was last changed. | | Location | The name of the location associated with the location group assignment. | | Location Group | The name of the location group associated with the location group assignment. | | Location Group Assignment | The name of the location group assignment. | #### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Location Group Fields The Location Group object represents a group of inventory locations. You can define location groups according to the logic of your business needs. For example, a location group can represent the warehouses in a geographic region, or it can include the fulfillment centers associated with a particular online storefront. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Location Group object. | Field Label | Description | | --- | --- | | Created By | The user who created the location group record. | | Created Date | The date when the location group record was created. | | Description | The description of the location group. | | Enabled | Indicates whether the location group is available to fulfill orders. This option is selected by default. | | External Reference | The ID of the location group. When Omnichannel Inventory is integrated with B2C Commerce, this value associates the location group with an inventory list in B2C Commerce. This value must match the inventory list ID in B2C Commerce. | | Last Modified By | The user who last changed the location group record. | | Last Modified Date | The date when the location group record was last changed. | | Location Group | The name of the location group. | | Location Group Number | The name of the location group. | | Owner Name | The owner of the location group. | | Sync with OCI | Indicates whether to synchronize location group data with the Omnichannel Inventory service. | #### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Locations and Location Groups Omnichannel Inventory aggregates inventory availability information across locations and location groups. Use the Omnichannel Inventory Console to add, edit, and delete locations, location groups, and location group assignments. Search, sort, and filter data in the list views, or customize the list views to show only the records or data that you want. Access the location list views from the navigation bar in the Omnichannel Inventory app or from the Location Management tab in the console. - Locations: Represent physical locations—distribution centers, warehouses, or retail stores—where you have inventory available for fulfilling orders. View location details and location group assignments for the location. Assign a location to one or more location groups based on your fulfillment process. - Location groups: Represent sets of related locations. A location group provides an aggregate view of inventory availability across multiple locations in the group. View location group details and a list of locations assigned to the group. - Location group assignments: Represent the relationships between your locations and your location groups. By providing inventory availability at the aggregate level across multiple locations and at the individual location level, you can segment and activate inventory within the storefronts of your choice. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_tip.png) Tip Set up your locations and location groups before you upload inventory data to the Omnichannel Inventory service. - **[Add Locations and Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_add_locations_and_groups.htm&release=264.0.0&type=5)** Use the Omnichannel Inventory app to add locations, location groups, and location group assignments in this order. - **[Manage Locations](https://help.salesforce.com/s/articleView?id=commerce.inv_locations.htm&release=264.0.0&type=5)** Locations represent physical locations—distribution centers, warehouses, or retail stores—where you have inventory available for fulfilling orders. Manage them using the Omnichannel Inventory Console. - **[Manage Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_location_groups.htm&release=264.0.0&type=5)** Location groups represent sets of related locations. Assign locations to a location group. A location group provides an aggregate view of inventory availability across the locations in the group. Manage them using the Omnichannel Inventory Console. - **[Shared Group Reservations](https://help.salesforce.com/s/articleView?id=commerce.inv_shared_group_reservations.htm&release=264.0.0&type=5)** When an order is placed, Omnichannel Inventory reserves inventory to fill that order. Because a reservation can be held at a location group, the system considers that one or more of the group’s member locations can also be a member of another location group. Before the reservation is routed to an individual location, the system first attempts to allocate a location group reservation to individual locations that aren’t shared. - **[View Commit Status](https://help.salesforce.com/s/articleView?id=commerce.inv_view_async_operations_logs.htm&release=264.0.0&type=5)** Async Operation logs store information about each batch of changes that you commit to the Omnichannel Inventory service. Use the logs in the Omnichannel Inventory Console to view details about committed changes and to troubleshoot issues with failed commits. #### See Also - [Manage Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_location_groups.htm&release=264.0.0&type=5 "Location groups represent sets of related locations. Assign locations to a location group. A location group provides an aggregate view of inventory availability across the locations in the group. Manage them using the Omnichannel Inventory Console.") - [Omnichannel Inventory App](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_app.htm&release=264.0.0&type=5 "Use the Omnichannel Inventory app to view, add, and edit inventory SKU counts and manage locations, location groups, and location group assignments.") # Log in to Account Manager with SSO The Account Manager login screen now supports Single Sign-On (SSO). This enhancement simplifies the login process for new users. To link their account with Account Manager and get auto-provisioned in Account Manager, new users, who connect to Commerce Cloud with SSO, click **Link for Single Sign-on**. This setup requires that Just-in-time user provisioning is enabled. ![Account Manager Login](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/account_manager_login.png) **See Also** - [User Management with Identity Federation](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_user_management_with_identity_federation.htm&language=en_US) - [Log in with Identity Federation Enforced](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_log_in_with_identity_federation_enforced.htm&language=en_US) - [Log in with Identity Federation Allowed](https://help.salesforce.com/s/articleView?id=cc.b2c_account_manager_log_in_with_identity_federation_allowed.htm&language=en_US) # Log Users Views of Personal Identification Information Configure Business Manager to make security log entries when a user views a shopper’s personal identification information (PII) in the Order module, Customer module, or Coupon module. When a user clicks a button, tab or field that displays a shopper’s PII, the security log updates with details about when, who, and what is viewed. For example, when the user views an order, the security log is updated with a timestamp, the user, and the order number viewed. **How:** In Business Manager, click App Launcher, and then select **Administration** | **Global Preferences** | **Feature Switches**. Check the box for the Enables Security Log on User Access to Customer PII Business Manager Screens feature switch. Click **Apply**. # Look Up and Adjust Inventory with AI Tools Check real-time Omnichannel Inventory availability for a stock keeping unit (SKU) and correct quantities in one conversation. With headless Order Management, the AI client reads the group rollup and per-location breakdown, applies your change, and rereads availability to confirm the result. ### Required Editions
View supported editions.
To read availability and correct inventory, you usually open the inventory record, interpret on-hand, reserved, and safety stock values, and edit a location by hand. With headless Order Management, an inventory manager can do that work in a conversation and see exactly how a change moves the available-to-order and available-to-fulfill numbers. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Because an AI client uses large language models, which are probabilistic, results can vary from one run to the next. If you get an unexpected result, describe to the agent what happened so that it can help you diagnose and adjust. You don't need a specific model. ## Scenario Pixel Point Retail is running a flash sale and a store manager reports that a popular boot looks oversold in the US-West region. Marcus, an inventory manager, asks the AI client for the current inventory for the SKU in that location group. In one request, the agent returns the group rollup and the per-location breakdown, showing overly high safety stock at the Dallas location. Marcus asks the agent to lower it. The agent applies the change, rereads availability, and confirms the new available-to-order value. That takes about a minute, and Marcus never opens an inventory record. Marcus also asks the agent for a reminder to reset the value after the sale. ## Requirements Complete the shared setup in [AI Agent Use Cases for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_steelthread_overview.htm&release=264.0.0&type=5 "Use an AI agent to set up Order Management and complete common Order Management tasks conversationally, such as finding and canceling order items."). This use case also needs: - Omnichannel Inventory configured with locations, location groups, and inventory records. - The Omnichannel Inventory Manager permission set. Users need that permission set, or the System Administrator profile, to access Omnichannel Inventory features. Order Management Operations Manager also includes the Use Omnichannel Inventory API permission. Order Management: Agent without Omnichannel Inventory and Order Management: Operations Manager without Omnichannel Inventory don't include inventory functionality, so they can't complete this use case. - SKU identifiers that match between your storefront and Omnichannel Inventory. The inventory functionality comes from the **Salesforce Order Management APIs** (Generally Available), which read Omnichannel Inventory availability and update inventory records. This use case is recommended for inventory and operations managers. It assumes familiarity with on-hand, reserved, safety stock, available-to-order, and available-to-fulfill. ## Agentic Tips - Describe your goal in your own words. For example: - "What's the current inventory for SKU BOOT-WOMENS-BRN-8 in group US-West?" - "How many of BOOT-WOMENS-BRN-8 are available to order in US-West, and why so few?" - "Lower the safety stock for this SKU to 50 at the Dallas location." - Include the SKU, the location group or location, and the new value. - Have the agent read availability before it acts. Apply one change, and then have the agent reread availability to verify the effect. - Approve each change. Review and confirm each write before the agent applies it. - Ask the agent to remind you to reset a temporary change. - Avoid pasting credentials into a prompt. The agent acts as your authenticated user through the connected org. ## Design Considerations - Omnichannel Inventory derives availability values. When you change one value, such as safety stock, the agent rereads and shows how available-to-order and available-to-fulfill changed as a result. ## Look Up and Adjust a SKU Look up inventory for a SKU and correct a value. ### Required Editions
View supported editions.
1. Confirm that your AI client is connected to Omnichannel Inventory as an authenticated user with permission to read and write inventory records. 2. Ask the agent for the current inventory for a SKU in a location group. The agent returns the group rollup—on-hand, reserved, safety stock, available to order, and available to fulfill—along with the per-location breakdown. 3. Ask the agent to correct a value, such as safety stock at a specific location. Review and confirm the change. 4. Let the agent update the inventory record and reread availability. The agent confirms the update and shows the refreshed availability values. You can see that the adjustment took effect and how it changed the quantities available to order and fulfill. # Loyalty Deep Links Explore a detailed list of Point of Sale loyalty deep links, each with a clear description and supported context. Links include features for displaying the ADS and general loyalty screens as well as unlinking loyalty details. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.
Deep Link Description Supported Context
ADS Loyalty Displays the ADS Loyalty screen "Hamburger Menu, Layouts, Tab"
Loyalty

Configures the display style (Loyalty Barcode, Linear Points Graph, etc.) of the inline loyalty deep link.

Note
Note Allowed in split cells.
"Hamburger Menu, Layouts, Tab, Inline Deeplink, Split Cell Inline Deeplink"
Unlink Loyalty Removes the Loyalty ID from the local user defaults and attributions; cleans up any loyalty information in the app "Hamburger Menu, Layouts"
# LWR and Aura Store Templates Starting with Summer ’23, all new B2B stores are built on the Lightning Web Runtime (LWR) platform. Some B2B stores still use the Aura platform and, in some places, the Commerce App UI and documentation still refer to Aura features and components. If you’re using a new LWR store, you can ignore the Aura information. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Having all stores use the LWR platform allows you to build B2B stores using the same technology and components. LWR components use building blocks, which break up large components into smaller units, making it easier to customize components. For example, a Product Page can contain three multifunctional components with rich and varied features. Traditionally, customizing elements on the page required addressing all the components and rebuilding the entire page. The investment in time and resources can be steep. With building block components, LWR store pages are broken into discrete units of functionality that are easier and faster to customize. For example, it’s easier to add a custom variations component to the Product Page because you can swap out one component instead of rebuilding the entire page. You can drag building blocks onto a page from the Experience Builder component catalog as for other store components. If you’re using a B2B store built on an older Aura template, we recommend migrating the store to an LWR template. See the [B2B Commerce Aura to LWR Migration Guide](https://developer.salesforce.com/docs/commerce/lwr-migration/guide). #### See Also - [Set Up Commerce with the Automated Assistant](https://help.salesforce.com/s/articleView?id=commerce.comm_quick_start.htm&release=264.0.0&type=5 "Use the automated and guided assistant to configure your Salesforce org for Commerce and create an online store. Preview and polish the store before going live.") - [LWR Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_components.htm&release=264.0.0&type=5 "B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder.") - [B2B Commerce Aura to LWR Migration Guide](https://developer.salesforce.com/docs/commerce/lwr-migration/guide) - [B2B Stores Created with Aura Template: Special Configuration Information](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/AuraHelpTopics.pdf) # LWR Store Components B2B stores created with the unified Commerce Store template share the same Commerce components in Experience Builder. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) This table describes the options listed in the Commerce section of the Components panel unless noted otherwise. Commerce templates also include other Experience Builder components.
Component Description
Action Button Shows a button for page level actions, such as Edit or Proceed.
Add Address Button Shows a button that takes the customer to a form to add a shipping or billing address.
Add Payment Method Shows a form to capture saved payment method details
Address Card Shows the customer’s address.
Address Empty State Shows an empty state message when a shopper has no saved addresses.
Address Form

Shows a form to collect shipping or billing address details.

When a customer adds an address, they can choose to set it as their default.

Address List Shows a customer their saved shipping and billing addresses, which they can edit or remove.
Applied Promotions

Shows a list of all manual and automatic promotions applied to the cart.

The Applied Promotions component is a subcomponent of the Promotions component.

Approaching Discounts Shows a message that alerts customers their cart is approaching a discount for a promotion. This component can be added to only the Cart and Checkout pages.
Banner Shows the banner image for a product category.
Billing Address Shows a form to collect a billing address at checkout.
Breadcrumbs

Shows a link path to the current page in your store.

Choose whether to include the home page at the start of the link path, and whether to set the last item as a link to the current page.

Cart Contains the cart items component and a customizable empty cart state.
Cart Badge Shows a clickable icon that takes the customer to their cart. Shows the Mini Cart settings to customize a sliding mini cart preview.
Cart Card If the advanced carts management feature is enabled, this component shows the cart summary and cart options.
Cart Collaborator Count If the advanced carts management feature is enabled, this component shows the total number of collaborators who have access to the cart.
Cart Container If the advanced carts management feature is enabled, this component adds a container for the Cart List page. Provides slots for the heading, new cart button, and cart list tabs.
Cart Detail If the advanced carts management feature is enabled, this component shows the cart details.
Cart Items If the advanced carts management feature is enabled, this component shows the contents of the cart.
Cart List If the advanced carts management feature is enabled, this component shows carts in a list view. Includes empty state, error state, and cart card repeater.
Cart Lock Status If the advanced carts management feature is enabled, this component shows cart lock status during cart collaboration and on the Cart Detail page, shows the user who is checking out the cart.
Cart Menu If the advanced carts management feature is enabled, this component helps buyers view and access their carts.
Cart Options If the advanced carts management feature is enabled, this component adds a dropdown with cart actions: edit, set as default, and delete.
Cart Processing Status If multiple carts feature is enabled, this component shows the status of cart operations and helps users abort an active operation.
Cart Summary Shows the total cost and savings in the cart, including the subtotal, promotions, shipping, and tax.
Checkout Button Shows a button that the customer clicks to begin the checkout process.
Checkout Header

Shows a simplified page header to keep customers focused on checkout.

By default, this component includes the Site Logo and Cart Badge components.

Checkout Inventory Reservation (Deprecated)

Creates a reservation before the payment data is executed. Deprecated in Summer ‘25. If you use this component as part of an existing inventory flow set up before Summer ‘25, it still works as designed. If you remove the component from the Checkout page, you can’t re-add it. See Add the Inventory Reservation Component to the Checkout page (Deprecated).

The new streamlined place order flow creates inventory reservations automatically during the Checkout process. See Streamlined Place Order.

Checkout Layout: Accordion

Shows an accordion layout during checkout, which contains sections that expand and collapse in a specific order.

By default, this component includes other building block components.

Checkout Layout: One-Page

Shows a one-page layout during checkout with these sections that a customer can complete in any order.

  • Shipping section with the Contact Information, Shipping Address, and Shipping Instructions components
  • Shipping method section with the Shipping Method component
  • Payment section with the Payment, Billing Address, Checkout Notification, and Place Order Button components
Checkout Notification Shows a message for a notification or error that occurs at checkout.
Checkout Section

Divides checkout into sections. Add a heading and checkout components to each section.

See Design the Checkout Page in a Commerce Store

Commerce Footer

Contains the components that you want to appear at the bottom of each page in your store.

By default, this component includes the site logo and social links.

Commerce Header

Contains the components that you want to appear at the top of each page in your store.

By default, this component includes the site logo, multilevel navigation menu, search input, profile menu, and cart badge.

Contact Information Shows a form to collect email address and phone number details at checkout.
Cookie Consent Displays in a window at runtime, not in the footer. You can preview this component in Experience Builder to see how it appears to shoppers.
Country Selector

Shows a list of available countries based on the store’s market configuration.

The customer’s selection determines which language, currency, prices, products, and promotions are shown.

Coupons

Shows a coupon field.

The Coupons component is a subcomponent of the Promotions component. If your store doesn’t have manual promotions, you can delete the Coupons component.

Currency Formatter Formats currency for the customer’s country.
Create Cart Button If the advanced carts management feature is enabled, this component shows a button to create a cart.
Dual Payment

Shows a form to collect credit card or purchase order details at checkout. The default Dual Payment component doesn't support 3D Secure (3DS) authentication.

If you have Salesforce Payments, use the Salesforce Payments component instead.

Einstein Recommendations Component (Deprecated) Deprecated as of Summer '26. Use the Carousel component with the Product Recommendations data source instead. See Add Recommended Products to Store Pages.
Email Sign Up Form Shows a form for capturing the shopper's email address and the shopper's responses to one or more consent requests.
Express Checkout Shows buttons for Express Checkout payment options. Requires Salesforce Payments. Isn’t supported with split shipping or subscriptions. Doesn’t support inventory checks.
Frequently Bought Together Show customers products that are bought alongside the items that they're shopping for. Product recommendations are generated by Einstein and are based on customer interactions with the storefront.
Filters Shows filters for search.
Gift Option Shows a section at checkout to mark orders as a gift. Includes options for gift messages and gift wrapping.
Header - Center Logo Shows a header consisting of two rows. The first row shows a centered logo, and the second row shows a navigation menu.
Header - Center Navigation Shows a single-row header with a centered navigation menu.
Header - Search Focus Shows a header consisting of two rows. The first row shows a centered search bar, and the second row shows a navigation menu.
Header - Simple Shows a simplified single-row header.
Header - Split Spacing Shows a single-row header with a spaced navigation menu.
List Badge Shows a clickable icon that takes the customer to their wishlist(s).
Marketing Consent Settings Shows settings that let shoppers manage marketing consent preferences.
Multilevel Navigation Menu Shows a customizable menu bar for navigating up to 5 nested levels.
Navigation List Menu Shows a list of pages in your store. Usually appears in the left column on desktop computers and at the top of some mobile devices.
No Results Layout Shows a layout with no results on the search page.
Order Amount

Shows a summary of costs and savings for a previous order.

All selected fields display in the currency of the order.

Order Confirmation Error Message Shows a message when the order confirmation page is unavailable, with options to redirect the user to the order details page.
Order Confirmation Layout Shows order confirmation details and potential error messages.
Order Confirmation Message Shows an order number and confirmation message.
Order Content Layout Validates if the shopper has access to the order. If they don’t have access to the order, the shopper is redirected to the Order Lookup page.
Order Date Filter Shows a dropdown to filter the order last based on time.
Order Details Shows details about a previous order. By default, includes the date, account, order name, and status.
Order Delivery Group Shows the details of an order delivery group including recipient address, shipping costs, and order details.
Order Line Item Shows a product associated with an order summary.
Order List

Shows a list of previous orders. Customers can filter, sort, and reorder items.

To change the data displayed when a buyer switches to an external account, see Allow Buyers Access to External Accounts for B2B Stores.

Order Lookup Shows a form where guest users enter their information to access their order details. Can be used only when guest access in your store is enabled.
Order Summary Shows an order summary with order number, status, total cost, and date and time of order.
Order Summary Products Shows a list of the products that are included in an order summary, grouped by delivery group.
Order Summary Promotions Shows all promotions applied to a previous order.
Payment

Shows a form to collect payment details at checkout.

If you have Salesforce Payments, use the Salesforce Payments component instead.

Payment Processing

Shows a payment processing message when customers are redirected from a third-party site back to your store.

Requires Salesforce Payments.

Payment Summary Shows payment details
Place Order Button Shows a button that completes the checkout process.
Product Attachments

Shows a list of links to files that are related to your products, such as a specification sheet or user guide.

You specify the files to list on the product’s Media tab in the Product Workspace.

Product Bundle Shows an expandable section to display a product bundle's child products.
Product Card Shows product details and an optional quick view button.
Product Detail Headings Shows a header with the name of the product, the SKU, and other product fields added from the builder properties.
Product Detail Purchase Options

Shows the Add to Cart button and quantity selector.

If multiple carts feature is enabled, this component also shows the option to add a product to a saved cart.

Product Details (Tabular) Shows the product name and information in a table format.
Product Media Gallery Shows one or more images of a product. You can select the direction of the carousel images. Supports up to three images.
Product Pricing Details Shows discounted and promotional pricing details on the Product Detail page.
Product Pricing Information Shows pricing and promotion information based on the store’s price book.
Product Set Shows the products in a product set.
Product Variations Shows the variation selector dropdown, swatch, or pill to select a variation of the parent product.
Products Ordered Shows a lsit of products ordered, each item price, and an order subtotal.
Profile Details Shows the customer’s name, email address, phone number, and an option to change the password on their profile page.
Profile Menu Shows a menu with options for registered users.
Promotions Shows a coupon field and the applied promotions. Contains the Coupons component and Applied Promotions component.
Purchase Order

Shows a field to collect a purchase order number at checkout.

Only registered customers can generate a purchase order.

Purchased Products Shows a lsit of products purchased by the customer.
Quick Order Shows a simple form for customers to enter SKUs to add products to their cart.
Reorder Button Shows a button that lets customers start a new order based on a previous order.
Results

Shows products on results pages.

Only customers who are entitled to access the associated products can view them in search results.

The Results component only supports up to 4 product fields.

Results Layout

Contains components on results pages.

For example, you can configure the Filters, Sort Menu, and Results components within the Results Layout component.

Salesforce Payments

Shows a form to collect payment details using Salesforce Payments at checkout.

This component requires Salesforce Payments. If you have another payment provider, use the Dual Payment or Payment component instead. See Salesforce Payments.

Saved Payment Methods Shows a customer’s saved payment methods to use at checkout.
Search Input

Shows text terms and product image suggestions from the content of your store's catalog that match your customer's search activity.

To show product suggestions from that category, enter its category ID. If you don’t specify a category, the search results show products from the entire catalog. See Create Product Categories and Subcategories in a B2B Commerce Store.

Self-Registration Shows a form that lets customers register for your store when self-registration is enabled. See Configure Self-Registration for a B2B Store.
Shared Cart Activity If the advanced carts management feature is enabled, this component shows a log of collaborator actions on shared carts.
Shipment Tracking Shows the status progress using a customizable tracker that can show up to 5 tracking statuses.
Shipping Address

Shows a form to collect a shipping address at checkout.

Registered customers can use saved addresses.

Shipping Details Shows the shipping details of an order.
Shipping Instructions Shows a text field for shipping instructions at checkout.
Shipping Method

Shows radio buttons for shipping options at checkout.

Shipping method options are pulled from shipping integration settings.

Social Links Shows a list of links to social media sites.
Sort Menu Shows a dropdown that the customer can use to sort search results.
Split Shipment Layout Shows the split shipment layout at checkout including the split shipping header, split shipping cart items, and cart summary.
Split Shipping Cart Item Shows a list of cart items and their shipment details. Requires enabling Split Shipping.
Split Shipping Header Shows a header to save or cancel a split shipment. Requires enabling Split Shipping.
Status Pill Shows a small, reusable label that shows a short tag at a glance. For example, use it to tag a cart as Default.
Sticky Container Contains the components that you want to remain on-screen during mobile scrolling.
Subscriptions Shows options to select subscription pricing.
Subscription Policy Shows a subscription policy disclaimer. This component shows only if a subscription is in the cart.
Tiered Discounts

Shows tiered discounts for a product, if available.

See Set Up Price Tiering.

Top Sellers

Shows products in a category that you specify.

Enter the ID of the category to display. If you don’t specify a top sellers category, the header text doesn’t display on the page.

Wishlist Shows all the products in a customer’s wishlist.
User Registration Shows a form to let users create an account and use passwordless login at checkout.
#### See Also - [Standard Components for LWR Templates](https://help.salesforce.com/s/articleView?id=experience.networks_byo_lwr_components.htm&type=5&language=en_US) # Maintain PCI Compliance with Synchrony Add a form to your Point of Sale app for customers that opt to use Synchrony as a payment method. After a store associate submits the form, the app retrieves a secure, PCI-compliant token that substitutes for a credit card number. The token enables the checkout to remain compliant without collecting the customer's full card information. - **Remaining Balance** –This read-only field displays the remaining balance of the customer’s order. - **Amount** – The amount that the customer finances and applies to the order balance. - **Payment Type Code** – A code that represents the financing option the customer chooses, such as 112 for a 6-month interest-deferred plan. - **First Name** – Customer’s first name. - **Last Name** – Customer’s last name. - **Postal ZIP Code** – Customer’s postal ZIP code. - **Social Security Number (SSN)** – The last four digits of the customer’s SSN. - **ID Validation Checkbox** – To confirm that a store associate has checked the customer’s identity by looking at a government-issued ID. The form must include these fields for financing details, customer information, and customer identity verification. This feature works only on an iPhone or iPad and requires: - **Modern POS App Build** 10.10.1 or later You can’t use the finance tender form offline. #### See Also - [_Salesforce Help:_ Set Up Processing of Synchrony Credit Card Purchases using Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony.htm&release=264.0.0&type=5 "The POS app, in combination with an Adyen terminal, supports the recognition of Synchrony cards and enables financing transactions. During checkout, when a customer chooses to pay with their Synchrony PLCC and the card is presented, the store associate can process the payment. If the order total meets a set threshold, the store associate can offer financing, which requires the customer to sign an electronic disclosure and financing contract. The threshold, electronic disclosure, and financing contract terms are customizable in the CMS.") - [_Salesforce Help:_ Create a Finance Form Layout for Synchrony](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony_finance_form.htm&release=264.0.0&type=5 "To maintain Payment Card Industry (PCI) compliance with Synchrony, add a finance tender form to your Point of Sale CMS.") - [_Salesforce Help:_ Add a Finance Tender Layout to a Point of Sale App](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_tender_layout.htm&release=264.0.0&type=5 "Assign a finance tender layout to an app configuration in Point of Sale CMS.") # Make Product and Price Book Updates with Granular Replication Use the granular replication feature to select specific products and price table entries for replication from staging to production. This feature allows for targeted updates, ensuring your production data remains current without full-scale overhauls. **How:** Activate the granular replications feature switch in your staging and production environments. In **Business Manager** | **Administration** | **Global Preferences** | **Feature Switches**, select the Granular Replication feature switch. #### See Also - [Enable Granular Replication for Your Site](https://help.salesforce.com/s/articleView?id=cc.b2c_enable_granular_replication_for_your_site.htm&language=en_US) # Make Product Variations and Variation Attributes Searchable Set up Search for product variations and variation attributes so that they’re discoverable in your B2B store. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Add product attributes as searchable fields so that they’re included in search indexing. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings****Search**. 3. Click **Searchable Fields**, and then click **Manage Searchable Fields**. 4. Select the fields that you want to make searchable, and click **Save**. 2. Add attributes as search filters so that they’re visible as facets on results and category pages. 1. Go back to the Search page, and open the **Results Filters** tab. 2. Click **Manage Filters**. 3. Move the attributes to use as search filters to the Selected Fields list. 4. Arrange the list, and click **Save**. 3. Add the Variation Attributes field to the Results Layout component. 1. In Experience Builder, open the **Search Results** page. 2. Select the **Results Layout** component. 3. In the property editor, click **Add Field**. 4. Click the added field. 5. In Edit Field, change the field value to **Variation Attributes**. 6. Adjust the other properties as needed. 7. Save your changes. 8. Repeat these steps on the Category Detail page. 4. Rebuild your store’s search index. 1. Return to the Search page, and open the **Search Index Summary** tab. 2. Click **Rebuild Index**, and then click **Rebuild**. #### See Also - [Product Variations and Attributes](https://help.salesforce.com/s/articleView?id=commerce.comm_var_att_intro.htm&release=264.0.0&type=5 "Use variations to extend the range of products that you offer in your B2B store. For example, add size and color options to a tee shirt. Configure variations to be searchable in your stores and available in multiple languages.") # Make Targeted Price Adjustments Within Individual High-Scale Price Books Adjust prices within a specific price book without having to replicate all price books. Previously, you had to replicate all high-scale price books when moving from a staging to production or development instance. Now you can make targeted pricing changes to your production data for multiple regions. **Where:** This change applies to read-only price books in B2C Commerce. **How:** You can replicate up to 25 individual price books. To replicate an individual high-scale price book in Business Manager, go to **Administration** | **Operations** | **Jobs**. Click **New Job**, and configure the ExecuteDataReplication job step. See [Create a Job in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_create_job.htm&type=5&language=en_US). Or, directly modify the ExecuteDataReplication Job Step to specify the high-scale price book ID that you want to replicate. See [Job Step ExecuteDataReplication](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/upcoming/jobstepapi/html/index.html?target=jobstep.ExecuteDataReplication.html). Example: ``` { "data_replication_configuration": { "target": "production", "type": "transfer_and_publish", "tasks": { "global": { "price_books": { "usd-prices": true, "eur-prices": true } } } } } ``` # Manage A/B Tests More Efficiently with the New User Interface Use the quick filters in the new A/B test interface to sort and manage A/B tests. Find the best- performing segments by scanning visual indicators. The new interface also includes clipboard functionality so that you can copy test results for further analysis. Test data is displayed if at least one data point is available in every test segment. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click the App Launcher, and then select **Merchant Tools** | **Site** | **Online Marketing** | **A/B Tests**. The new screen can be enabled by going to **Administration** | **Feature Switches** | **Enable New A/B Tests Screen**. ![A/B Testing Screen in Business Manager](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_9/b2c_rn_ab_test_new_interface.png) #### See Also - [A/B Testing for B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_ab_testing.htm&language=en_US) # Manage Access to a B2B Store Create buyer accounts directly from the Customer Workspace or use a business account or a person account to create buyers. Add the buyer account to a buyer group. Associate the buyer group with a store. The products and prices buyers can access in the store are determined by the entitlement policies assigned to the buyer group. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Add a Buyer for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_create_buyers.htm&release=264.0.0&type=5)** You can add buyers in different ways. You can add a buyer from your Customer workspace or enable a business or person account. - **[Add Accounts to a Buyer Group for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_add_buyer_accounts_to_buyer_group.htm&release=264.0.0&type=5)** To give multiple accounts access to the same store, price books, and entitlements, create a buyer group and add the accounts. - **[Associate a Buyer Group with a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups.htm&release=264.0.0&type=5)** Product prices and the products that buyers can access depend on the price books and the entitlement policies assigned to the buyer group. When you create a store, a default buyer group is assigned to the store. - **[Add Billing and Shipping Addresses for Buyer Accounts for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_account_addresses.htm&release=264.0.0&type=5)** Set the default billing and shipping addresses for buyer accounts. - **[Grant Buyers Access to External Accounts for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buy_on_behalf.htm&release=264.0.0&type=5)** An external account is an account for which the buyer isn’t a contact. You can grant a B2B buyer access to an external account by assigning them the Buyer Manager role. When shopping in a B2B store, the designated buyer can switch to an external account that they have access to. The buyer can purchase on behalf of that account or add and activate users, reset passwords, and view their shopping carts, depending on how you configure their privileges. - **[Mass Enable Accounts as Buyer Accounts for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_mass_buyer_update.htm&release=264.0.0&type=5)** Use any tool or mechanism that can create data inside of Salesforce—for example, Data Loader, Flow Builder, or the sObject API—to enable accounts as buyer accounts. # Manage BOPIS Orders with the CSR Portal Monitor, search for, and manage customer orders within Point of Sale CMS. Point of Sale CMS supports the Buy Online, Pickup In-Store (BOPIS) module within the CSR Portal. The portal allows you to monitor and search orders. A customer service representative can cancel orders. This article will go over the configurations needed to use this feature. ## Search for Orders 1. In CMS, go to **Orders > CSR Portal**. 2. Enter a search query. 3. Select **SEARCH**. It's ‌best practice to regularly monitor orders using the **Order Status** filter. You can select an Order Status from the dropdown in the search query. ## Cancel an Order 1. In CMS, go to **Orders > CSR Portal**. 2. Locate an order by performing a search. 3. Select **Order Details** to the right of the order. 4. Select **Cancel Order**. # Manage Buy Online, Fulfill In Store (BOFIS) Orders in Point of Sale Process Buy Online, Fulfill In Store (BOFIS) orders in the POS app. Store associates pack, ship, and manage orders fulfilled from the store. - Modern POS App Build: 6.4.2 or later - Platform Support: iPad & iPhone - Offline Support: No #### See Also - [_Salesforce Help:_ Configure Status Indicators for Pickup Orders](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_status_indicators.htm&release=264.0.0&type=5 "To show status indicators for pickup orders in the Salesforce POS, set the threshold in CMS.") - [_Salesforce Help:_ Configure Wave Picking for Fulfillment Orders in Salesforce POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_wave_picking.htm&release=264.0.0&type=5 "To process up to 10 fulfillment orders in a single picking workflow, add the Picklist Management deep link to a layout in CMS. Wave picking supports pickup orders, shipping orders, and corporate transfers.") - [_Salesforce Help:_ Manage Buy Online, Pickup In Store (BOPIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bopis.htm&release=264.0.0&type=5 "Configure and process Buy Online, Pickup In Store (BOPIS) orders in the POS app.") ## Enable BOFIS Configure omnichannel settings and a PDP layout to let customers buy online and have the order fulfilled and shipped from the store. 1. Turn on **Ship to Home From Current Store** in the [omni settings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_enabling_omni_settings.htm&release=264.0.0&type=5 "Set up Omnichannel fulfillment options in CMS so that your store associates can fulfill orders from the Point of Sale (POS) app."). 2. Turn on **Ship to Home From Current Store Items Sent to PredictSpring Fulfillment** in the [omni settings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_enabling_omni_settings.htm&release=264.0.0&type=5 "Set up Omnichannel fulfillment options in CMS so that your store associates can fulfill orders from the Point of Sale (POS) app."). 3. Configure a PDP layout for BOFIS orders. For more information, see [Product Display Page (PDP) Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_pdp.htm&release=264.0.0&type=5 "Create a Product Display Page (PDP) in the layout editor. Unlike the template-based PDP V1, this version lets you customize the page layout."). ![PDP layout for BOFIS in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_fulfill_bopis_bofis_layout_bofis.png) ## Configure BOFIS Deep Links Create a layout and add deep links so store associates can access BOFIS order management in the POS app. For more information about creating layouts and adding deep links, see [BOPIS/Store Fulfillment Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_bopis_store_fulfillment.htm&release=264.0.0&type=5 "Explore a detailed list of Point of Sale BOPIS/store fulfillment deep links, each with a clear description and supported context. Links include features for order status, fulfillment, history, packing, and pickup. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations."). Add these deep links to the layout: - Deep link > BOPIS/Store Fulfillment > Store Fulfill Orders Ready to Ship - Deep link > BOPIS/Store Fulfillment > Store Fulfill Orders to Pack - Deep link > BOPIS/Store Fulfillment > Store Fulfilled Order History - Deep link > BOPIS/Store Fulfillment > Store Fulfilled Order to Unpack - Deep link > BOPIS/Store Fulfillment > Cancelled / Damaged Store Orders ## BOFIS Order Workflow in the POS App ### Manage BOFIS Orders The BOFIS order workflow is similar to BOPIS but includes shipping label options. After packing items, associates can scan and attach a pre-printed shipping label or generate a new label using a shipping provider integration (SPI). For more information about shipping labels, see [Shipping Labels](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_shipping_labels_spixml.htm&release=264.0.0&type=5 "Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing."). ### Handle Returns or Exchanges To prevent inventory discrepancies, associates cannot return unshipped BOFIS items. When an order hasn't been packed or shipped yet, the **Return this product** toggle is turned off and the app displays the message Item not shipped yet. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This restriction applies only when **Ship to Home From Current Store Items Sent to PredictSpring Fulfillment** is on in [omni settings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_enabling_omni_settings.htm&release=264.0.0&type=5 "Set up Omnichannel fulfillment options in CMS so that your store associates can fulfill orders from the Point of Sale (POS) app."). ![Refund item page showing unshipped item restriction in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_fulfill_bopis_bofis_pos_10.png) ### Cancel BOFIS Order Cancel a BOFIS order at any point before shipment, including after packing or when marked ready to ship. You cannot cancel partially shipped orders. To cancel a BOFIS order, go to the pack page in the POS app and select **Cancel Order**. ## Known Issues and Restrictions - Point of Sale doesn't prevent duplicate shipment creation for the same order item across registers. Because the system doesn't mark fulfillment orders as in progress, multiple associates can process the same item on different devices at the same time. As a result, the POS app can still show an order as Partially Shipped after associates ship it. # Manage Buy Online, Pickup In Store (BOPIS) Orders in Point of Sale Configure and process Buy Online, Pickup In Store (BOPIS) orders in the POS app. - Modern POS App Build: 6.4.2 or later - Platform Support: iPad & iPhone - Offline Support: No #### See Also - [_Salesforce Help:_ Configure Status Indicators for Pickup Orders](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_status_indicators.htm&release=264.0.0&type=5 "To show status indicators for pickup orders in the Salesforce POS, set the threshold in CMS.") - [_Salesforce Help:_ Configure Wave Picking for Fulfillment Orders in Salesforce POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_wave_picking.htm&release=264.0.0&type=5 "To process up to 10 fulfillment orders in a single picking workflow, add the Picklist Management deep link to a layout in CMS. Wave picking supports pickup orders, shipping orders, and corporate transfers.") - [_Salesforce Help:_ Manage Buy Online, Fulfill In Store (BOFIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bofis.htm&release=264.0.0&type=5 "Process Buy Online, Fulfill In Store (BOFIS) orders in the POS app. Store associates pack, ship, and manage orders fulfilled from the store.") ## Enable BOPIS Configure a Product Display Page (PDP) layout to let customers select in-store pickup for products. 1. In CMS, go to **Layouts** | **Layout Templates** | **PDP**. 2. Edit an existing PDP layout or create a new one. For more information, see [Product Display Page (PDP) Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_pdp.htm&release=264.0.0&type=5 "Create a Product Display Page (PDP) in the layout editor. Unlike the template-based PDP V1, this version lets you customize the page layout."). 3. Add a cell in the layout and select it. 4. Click **Cell Content** | **Form Element**. 5. Under **Field Type**, select **Button**. 6. Enter a button text, for example, Pickup In Store. 7. Under **Button Action**, select **Pickup In Store**. 8. (Optional) Configure button UI settings, such as style and icon. 9. Save your changes. ## Configure BOPIS Deep Links Add deep links to a layout so associates can access BOPIS order management. For more information, see [BOPIS/Store Fulfillment Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_bopis_store_fulfillment.htm&release=264.0.0&type=5 "Explore a detailed list of Point of Sale BOPIS/store fulfillment deep links, each with a clear description and supported context. Links include features for order status, fulfillment, history, packing, and pickup. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations."). Add these deep links: - Deep link | BOPIS/Store Fulfillment | Store Pickup Order to be Packed - Deep link | BOPIS/Store Fulfillment | Store Pickup Order to Unpack - Deep link | BOPIS/Store Fulfillment | Store Ready to Pickup Order - Deep link | BOPIS/Store Fulfillment | Store Picked Up Order History - Deep link | BOPIS/Store Fulfillment | Cancelled/ Damaged Store orders ![BOPIS deep links shown in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_fulfill_bopis_bofis_configure_bopis.png) ## Enable Item-Level Cancellation Turn on item-level cancellation so associates can cancel individual items during packing. 1. In CMS, edit an app config. 2. Go to **Modules** | **BOPIS / Store Fulfillment**. 3. Turn on **BOPIS Item Level Cancelation** and **Enable Item Level Cancellations for BOPIS in Pack Flow**. 4. Save your changes. ## BOPIS Workflow in the POS App ### Pack and Complete Order Select the Store Pickup Order to be Packed deep link to see orders ready to pack. ![List of orders to pack in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_fulfill_bopis_bofis_pos_1.png) Open an order. Each item row shows a pack toggle and a **Cancel Item** button. ![Cancel Item button shown for a line item in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_cancel_line_item_bopis.png) To pack items, select the pack toggle for each item and optionally add notes. To cancel individual items, select **Cancel Item**, choose a cancellation reason and quantity, and confirm. Canceled items move to a Cancelled section and inventory returns to stock. ![Cancel item dialog with reason code selection in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_cancel_bopis_rc.png) After packing or canceling all items, select **SAVE**. The Order Packed dialog appears. Select **Print Pack Slip** to print the packing slip. ![Order Packed dialog with Print Pack Slip option in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_bopis_print_pack_slips.png) ### Process Customer Pickup Select Store Ready to Pickup Order to see orders ready for pickup. The Last Pickup Date is shown so that store associates can prioritize orders that are close to expiring. Open an order and select **Pick**. Capture the customer's signature and select **DONE**. To cancel and refund, select **Refund** instead. To reprint a packing slip, select **Print Pack Slip** from the order list or order details page. ![Customer pickup screen with signature capture in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_bopis_pickup.png) ### Unpack Canceled Orders When a packed order cancels before pickup, it moves to the unpack section. Unpacking releases the inventory back to stock. Select the Store Pickup Order to Unpack deep link to see canceled orders eligible for unpacking. Open an order and select **Unpack**. The app confirms the unpack and releases inventory. The order status changes to Cancelled. ![Unpack canceled order screen in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_bopis_unpack.png) View canceled and unpacked orders under Cancelled/ Damaged Store Orders. ### Handle Partially Packed Orders Partially packed orders show which items remain unpacked. Pack remaining items later or leave them unpacked. View split orders in CMS under **Orders** | **BOPIS Orders**. Split orders appear with the same order ID but different statuses. ![Split order example showing different statuses in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_fulfill_bopis_bofis_pos_9.png) ## Known Issues and Restrictions - Point of Sale doesn't support partial refunds for BOPIS orders. - Multiple associates can process the same order item on different devices simultaneously because the system doesn't mark fulfillment orders as in progress. This can result in duplicate shipments, and the POS app may show an order as Partially Shipped after it's been fully shipped. - The POS app displays only BOPIS orders updated within the last 30 days. # Manage Campaign Details More Efficiently with the New User Interface Create and update campaigns using the new Campaigns Detail screen. The new screen includes updated default values, saving you time while you create a campaign. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click the App Launcher, and then select **Merchant Tools** | **Site** | **Online Marketing** | **Campaigns**. The new screen can be enabled by going to **Administration** | **Feature Switches** | **Enable New Campaigns Screen**. ![Campaign Details Screen in Business Manager](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_9/b2c_rn_campaign_new_interface.png) #### See Also - [Create a Campaign in B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_creating_a_campaign.htm&language=en_US) # Manage CDN Security and Certificate Configurations with CDN Zone APIs The CDN Zone APIs now support security and certificate configurations. Security settings support includes get and set actions for: - HSTS - Firewall security level - TLS 1.3 - WAF enable and disable - Always Use HTTPS Certificate support includes get, add, and update a certificate, and validate a custom hostname. You can use the API to automate certificate management, and restart validation of a custom hostname by triggering the validation of the hostname. #### See Also - [CDN Zones](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-zones.html) - [getSecuritySettings](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=getSecuritySettings) - [updateSecuritySettings](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=updateSecuritySettings) - [getCertificates](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=getCertificates) - [addCertificateForZone](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=addCertificateForZone) # Manage Cipher Suite Settings via CDN-API Customers can now retrieve and update cipher suite settings for their zones via the CDN-API, ensuring better control over security configurations. This feature allows businesses to define which TLS ciphers browsers and devices can use when connecting to their storefronts, enhancing security and compliance. **Why:** The ability to manage cipher suite settings via the CDN-API addresses the need for businesses to maintain strong security practices and comply with industry standards such as PCI DSS 4.0. It provides better control over which TLS ciphers are used, ensuring that connections to storefronts are secure and performant. Cipher Suite types include: - Modern – Best security and performance (TLS 1.2-1.3) - Compatible – Broader browser support - Legacy (default) – Maximum compatibility, includes weaker ciphers - Custom – Fully configurable cipher suite selection **How:** Use the CDN-API endpoints to programmatically get and update cipher suite settings. Refer to the API documentation for detailed instructions. #### See Also - [CDN Zones](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=Summary) - [Supported Cipher Suites](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-zones-cipher-suite-types.html) - [getCipherSuites](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=getCipherSuites) - [updateCipherSuites](https://developer.salesforce.com/docs/commerce/commerce-api/references/cdn-api-process-apis?meta=updateCipherSuites) # Manage Clienteling Clienteling within the POS app allows enriched customer profiles to be viewed and added to after every interaction. Clienteling helps retail store associates provide enhanced personalization by providing a complete view of customers so they can improve the customer experience. Using personalization quizzes, store associates can build a full picture of customer preferences, allowing them to curate tailored product recommendations, shareable lookbooks and more. - **[Configure Customer 360 Clienteling for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_customer_360_config.htm&release=264.0.0&type=5)** Configure the connector or service that powers each Customer 360 area in the POS app, giving store associates a unified view of customer data from Commerce or Service. The configured connector or service applies only to the Customer Profile, Address, and Wish List flows. - **[Customize the Clienteling Layout in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling.htm&release=264.0.0&type=5)** Customize how clienteling displays in the POS app by configuring the layout through app config settings or by creating a custom clienteling profile layout. After you customize the layout, make clienteling accessible to store associates through the user icon or a deep link. - **[Promotions for Customer Groups](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_promotions_for_customer_groups.htm&release=264.0.0&type=5)** When you sign up a new customer in the Point of Sale (POS) app, the value entered in the Customer Group field saves to Point of Sale's backend. Customers can only be assigned to one group at a time. They cannot be part of multiple groups at the same time. For example, a customer can belong to the Teacher group or the Veteran group, but not both. - **[Apply Customer Groups to Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_apply_customer_groups_to_promotions.htm&release=264.0.0&type=5)** Merchants can create targeted promotions tailored for specific customer groups, for example veterans, teachers, which are defined in their customer records. By using the customerGroup attribute, shared across the SPI and Salesforce fields, merchants can efficiently apply these targeted promotions to groups of customers. This functionality is supported via Point of Sale's SPIs and Salesforce Sales Cloud (SFSC). For NetSuite customers, contact a Retail Cloud representative for custom mapping instructions. - **[Collections](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_collections.htm&release=264.0.0&type=5)** The POS app lets store associates and managers create a collection of products. You can share collections directly with customers or curate it for browsing purposes. The collection feature is configured using a deep link, and then implemented in a layout or from a hamburger menu. To access a collection, tap on the deep link you created in the POS app. - **[Create and Manage Customer Quotes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_create_manage_customer_quotes.htm&release=264.0.0&type=5)** Merchants can create and track customer quotes on the POS app. Each quote has a unique number and includes customer information. Store associates can work with customers on merchandise and pricing, either in-store or over the phone, and then email the quote for review or print it on A4 paper. Customers can save the quote, delete it, or complete the checkout process. - **[Collect Customer Preferences Using a Quiz](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_customer_preferences.htm&release=264.0.0&type=5)** Anticipating customer needs by understanding their preferences strengthens their experience. You can configure Point of Sale to collect and store customer preferences in their profiles. To gather information about customers, create a preference quiz. - **[Customer Search](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_manage_customer_search.htm&release=264.0.0&type=5)** Find customers as well as add new ones in the Point of Sale (POS) app. - **[Configure Customer Search Webview in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_customer_search_webview.htm&release=264.0.0&type=5)** Set up a URL deep link to access WebViews so you can create appointment booking services within the Point of Sale (POS) app. - **[Validating Customer Profile Address on Cart](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_validate_profile_addresses.htm&release=264.0.0&type=5)** Integrate the Clienteling SPI to check a customer’s address before placing an order. - **[Using a Black Book for Customer Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_black_book.htm&release=264.0.0&type=5)** Create and manage a list of your favorite customers in Point of Sale - **[Ghost Email](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_ghost_email.htm&release=264.0.0&type=5)** Share collections and cart via email from any email ID of your choice in the Point of Sale (POS) app. - **[Manage Store Tasks with Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_manage_store_tasks.htm&release=264.0.0&type=5)** Create a list of tasks to help with task management and leverage the feature to keep track of any to-dos you might have. - **[Point of Sale Loyalty Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_loyalty_overview.htm&release=264.0.0&type=5)** Point of Sale supports loyalty integration. This integration facilitates the search for loyalty customers within the app, and shows and applies available rewards to the cart. - **[Point of Sale Loyalty SPIs](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_loyalty_spis.htm&release=264.0.0&type=5)** Use Point of Sale's SPI to connect your loyalty program to the POS app. Make it easier to find loyalty customers and show rewards. # Manage Commerce Store Data with Workspaces With workspace lists, you can personalize your list view to work with just the records you’re interested in for your B2B store. Customize information to show and create filtered lists. Apply bulk actions and edit entries directly in the workspace. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Customize information to show. ![Select columns to display in a workspace](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_lex_pricing_workspace_columns.png) 1. Click the ![gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png), and select **Select Columns to Display**. 2. Use the arrows to move items between Available Columns and Selected Columns. 3. Click **Save**. 2. Create a filtered list. For example, in the Pricing workspace, create a filtered list to surface price books or price book entries with specific properties or associations. ![Filtered list in pricing workspace](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/b2b_comm_lex_pricing_workspace.png) 1. Click the ![filter icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/icon_filterList.png). 2. Click **Add Filter**. 3. Select a filter type, and edit the filter values as needed. 4. After you create your filter, click **Save**. 5. To apply the filter, click **Apply**. 3. Apply bulk actions to multiple workspace entries. For example, in the Product workspace, mark multiple products as active in your store. ![Bulk actions dropdown on the Product Workspace](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/produc_workspace_action_buttons_dropdown.png) 1. Check the box next to the product or products you want to update. 2. Click **Bulk Actions**. 3. Select an action. 4. Edit an entry or multiple entries with the same value directly from the list view. 1. To open a field for editing, hover your cursor over the field and click ![pencil icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/pencil.png). 2. To update multiple fields with the same value, select the items to be edited, click the pencil icon, and then select the option to update all the selected items. #### See Also - [Commerce Workspace Considerations](https://help.salesforce.com/s/articleView?id=commerce.comm_workspace_consideratons.htm&release=264.0.0&type=5 "Commerce workspaces are dedicated to specific merchandising jobs to help with the setup and ongoing management of your B2B store. The Commerce workspace list view functions a little differently from the standard Salesforce list view. Each workspace functions specifically for the type of data it’s meant to manage, but you can accomplish some common tasks across workspaces.") # Manage Cross Cloud Parings with New Utilities Features New Cross Cloud utilities features help you manage B2C Commerce cross-cloud instance pairings and review trusted tenants. Why: Use the new Cross Cloud disconnect feature to clear tenant group information from the B2C Commerce database. After tenant group information is cleared, you can pair your B2C Commerce instance with another Salesforce tenant and include the tenant group owned by that Salesforce org. Use the New Peer to Peer tab in Business Manager Cross Cloud Trust to review the tenants and applications that your B2C Commerce instance is configured to trust. How: To use the Disconnect button, select Business Manager **Administration** | **Global Performance** | **Cross Cloud Trust** and select the Tenant Group Tab. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The Disconnect button is only displayed if B2C Commerce is configured with a tenant group. # Manage Customer Messages for B2B Stores Use the Commerce Messaging workspace to manage and tailor customer messages, such as order confirmations and welcome emails. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Commerce Messaging requires the CommerceMessagingAddOn license, which is packaged with Commerce Growth or Advanced editions. You'll need an enhanced CMS workspace, the refreshed Commerce app, and the Commerce Admin permission set. Sending the Abandoned Cart email to buyers requires Marketing Cloud and Data 360 and it uses Data 360 credits. To send the other emails, you need Data 360. For more information about credit usage, contact your account executive. If you’re using Marketing Cloud to send automated emails to your customers, assign the store to the same data space used by Marketing Cloud. See [Set Up Data 360 for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_datacloud_commerce_setup_b2b_d2c.htm&language=en_US). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important Through Customer's use of Commerce Messaging, Customer understands and agrees that Customer is solely responsible for obtaining all necessary rights, consents, and authorizations, and providing privacy notices, disclosures, notifications or other requirements in connection with its use of Commerce Messaging. - **[Available Messages in Commerce Messaging](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging_messages.htm&release=264.0.0&type=5)** Message email templates and flows can be accessed and customized from the Messaging workspace. - **[Set Up an Email Domain for Commerce Messaging](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging_email_domain.htm&release=264.0.0&type=5)** To use Commerce Messaging for your B2B Commerce stores, you must have a valid email address to indicate who the message is from. You can use the default address provided by Salesforce or create a from address using an authenticated store domain to provide a branded experience. - **[Customize Messages in Commerce Messaging](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging_template.htm&release=264.0.0&type=5)** Use the provided message templates to customize your messages. You can also update the message templates with your store logo and colors. - **[Enable a Message in Commerce Messaging](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging_enable_message.htm&release=264.0.0&type=5)** After you’ve customized your message template, enable the message to begin sending messages. When a message is enabled, a flow is created for that message and store. The flow waits for specific events, like the placement of an order, and triggers message sending using Marketing Cloud services. - **[Create Localized Email Templates in Your Store](https://help.salesforce.com/s/articleView?id=commerce.comm_buyermessaging_createlocalizedtemplates.htm&release=264.0.0&type=5)** You can send custom Welcome, Order Confirmation, and Abandoned Cart emails to your customers in any language supported by your B2B store. Create email templates in each language, and then customize the email flows to trigger sending localized emails based on the language the customer selects in the store. - **[Troubleshoot Commerce Messaging](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging_reinstall.htm&release=264.0.0&type=5)** If you don’t see a message or can’t enable it in the Messaging workspace, try these troubleshooting steps. # Manage eCDN Rate Limits in Business Manager You can now configure and manage embedded CDN rate limits directly in Business Manager. Previously, these settings were only accessible via the CDN Zones API. Use the intuitive interface to adjust rate limits quickly, optimize performance, and ensure compliance with traffic management policies. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, go to **Administration** | **Sites** | **Embedded CDN Settings**. Select the zone that you want to configure, and on the Security Rules tab, click **New Rate Limiting Rule**. Define the rule expression, rate limits, and actions by using the visual interface and fields. #### See Also - [_Salesforce Help_: B2C Commerce | Create a Rate Limiting Rule for an eCDN Zone](https://help.salesforce.com/s/articleView?id=cc.b2c_eCDN_create_rate_limiting_rule.htm&language=en_US) # Manage Feeds Configure Point of Sale data feeds to manage and schedule the transfer of product, pricing, and inventory data. Managing feeds ensures accurate data synchronization between systems, such as exporting documents in CMS. You can manually run feeds, schedule them for automated updates, and implement multi-region feeds for global operations. You can also monitor feed pipelines and logs to identify and address any issues, and configure and manage export jobs for efficient data delivery. - **[Feeds Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5)** Use feeds to efficiently import bulk data, such as products, categories, and stores, into Point of Sale. Feeds streamline the process of updating your Point of Sale platform with the latest information. You can schedule and manually upload feeds, then review logs to ensure data accuracy. Point of Sale supports various feed types and configurations to meet your data import needs. - **[Export Documents in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_export_docs.htm&release=264.0.0&type=5)** The Document Export feature lets merchants export documents, such as finance contracts, as PDF files to their SFTP or FTP servers. By configuring an export job in CMS, you specify key details such as the destination and file naming. Contract files convert to PDF, transfer to Retail Cloud's backend, and forward to your specified server. You can also update or delete export jobs as needed. - **[Feeds Deployment Best Practices & Strategy](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_best_practice.htm&release=264.0.0&type=5)** Use Point of Sale to ingest data onto the POS Cloud platform with multiple options. Optimize data setup based on different customer scenarios. This ensures a smooth data flow, enabling retailers to gain valuable insights and make informed decisions. With efficient data ingestion, retailers can enhance their operations and improve the customer experience. - **[Run Feeds Manually](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_manual_run.htm&release=264.0.0&type=5)** Sometimes you need to run a data feed right away. You can manually run data feeds in Point of Sale to update your data immediately, rather than waiting for the next scheduled run. Implement these steps when you need the most current data. - **[Schedule Feed Runs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5)** Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule. - **[Multi-Region Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_multi_region.htm&release=264.0.0&type=5)** Point of Sale multi-region feeds let merchants with operations in multiple regions run feeds in the master region. Merchants can also configure other regions to perform product searches against the master catalog. By using multi-region feeds, merchants can streamline their operations and ensure that product searches are accurate across all regions. This feature saves time and improves efficiency by centralizing feed management. - **[Import a Data Feed on Demand](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_import.htm&release=264.0.0&type=5)** Import a scheduled Point of Sale data feed immediately with the Import Now feature. The Import Now functionality allows you to force a scheduled feed to run when you need the most up-to-date information. Ensure that your data is current and drive timely decision-making. - **[Create a Feed Pipeline](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_pipeline.htm&release=264.0.0&type=5)** Create feed pipelines in Point of Sale to schedule feed types to run in a specified order. Running feed pipelines on a set schedule keeps your data current and accurate. Configure the pipeline, add the feed types, and set the schedule. You can also edit a pipeline as business needs change. - **[View Feed Logs in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_logs.htm&release=264.0.0&type=5)** Quickly identify the success of Point of Sale data feeds by using feed logs. When you review feed logs, you can begin troubleshooting issues. The feed logs page shows the runs for each feed and their status. - **[Configure and Manage Export Jobs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_export_jobs.htm&release=264.0.0&type=5)** Use export jobs to extract data from Point of Sale by using Secure File Transfer Protocol (SFTP). Configure and schedule these jobs in CMS to automate data extraction, and monitor their progress in the Export Logs for timely, efficient data retrieval. - **[Display the Site Merch Order](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_site_merch_order.htm&release=264.0.0&type=5)** Point of Sale support two options for adding merchandising sort order to the product feed. - **[Required Data Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_required_feeds.htm&release=264.0.0&type=5)** Point of Sale includes a mobile search engine that is built for speed. To optimize the mobile experience for customers, Point of Sale uses data feeds. Customers benefit from a faster mobile search experience. # Manage Franchises in Point of Sale Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations. Franchise management provides granular access control. Franchise users can access only data and settings relevant to their franchise group. - **[Franchise Management Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_franchise_management_overview.htm&release=264.0.0&type=5)** Franchise management in Point of Sale enables centralized oversight of corporate-owned and franchise stores while granting franchise operators controlled access to their specific locations. - **[Enable Franchise Management](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_setup_franchises.htm&release=264.0.0&type=5)** Enable Franchise Management in Point of Sale CMS for the Merchant Location Region (MLR). - **[Create Franchise Groups](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_create_franchise_groups.htm&release=264.0.0&type=5)** After enabling franchises, create franchise groups in Point of Sale CMS to represent distinct franchise entities. - **[Assign Stores to Franchise Groups](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_assign_stores_to_franchises.htm&release=264.0.0&type=5)** After creating franchise groups, associate stores with the appropriate franchise in Point of Sale CMS. - **[Create Franchise Administrator Users](https://help.salesforce.com/s/articleView?id=commerce.rt_cns_setup_franchise_users.htm&release=264.0.0&type=5)** To grant specific access to franchise staff, define permissions and link their account to a specific franchise group in Point of Sale CMS. - **[Franchise User Roles and Permissions in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_franchise_user_roles_permissions.htm&release=264.0.0&type=5)** Point of Sale grants corporate admins broader access than franchise admins across franchise setup, stores, users, reports, and promotions. Corporate admins manage all franchises and can edit any promotion, while franchise admins are limited to their assigned franchise and can edit only the promotions they create. - **[Franchise Reporting in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_franchise_reporting.htm&release=264.0.0&type=5)** Franchise Reporting in Point of Sale gives corporate and franchise admins access to report data based on their role. Corporate admins have full visibility across all franchise groups. Franchise admins can access data only for stores in their assigned franchise group. This role-based access keeps franchise data fully separate while giving each user type the visibility they need. # Manage Gift Registries on POS App Gift registries are supported in the POS app through an SPI. Using the SPI, businesses can access gift registries. Shoppers can make purchases off the registrant's list that can be noted back for the correct amount updates. Registrants can also use the store POS to return registry items in one transaction, irrespective of how many orders those items originated from - Modern POS App Build: 10.2.1 or greater - Platform Support: iPad & iPhone - Offline Support: No - [Omnichannel](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_v2_overview.htm&release=264.0.0&type=5 "Integrate shopping experiences across channels with Point of Sale's Omnichannel.") Configuration Requirements: - Omni V2 enabled - Mixed Cart enabled - "Take With" and "Ship to Home" enabled as omni-types - Multiple Shipping Addresses Per Order enabled The Point of Sale registries feature support these functions- - Search for registries in the POS and see a list of matches - View the details of each registry, including the products listed - Add registry products to cart for purchase - Print registry details on receipts - Record registry ID in TLogs - Return items from a registry that originated in multiple orders ## Configure the Gift Registry SPI Point of Sale's Gift Registry SPI supports retrieving gift registry products, searching for gift registries, and retrieving a list of products for a specific registry ID. 1. In CMS, go to **Integrations** | **Custom Connectors**. 2. Click **Create** in the upper right. 3. Under Connector Type, select "SPI." 4. Under Endpoint Name, select "GIFT\_REGISTRY." 5. Under API Endpoint, enter the common external endpoint for registry APIs (e.g., https://sample/external/endpoint/giftregistry) 6. Under Integration Type, select or enter the type of integration (e.g., "HTTP\_POST"). 7. Under JSON Headers, provide the header for the API. Headers can be Content-Type or Authorization attributes i.e., clientId/password. For example: ``` Headers:{"Content-Type":"application/json","client_id":"myClientId", "client_secret":"myClientSecret"} ``` ### Gift Registry APIs For the Gift Registry SPI, create these APIs and ensure they all have the same ending part in their URLs. #### Return Gift Registry Product This API retrieves a gift registry product based on the registryId and productId passed in the request. The products can then be added to the cart to initiate the NRR flow. `/merchant/spi/sample/endpoint/giftregistry/returnRegistryItem` ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Example Request ``` { "gtin": "string", "productId": "string", "registryId": "string", "storeId": "string" } ``` Example Response ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For app builds 10.3.1 and greater, if the item price in the response is returned as null, Point of Sale will apply the non-receipted price (NRR) logic from the POS, as outlined in [NRR Lowest Price Calculation in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_low_price_calculation.htm&release=264.0.0&type=5 "Point of Sale calculates the lowest price based on these criteria: Store Historical Prices, Product Multi-Region Historical Prices, and Product Historical Prices. When the lowest price is found for a given number of days, that price is returned as the NRR lowest price."), factoring in the store's tax rate. ``` { "error": true, "errorCode": "INTERNAL_ERROR", "errorMessage": "Invalid request. Please check the request and try again.", "items": [ { "eligibleForReturn": true, "externalReferenceId": "string", "price": 0, "productId": "string", "quantity": 0, "taxAmount": 0 } ] } ``` #### Search Gift Registries This API fetches a list of gift registries from the merchant's external system based on the search criteria, allowing customers to select products from the registry to add to the order. `/merchant/spi/sample/endpoint/giftregistry/searchRegistries` ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Example Request ``` { "email": "string", "firstName": "string", "lastName": "string", "phone": "string", "registryId": "string", "storeId": "string" } ``` Example Response ``` { "error": true, "errorCode": "INTERNAL_ERROR", "errorMessage": "Invalid request. Please check the request and try again.", "giftRegistries": [ { "coRegistrantName": "string", "eventDate": 0, "eventType": "string", "firstName": "string", "imageUrl": "string", "lastName": "string", "registryId": "string", "state": "string" } ] } ``` #### Retrieve Products of Specific Registry ID This API retrieves a list of products of a registry ID. `/merchant/spi/sample/endpoint/giftregistry/{identifier}` ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Example Response ``` { "coRegistrantName": "string", "error": true, "errorCode": "INTERNAL_ERROR", "errorMessage": "Invalid request. Please check the request and try again.", "eventDate": 0, "eventType": "string", "firstName": "string", "lastName": "string", "postEventAddress": { "addressLine1": "string", "addressLine2": "string", "city": "string", "countryCode": "string", "emailAddress": "string", "firstName": "string", "lastName": "string", "phone": "string", "postalCode": "string", "state": "string", "storeId": "string" }, "preEventAddress": { "addressLine1": "string", "addressLine2": "string", "city": "string", "countryCode": "string", "emailAddress": "string", "firstName": "string", "lastName": "string", "phone": "string", "postalCode": "string", "state": "string", "storeId": "string" }, "productList": [ { "inStoreAvailability": false, "postEventAvailability": false, "preEventAvailability": false, "productId": "string", "quantity": 0, "quantityPurchased": 0, "quantityWanted": 0 } ], "registryId": "string" } ``` ## Configure Deep Links Configure a deep link to access the registry on the POS app. 1. In CMS, edit a layout or hamburger menu. 2. Using the deep link picker, go to **More** | **Gift Registry**. 3. Set the deep link and save your changes. ![The select a deep link dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_deep_links.png) ## Configure Receipts You can print the registry ID on both print and email receipts. - For print receipts, add `:ps_p_registryId` - For email receipts, add `{product_registry_id}` ## POS Behavior ### Access Registries Tap the Gift Registry deep link to open a modal where you can search for a registry by ID, registrant's first name, or last name. ![The POS app shows the search registry feature.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_access_1.png) A list of matching registries will be displayed, each showing the registrant's name and event details. To perform another search, tap the filter icon at the bottom of the screen. ![The POS app shows a list of registries.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_access_2.png) Select a registry to view its details and the products listed. To add a product to the cart, toggle Add This Product. ![The POS app shows a list of products in a registry.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_access_3.png) ### Purchase Items From Registries Items can be purchased directly from the registry by toggling Add This Product. Optionally, the quantity can be adjusted using the dropdown menu. Additional items can be added to the registry by searching the product catalog (magnifying glass icon) or scanning it (scan icon). ![The POS app shows a list of registry products with the option make a purchase highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_purchase_1.png) When an item is added to the cart from the registry, it can be taken home immediately (Take With) or shipped to a specified address (Ship to Home). ![The POS app shows the option to choose between taking and shipping purchased registry items.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_purchase_2.png) On the cart screen, the product cell in the cart will display the registry ID. After purchase, the registry ID for each item will also be included in the order posting. ![The POS app shows purchased items with the ID of the associated registry highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_purchase_3.png) Multiple items from different registries can be purchased in the same order. For deliverable products, the available addresses are the Before Event and After Event addresses from the Registry Details SPI. ![The POS app shows the dialog enabling a shipping address to be selected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_purchase_4.png) Due to security protocols, the app will only display labels for the registrant's address and will not show the full address details. Additionally, PS tags related to shipping information (e.g., address, city, state, zip code, and phone) will not be printed on receipts. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The concealment of address details applies only to registry items in the cart. If non-registry items are included, their address details will be displayed and printed as usual. ![The POS app shows a list of purchased registry items with the delivery address highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_purchase_5.png) ### Return Items Purchased From Registries To initiate a registry return, tap the Gift Registry Return deep link. Enter the registry ID and then scan or search for the product to perform a non-receipted return (NRR) order. If [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.") are configured, select a reason for the return. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Products that are not on the registry cannot be returned as part of the registry. As Point of Sale is not the Master of Records, eligibility must be verified externally. If a product is deemed ineligible, it cannot be returned. ![The POS app shows the dialog for returning an item with the list of return reasons.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_return_1.png) Select items to return and tap Return Selected Products. ![The POS app showed a list of items selected for return.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_return_2.png) Registry returns will only be processed to tenders specified in the NRR settings. The order posting will create a new order ID, similar to the non-receipted return flow, and include the original order ID (if provided) for each item at the item level, as well as the registry ID. ![The POS app shows returned items on a new order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_return_3.png) This return process allows for multiple items from the same registry, even if they span multiple initial orders. ### Exchange Items In Registries Exchanges are permitted if configured. Any return of an item obtained through an exchange of a registry return will adhere to the NRR return policy for supported tenders. ![The POS app shows details of an exchange item.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_pos_exchange.png) ## Receipts Once the order is completed, the receipt can be printed with product details and their associated Registry ID. The screenshots below show examples of the Registry ID in both return and sales transactions. ![Example receipts for a return and sale.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_special_types_gift_registries_receipt.png) ## Known Issues & Restrictions Serial numbers of serialized products are not captured during gift registry items' sale and return processes. # Manage Global Blue Tax-Free Forms in the POS app Create tax-free forms for eligible customers during checkout by using Global Blue in the POS app. When a customer qualifies for tax-free shopping, complete the Global Blue form in the POS app and print the form on an A4 or thermal printer. Global Blue is available on iPads and iPhones for app builds 11.7.1 and later. Global Blue isn’t supported in offline mode. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note You must have an active Global Blue account. POS can’t create forms until you contract with Global Blue and complete the Global Blue setup. For help with submitting a support case to Global Blue, contact your Customer Success Manager (CSM) or Salesforce Account Executive (AE). ## Country Support Point of Sale supports these countries for Global Bue integration: - Austria - Belgium - Denmark - Finland - France - Germany - Netherlands - Sweden - Switzerland ## Known Issues & Restrictions - For split returns with a new sale, the confirmation page doesn’t always refresh the tax-free form status after you void a form. To verify the status, open the original order in Order History. - After you issue or void a tax-free form, order details can show the previous status until you reopen the order from Order History. - The POS checks for duplicate tax-free forms only during the current session in the POS. The POS doesn’t detect forms issued earlier or on another device until it refreshes the order data. For example, when you reopen the order from Order History. - **[Configure Global Blue in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue_config_cms.htm&release=264.0.0&type=5)** To issue tax-free forms in the POS app, integrate Global Blue in Point of Sale CMS. - **[Configure Order Confirmation Actions for Tax-Free Forms](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue_order_confirm_layout_actions.htm&release=264.0.0&type=5)** To issue, print, and void a tax-free form in the POS, add actions to the Order Confirmation layout. #### See Also - [_Salesforce Help:_ Configure Global Blue in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue_config_cms.htm&release=264.0.0&type=5 "To issue tax-free forms in the POS app, integrate Global Blue in Point of Sale CMS.") - [_Salesforce Help:_ Configure Order Confirmation Actions for Tax-Free Forms](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_global_blue_order_confirm_layout_actions.htm&release=264.0.0&type=5 "To issue, print, and void a tax-free form in the POS, add actions to the Order Confirmation layout.") # Manage Guest Access to a B2B Store A guest is someone who isn’t logged in to your store as an authenticated customer. Depending on the level of access that you provide, guests can browse your store, add products to their cart, and place orders. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) For D2C stores, person accounts must be enabled before you can enable guest access. See [Enable Person Accounts for Commerce](https://help.salesforce.com/s/articleView?id=commerce.commerce_enable_person_accounts.htm&release=264.0.0&type=5 "Person accounts are required for D2C stores, which use them to represent shoppers who visit the store and purchase products. Person accounts are optional for B2B stores, which typically use business accounts that include multiple buyers. You can either set up person accounts through the automated process from the Commerce Setup Assistant setup page or manually. This topic describes the steps to use to enable person accounts manually, without using Commerce Setup Assistant."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note D2C sites hosted on Experience Delivery require guest access to be enabled. If you configure your Salesforce org by using Commerce Setup Assistant and enable Person Accounts, guest access is automatically enabled when you create a store. To prevent unauthenticated guests from browsing your store and seeing your catalog and products, you can disable guest access. Disabling guest access unassigns buyer groups from the guest buyer profile. These steps describe how to enable guest access if you want to do so manually. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**, and then click **Buyer Access**. 3. Under Guest Access, click **Enable**. If guest access is partially or fully configured, the button is labeled Disable. To reconfigure guest access settings, click **Disable** and then click **Enable**. 4. To let a guest log in as an authenticated user without emptying their cart, enable **Preserve Guest Cart**. 5. Add entitlements and price books to the market. See [Configure Markets for Your Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_markets.htm&release=264.0.0&type=5 "Use one B2B store to segment customers into markets based on their locale. When you create a market, assign a price book, an entitlement policy, a currency, ship-to countries, and the locales that it supports. After you create a market, you can also assign a promotion."). 6. To set up what guests can search for, update the Field Level Security settings for the Product and Product Attribute fields. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, enter Digital Experiences, and select **All Sites**. 3. Next to the name of your store, click **Builder**. 4. To access settings, click ![Settings](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/resources-global/_corporate/images/gear.png) and under Guest User Profile, click the profile name link. 5. Scroll down to Field Level Security, click **Product \[View\]**, and click **Edit**. For all fields that you want guest users to be able to search, select Read access, and then click **Save**. 6. If you’re using product variations, under Field Level Security, click **Product Attribute \[View\]**, and click **Edit**. For all fields that you want guest users to be able to search, select Read access, and then click **Save**. 7. To include products that guest customers are entitled to, rebuild the search engine. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates."). 7. To make sure that you’ve provided the correct level of access, preview your store as a guest. Some settings can take a few minutes to take effect. 8. To ensure that your guests can view product categories, [Configure Default Store Navigation](https://help.salesforce.com/s/articleView?id=commerce.comm_store_navigation.htm&type=5&language=en_US). #### See Also - [Configure Self-Registration for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_self_registration.htm&release=264.0.0&type=5 "When you enable self-registration, customers can create their own account and then log in to your store using that account instead of browsing as a guest.") - [Order on Behalf Of a Customer](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_overview_oobo.htm&type=5&language=en_US) # Manage High Scale Price Books Better with Delete-All Mode To quickly clean up old prices in your system, you can now use delete-all mode when importing read-only price books. How: Use `` to delete all price entries for an SKU, regardless of the start times of the price entries. For more information, see [Importing price books](https://help.salesforce.com/s/articleView?id=cc.b2c_pricebook_object_import_export.htm&type=5&language=en_US). # Manage Inventory Manage store inventory in the Point of Sale CMS. Store Managers and associates can use Point of Sale CMS for inventory management. The documents in this guide provides a comprehensive set of instructions on cycle counts, inventory adjustments, and exporting inventory events. - **[CMS - Inventory Transfer View](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_inventory_transfer_view.htm&release=264.0.0&type=5)** View current and past transfers in Point of Sale CMS to monitor inventory flow. - **[Completing Cycle Count](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_completing_cycle_count.htm&release=264.0.0&type=5)** Finalize cycle counts after verifying all batches are complete and items are scanned. Configure settings to automatically update inventory counts or send files for corporate review. - **[Creating or Starting Cycle Counts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_creating_or_starting_cycle_counts.htm&release=264.0.0&type=5)** Create cycle counts to accurately manage inventory records. You can create them in the Point of Sale (POS) CMS, the POS app, or with an API. - **[Configure Cycle Count Options](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_configure_cycle_count_options.htm&release=264.0.0&type=5)** Improve cycle counts using serialized inventory and bulk entry to identify and track individual items uniquely in Point of Sale CMS. - **[Learn about Cycle Counts in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_learn_about_cycle_counts_in_retail_cloud.htm&release=264.0.0&type=5)** Understand the distinctions among each Cycle Count type to best suit your retail environment. - **[Inventory Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_inventory_configuration.htm&release=264.0.0&type=5)** Manage inventory settings in Point of Sale to use PredictSpring (Point of Sale), SPI, or Salesforce Omnichannel Inventory (SFOCI) as your inventory provider. - **[Inventory Ledger in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_inventory_ledger_in_retail_cloud.htm&release=264.0.0&type=5)** Use an inventory ledger to track item details, quantities, costs, dates, and balances in Point of Sale CMS. - **[Inventory Overview and Bucket Adjustment Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_inventory_overview.htm&release=264.0.0&type=5)** Use the Point of Sale Inventory Overview report to check product counts across locations and identify inventory. - **[Managing Inventory in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_managing_inventory.htm&release=264.0.0&type=5)** Manage your store inventory in Point of Sale CMS to keep your data up to date. - **[Exporting Inventory Events in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_exporting_inventory.htm&release=264.0.0&type=5)** Create an inventory export event in the CMS to export inventory data from the Retail Cloud Backend via Secure File Transfer Protocol (SFTP). - **[Managing Inventory: Inventory Adjustment Batch](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_managing_inventory_adjustment_batch.htm&release=264.0.0&type=5)** Adjust inventory counts for your store items in Point of Sale CMS and gain better insights into the adjustments via reports. - **[Managing Cycle Count as a Store Manager](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_managing_cycle_count.htm&release=264.0.0&type=5)** If you are a store manager, you can use manager-specific views in Point of Sale CMS to oversee store associate counts, manage and edit batches, and view product statuses to efficiently monitor and maintain accurate inventory. - **[Perform Cycle Count as an Associate](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_perform_cycle_count_as_associate.htm&release=264.0.0&type=5)** As an associate, you can create and use batches to perform cycle counts for store inventory in Point of Sale CMS. # Manage Inventory Point of Sale inventory management provides a lightweight inventory management system that will allow you to manage inventory across stores, online, and digital warehouses. - **[Inventory Bulk Quantity](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_bulk_quantity.htm&release=264.0.0&type=5)** When scanning in inventory items during Blind Receiving or a Cycle Count, the PS POS app allows the user to manually enter a quantity for a scanned item so that each individual item does not need to be scanned. This is most helpful in scenarios where a large number of the same item must be scanned. - **[Inventory Management - Store to Store Initiated Transfers](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_initiated_transfers.htm&release=264.0.0&type=5)** Merchants can create Corporate Transfers (CTS) in the Point of Sale CMS automatically by uploading a CSV file with inventory transfer information. This action will initiate a store-to-store transfer. After the file is uploaded, it'll be sent to the store's POS app. Store associates can then start packing the products for the store-to-store transfer. - **[Inventory Management Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt.htm&release=264.0.0&type=5)** Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses. - **[Inventory Management of Serialized Products](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_serialized_products.htm&release=264.0.0&type=5)** Point of Sale supports the management of serialized product inventory. In inventory processes such as transfers and receivings, any serialized products must have their serial numbers scanned or manually entered. The following inventory flows support serialized products: Blind Receivings, Store to Store (STS) Transfers, Return to Vendor (RTV), and Advanced Shipping Notice (ASN). - **[Inventory Movement Glossary of Terms and Definitions](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mvmnt_glossary.htm&release=264.0.0&type=5)** This article explains the methods Point of Sale uses to calculate inventory buckets within its inventory management system. Additionally, it includes a table that shows how these buckets are impacted by specific actions in the POS app. - **[Manage Inventory with Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_manage_inventory.htm&release=264.0.0&type=5)** Use the Inventory Movement feature to access a product's current availability and adjust inventory buckets. - **[View Product Inventory in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_view_product_inventory.htm&release=264.0.0&type=5)** View inventory at the item or variant group level, and based on inventory buckets. - **[Create Product Restrictions with Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_restrictions.htm&release=264.0.0&type=5)** Configure rules that block specific products from being sold, returned, or included in inventory processing at selected store locations. - **[Configure Advanced Shipping Notice (ASN) Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_asn_receiving.htm&release=264.0.0&type=5)** Set up accurate inventory receiving, check merchandise against prearrival notifications, and set reason codes for inventory mismatches in Point of Sale. - **[Managing Inventory with Blind Receiving](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_blind_receiving.htm&release=264.0.0&type=5)** Allow stores to receive products without requiring an Advance Shipping Notice (ASN) in Point of Sale. - **[Managing Corporate Transfers in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_corporate_transfers.htm&release=264.0.0&type=5)** Facilitate the movement of merchandise between stores, allowing merchants to align with regional demands and preferences. - **[Manage Return to Vendor Transfers in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_rtv_transfers.htm&release=264.0.0&type=5)** Facilitate the movement of merchandise from a store back to either a vendor or a warehouse. - **[Manage Store to Store Inventory Transfers in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5)** Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands. - **[Point of Sale Inventory Management Solutions Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmnt_solutions_overview.htm&release=264.0.0&type=5)** Select and configure the inventory records controller for your store. - **[Configuring & Printing Shipping Labels via Point of Sale SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_shipping_labels_spixml.htm&release=264.0.0&type=5)** Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing. # Manage Inventory Restrictions in Point of Sale CMS and App View how inventory restrictions are managed in Point of Sale CMS and the Point of Sale (POS) app. ## CMS Store-to-Store Transfer If trying to create a Store-to-Store Transfer in the CMS, you'll receive an error if the receiving store has a rule for the receiving product and the receiving location.![Point of Sale CMS showing an error in the Inventory Management page for invalid input when trying to do a store-to-store transfer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_store_to_store_cms.png) ## POS App Store-to-Store Transfer If trying to create a Store-to-Store Transfer in the app, you’ll receive an error if the receiving store has a rule for the receiving product and the receiving location. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Inventory restrictions are only applied to the receiving store, not the sender's store. ![The POS app showing an error for invalid input when trying to do a store-to-store transfer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_store_to_store_pos.png) ## POS App Corporate Transfers If trying to create a Corporate Transfer in the app, you’ll receive an error if the receiving store has a rule for the receiving product and receiving location. ## POS App Return to Vendor Transfers If trying to create a Return to Vendor Transfer in the app, you’ll receive an error if the receiving store has a rule for the receiving product and the receiving location. ## POS App Advanced Ship Notice (ASN) Receivings If an ASN is created and if trying to receive it, you’ll receive an error if the receiving store has a rule for the receiving product and the receiving location. ## POS App Blind Receivings If trying to receive a Blind Receiving, you’ll receive an error if the receiving store has a rule for the receiving product and receiving location. ## POS App Purchase Orders If a purchase order is submitted, you’ll receive an error if the receiving store has a rule for the receiving product and the receiving location. # Manage Inventory with Point of Sale Use the Inventory Movement feature to access a product's current availability and adjust inventory buckets. Point of Sale's Inventory Movement feature is designed to facilitate [Inventory Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses.") tasks on the POS app. This feature provides merchants with access to a product's current availability, allowing them to adjust [inventory buckets](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_buckets.htm&release=264.0.0&type=5 "Point of Sale supports the following inventory buckets - Sellable Quantity, Allocated Quantity, Safety Stock, Quantity On Hand, Quantity In Transit, Quantity On Order, Not for sale, Returned items, and Floor/Demo items.") and designate them as "Not for Sale." Specifically, they can adjust the product's "Floor Demo," "Not for Sale" for Item Adjustments, and "Return" for Return to Vendor (RTV) transfers. These adjustments are exclusively applied at the store level, verifying their relevance to the app's current store. ## Prerequisites - App Build: 9.6.1 or later - [Supported POS Device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - Offline Support: no ## Configure Inventory Management in Point of Sale CMS Configure the deep link in Point of Sale CMS needed to access this feature in the Retail Cloud Point of Sale (POS) app. 1. Create a layout or use the existing one. 2. Select a cell and select **Deep Link** in the toolbar menu on the right. 3. Go to **Store Associate > Inventory Management**. 4. Select **Inventory Bucket Adjustment**. 5. Set and save your changes.![The Inventory Bucket Adjustment setting in the Select a Deep Link section of the Retail Cloud CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_inventory_mgmt_bucket_cms.png) ## View Inventory Management in Point of Sale See how Inventory Management works in the Point of Sale (POS) app. On the app, tap the **Inventory Bucket Adjustment** deep link. A window appears, allowing you to search for the product. You can do this by either entering or scanning the product's bar code or by using the product catalog. ![The Product Lookup Window that appears when you tap the Invetory Bucket ADjustment deep link in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_bucket_adjust_deep_link.png) After the product is found, the product's information is shown. This information includes the current amount of product on hand and the expected amount of product available after the change. Adjusting these buckets recalculates the product's available bucket. After confirming, it can take a few minutes for the product inventory to update. ![The Inventory Movement window in the POS app that shows how much inventory currently exists.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_move_inventory.png) # Manage Inventory with Salesforce Omnichannel Inventory You can support real-time availability for your storefront experiences by integrating with the new Salesforce Omnichannel Inventory product. B2C Commerce provides a seamless native integration that you can configure using clicks, not code. Some of the features include: - Powerful inventory sharing and aggregation by connecting your B2C site inventory to a location group in Omnichannel Inventory. You can expose inventory specific to regional or brand-focused storefronts, and share inventory between them. - Omnichannel shopping experiences like BOPIS and ship-from-store via location-level awareness across a thousand locations. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Location-level integration is open beta in the initial 21.2 release and GA in Q2 2021. # Manage Layouts in Point of Sale CMS Layouts offer flexible and modular design options, allowing customers to seamlessly customize their digital experiences for various needs. Easily manage and customize your layout with powerful editing tools to add, insert, resize, and delete rows and cells. Enhance user experience with features like pagination, app config overrides, and snap-to-grid alignment for tailored and efficient solutions. - **[Introduction to Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_intro.htm&release=264.0.0&type=5)** Layouts in Point of Sale offer flexible and modular design options, enabling seamless customization for a variety of user needs. By leveraging Layouts, customers can easily adapt and enhance their digital experiences, ensuring a tailored and efficient solution. - **[Layout Editor](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_editor.htm&release=264.0.0&type=5)** Easily manage and customize your layout in Point of Sale with powerful editing tools. Add, insert, resize, and delete rows and cells, and adjust cell padding for precise control. Enhance user experience with features like Paginate for full-screen views, override app config settings for tailored UI options, and Snap to Grid for accurate overlay alignment. - **[Cell Configuration in Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_cell_config.htm&release=264.0.0&type=5)** Learn about the different ways that cells can be configured in Point of Sale layouts with content and interactive behavior. - **[Create a Category Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_category.htm&release=264.0.0&type=5)** Learn how to design a visually engaging category page in Point of Sale that contains six images and product search deep links. - **[Create a Home Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_home.htm&release=264.0.0&type=5)** Learn how to design a visually engaging Point of Sale app home page with a GIF, text overlay, padded image, and carousel. Enhance user experience by integrating dynamic elements and clean layout techniques. - **[Create and Publish Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_process.htm&release=264.0.0&type=5)** Learn how to create and publish layouts using the Point of Sale Layout Editor, including starting from a blank layout or a template, and managing live versions, drafts, and scheduling. Discover how to edit, save, publish, and restore layouts, ensuring your content is always up-to-date and tailored to your needs. # Manage Location Groups Location groups represent sets of related locations. Assign locations to a location group. A location group provides an aggregate view of inventory availability across the locations in the group. Manage them using the Omnichannel Inventory Console. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_tip.png) Tip Set up your locations and location groups before you upload inventory data to the Omnichannel Inventory service. - **[Add a Location Group](https://help.salesforce.com/s/articleView?id=commerce.inv_add_a_location_group.htm&release=264.0.0&type=5)** Add a location group to aggregate inventory availability across multiple locations. - **[Edit a Location Group](https://help.salesforce.com/s/articleView?id=commerce.inv_edit_a_location_group.htm&release=264.0.0&type=5)** Use the Omnichannel Inventory Console to change existing fulfillment location group details. - **[Delete a Location Group](https://help.salesforce.com/s/articleView?id=commerce.inv_delete_a_location_group.htm&release=264.0.0&type=5)** Use the Omnichannel Inventory Console to delete a location group if you no longer use the location group to aggregate inventory availability. When you delete a location or location group, its inventory reservations are also deleted. - **[Assign a Location to a Location Group](https://help.salesforce.com/s/articleView?id=commerce.inv_assign_a_location_to_a_location_group.htm&release=264.0.0&type=5)** Use the Omnichannel Inventory Console to assign a location to a location group to aggregate inventory availability across multiple fulfillment locations. - **[Remove a Location from a Location Group](https://help.salesforce.com/s/articleView?id=commerce.inv_remove_a_location_from_a_location_group.htm&release=264.0.0&type=5)** Use the Omnichannel Inventory Console to remove a location from a group when you no longer want to include it in the group’s aggregate inventory availability counts. #### See Also - [Locations and Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_locations_and_location_groups.htm&release=264.0.0&type=5 "Omnichannel Inventory aggregates inventory availability information across locations and location groups. Use the Omnichannel Inventory Console to add, edit, and delete locations, location groups, and location group assignments. Search, sort, and filter data in the list views, or customize the list views to show only the records or data that you want.") # Manage Locations Locations represent physical locations—distribution centers, warehouses, or retail stores—where you have inventory available for fulfilling orders. Manage them using the Omnichannel Inventory Console. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/images/icon_tip.png) Tip Set up your locations and location groups before you upload inventory data to the Omnichannel Inventory service. - **[Add a Location](https://help.salesforce.com/s/articleView?id=commerce.inv_add_a_location.htm&release=264.0.0&type=5)** Add a distribution center, warehouse, or retail store to use as a fulfillment location. - **[Edit a Location](https://help.salesforce.com/s/articleView?id=commerce.inv_edit_a_location.htm&release=264.0.0&type=5)** Use the Omnichannel Inventory Console to change existing fulfillment location details. - **[Delete a Location](https://help.salesforce.com/s/articleView?id=commerce.inv_delete_a_location.htm&release=264.0.0&type=5)** Use the Omnichannel Inventory Console to delete a fulfillment location when you no longer use it to fulfill orders. When you delete a location or location group, its inventory reservations are also deleted. #### See Also - [Locations and Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_locations_and_location_groups.htm&release=264.0.0&type=5 "Omnichannel Inventory aggregates inventory availability information across locations and location groups. Use the Omnichannel Inventory Console to add, edit, and delete locations, location groups, and location group assignments. Search, sort, and filter data in the list views, or customize the list views to show only the records or data that you want.") # Manage Marketing Consents for B2B Stores Use the Commerce Messaging workspace to create customer consent messages to capture emails and grow your marketing campaigns. Marketing consents for B2B requires the CommerceMessagingAddOn license, which is packaged with Commerce Growth or Advanced editions. You'll need an enhanced CMS workspace and the refreshed Commerce app. It also requires Marketing Cloud and Data 360 and it uses Data 360 credits. Reach out to your account executive to learn more about credit usage. Marketing consents aren’t available for Reorder or Pay Now stores. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Enable Marketing Consents](https://help.salesforce.com/s/articleView?id=commerce.comm_marketing_consents_enable.htm&release=264.0.0&type=5)** You can easily enable marketing consents for your B2B store from within the Messaging workspace. A default consent is created for you. You can edit this consent to fit your needs. After consents are enabled, the consents appear on your store in the consent components that you have configured in Experience Builder. - **[Create and Manage Marketing Consents](https://help.salesforce.com/s/articleView?id=commerce.comm_marketing_consents_manage.htm&release=264.0.0&type=5)** It’s important to build direct connections with B2B customers so you can build brand loyalty. With proper consent management, you can get customers’ email addresses and permission to send them marketing messages. - **[Localize Marketing Consents in B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_marketingconsents_localize.htm&release=264.0.0&type=5)** Provide consent requests to buyers in their preferred language. - **[Marketing Consent Store Components](https://help.salesforce.com/s/articleView?id=commerce.comm_marketing_consents_components.htm&release=264.0.0&type=5)** Use Experience Builder to place consent components on your B2B storefront to show consents to customers. These components give customers the option to enter an email address and then consent to receiving marketing campaigns or promotional messages. # Manage More Images in Page Designer The Page Designer image and media picker now supports up to 1,000 images per folder. Previously, only 200 images within a folder were accessible in the image picker, even if more existed. The increased image limit improves the user experience for merchandisers and content creators and avoids workarounds, such as creating subfolders for extra images. ![Page Designer Image Picker](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/24_4/rn_b2c_24_4_image_picker.png) #### See Also - [Upload and Manage Files in the Content Library for Page Designer](https://help.salesforce.com/s/articleView?id=cc.b2c_manage_media.htm&language=en_US) # Manage Offline Events for Point of Sale Registers Create an offline event in Point of Sale CMS to force registers into offline mode or end an active event early when network issues resolve. 1. Create an offline event. 1. In CMS, go to **Store Management** | **Offline Event Management**. 2. Click **Create New Offline Event**. 3. Enter a name for the event. 4. Select the scope: - All stores: Applies the offline event to all stores in your organization. - Selected stores: Select specific stores from the list. 5. Enter the date and time when the offline status expires and registers automatically recover. 6. Select your time zone. 7. (Optional) Enter a custom message to show on POS devices during the offline event. Use this message to inform store associates about the situation and expected duration. 8. Click **Publish Event**. ![Create offline event configuration screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_createoffline_event.png) 2. End an offline event early. 1. In the Active Offline Event section, click **End and Recover Now**. 2. Review the recovery confirmation. The event ends immediately and sends recovery signals to all affected registers. Recovery takes approximately 5–15 minutes. 3. Click **Yes, Recover Now**. ![End offline event recovery confirmation dialog](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_endoffline_event.png) The selected registers switch to offline mode immediately. When the scheduled recovery time arrives, or when you manually end the event, registers automatically return to online mode. # Manage On-Demand Sandbox Instances in Control Center You can now use Control Center to monitor your On-Demand Sandboxes (ODS) instances. How: Use Control Center to: - Monitor ODS instance status - Start, stop, or reset a new ODS instance - Specify ODS instance roles and permissions # Manage On-Demand Sandboxes with the Operations Scheduler Use the Control Center Operations Scheduler to start and stop on-demand sandbox (ODS) instances within a realm. By scheduling ODS starts and stops, you can control the usage of ODS credits. The Operations Scheduler is a convenient UI-based tool. Developers can still use the swagger UI or the Sandbox API to schedule operations. # Manage Operational Settings Configure and manage Point of Sale (POS) stores by using CMS. Configure Omnichannel settings, manage store associates, track inventory, and generate reports. You can also configure returns and exchanges, manage stores, and access support resources. - **[Retail Reconciliation - Suggested Practices](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_retail_reconciliation_suggested_practices.htm&release=264.0.0&type=5)** By performing daily reconciliations with the Point of Sale (POS) app, you avoid financial loss due to mistakes or fraud and gain insight into your business's cash flow. - **[Configuring Store Group Pricing](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_configuring_store_group_pricing.htm&release=264.0.0&type=5)** Define groups of stores in Point of Sale CMS that share product prices. - **[Order Reexport](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_order_reexport.htm&release=264.0.0&type=5)** Point of Sale's order reexport feature allows merchants to resend failed order exports to their ERP systems via webhook integration. - **[Order Reconciliation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_order_reconciliation.htm&release=264.0.0&type=5)** Order Reconciliation in Point of Sale provides real time key sales audit metrics within the Sales Audit Dashboard, acting as a central hub for delving into specific reports. - **[Aborted Order Alerting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_aborted_order_alerting.htm&release=264.0.0&type=5)** Set up email alerts for aborted orders on the Point of Sale (POS) app, so you can take corrective measures. - **[Point of Sale Registers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_point_of_sale_registers.htm&release=264.0.0&type=5)** Configuring Point of Sale (POS) registers lets you track devices that run the Retail Cloud store app. - **[Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5)** Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments. - **[Reconcile Open Tills in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reconcile_open_tills_in_retail_cloud_cms.htm&release=264.0.0&type=5)** Resolve open tills and other issues caused by ghost tills directly within Point of Sale CMS. # Manage Orders Manage orders in the POS app to create customized orders, process them efficiently, and fulfill them accurately. Support specialized order types to meet diverse customer needs. Gain insights into sales and attribution through order tracking, enabling informed business decisions.d - **[Create and Customize Orders](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_create.htm&release=264.0.0&type=5)** Custom orders in the POS app empower users to create personalized transactions that include additional charges, clearance items, and add-on products. With custom orders, you can accommodate specific customer requests and manage a wider range of sales scenarios. Tailor each transaction to meet individual customer needs, ensuring a seamless and satisfactory shopping experience. Setting up custom orders enhances flexibility and control over the sales process. - **[Process Orders](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_process.htm&release=264.0.0&type=5)** POS app order processing lets you set up your application to process orders quickly and efficiently. The application supports editing orders, order notes, order statuses, and purchase orders. You can also set default shipping addresses, suspend and resume carts, and view order history. - **[Fulfill Orders](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill.htm&release=264.0.0&type=5)** Buy online, pick up in store (BOPIS), buy online, fulfill in store (BOFIS), and reserve online, pick up in store (ROPIS) orders give customers flexible options to receive their purchases. Streamline the fulfillment of these orders in the POS app. Empower your staff to manage these orders efficiently, ensuring customer satisfaction and repeat business. - **[Support Specialized Order Types](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types.htm&release=264.0.0&type=5)** Point of Sale supports specialized order types, including digital contracts, electronic contracts, gift registries, serialized products, and tariff surcharges. Retailers can manage gift registries directly on the POS app. They can also manage tariff surcharges in Point of Sale and configure tariff rates in the CMS. Activation codes are also supported via SPI. - **[Product Bundles in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_product_bundles.htm&release=264.0.0&type=5)** A product bundle groups a parent item with required child items. It sells, returns, and ships as one unit. - **[Track Sales and Attribution](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_track_sales.htm&release=264.0.0&type=5)** Store Associate Sales Attribution in Point of Sale helps you track which store associates are responsible for sales. Tracking sales attribution provides insights into associate performance. With these insights, you can identify top performers and areas where associates may need additional training. You can also use sales attribution data to incentivize associates and reward them for their contributions to the store's success. # Manage Orders Rejected by Salesforce Order Management You can now exclude, cancel, and resubmit orders rejected by Salesforce Order Management in the Business Manager Orders page. How: Resubmit an order that was unintentionally excluded with one click (1). Manually exclude orders with a failed status from being resubmitted to Salesforce Order Management (2). Or, cancel an excluded order (3). When you cancel, the ordered product is moved back to inventory and available for other reservations. ![Exclud from Order Management, Cancle, and Send to Order Management options in the Business Manager Order Page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/23_5/b2c_23_5_rn_image1.png) # Manage Pending and Failed Orders in B2B Commerce Provide transparency to buyers and automate post-order cleanup when orders encounter issues after checkout. Display pending and failed states in buyer account pages, release reserved resources, reverse payments, and notify buyers automatically over email for failed orders. When orders process asynchronously in your B2B Commerce store, certain transactions can result in Pending or Failed statuses rather than immediate completion. By configuring order failure management, you can: - Improve buyer transparency: Allow buyers to view pending and failed order records directly in their Order History and Order Summary pages. - Optimize inventory: Automatically release reserved items and coupon redemptions back into inventory when an order fails. - Automate payment cleanup: Automatically trigger authorization reversals to avoid orphaned funds or manual reconciliation. - Keep customers informed: Automatically send email notifications when an order fails to convert from a cart. 1. [Display failed and pending order statuses in Order History](https://help.salesforce.com/s/articleView?id=commerce.comm_displayfailedandpendingorderstatuses.htm&release=264.0.0&type=5 "Enable your B2B store to show pending and failed orders in Order History. Pending and failed orders prior to Winter '27 aren't included in Order History."). 2. [Release resources and reverse payments for failed orders](https://help.salesforce.com/s/articleView?id=commerce.comm_placeorderinteractions.htm&release=264.0.0&type=5 "You can specify that when an order fails in your B2B store, reserved resources, including inventory reservations and coupon redemptions, are automatically released. You can also configure your store to automatically reverse payments associated with the failed order."). 3. [Enable email notifications for failed orders](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging_messages.htm&release=264.0.0&type=5 "Message email templates and flows can be accessed and customized from the Messaging workspace."). # Manage Product Readiness for B2B Stores Product Readiness is available in the Product Workspace. Anytime a custom rule set is enabled or disabled, build an initial score for your catalogs. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Product**, and then click **Product Readiness**. 3. To get category recommendations for products, enable **Category Recommendations**. 4. Click **Rebuild Score**. Rebuild the score whenever implementing a new custom rule set. #### See Also - [Prepare Your B2B Store Catalog with Product Readiness](https://help.salesforce.com/s/articleView?id=commerce.comm_prepare_catalog_product_readiness.htm&release=264.0.0&type=5 "Before activating your catalog, run Product Readiness. After checking all products in the catalog against the default rule set, Product Readiness displays which products still need some attention.") - [Product Readiness](https://help.salesforce.com/s/articleView?id=commerce.comm_product_readiness.htm&release=264.0.0&type=5 "Improve your customers’ shopping experience with a comprehensive, consistent level of detail for all products on your B2B storefront. Use Product Readiness to find any products that are missing important elements that can make the product difficult for a customer to understand and purchase. Ensure that all the products in a catalog are storefront ready before you set the catalog to live.") - [Custom Rules for Product Readiness](https://developer.salesforce.com/docs/atlas.en-us.b2b_b2c_comm_dev.meta/b2b_b2c_comm_dev/b2b_b2c_comm_custom_readiness_rules.htm) # Manage Product Search Filters for a B2B Store Help customers narrow their search results by managing product search filters in B2B Commerce. Configure filters for standard product fields, such as price and product family, or variation attribute fields, such as size and color. Control how filter values appear to buyers by setting the sort order for each filter. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) When adding product filters, keep in mind that field permissions-level security isn't applied to results filters. Add only the results filters that you want buyers to see. See [Field Permissions](https://help.salesforce.com/s/articleView?id=platform.users_profiles_field_perms.htm&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Adding many high-cardinality filters, with more than 50 unique values, can increase search latency. To keep the search responsive, limit the number of filterable fields and values. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Search**. 3. On the Results Filters tab, click **Manage Filters**. 4. Move filters from the Available Fields column to the Selected Fields column, and then click **Next**. By default, you can configure up to 25 searchable fields and 50 filterable fields. To configure a total of 100 searchable and filterable fields, contact Salesforce Customer Support. The Category field is always included as a filter option and can't be removed. 5. To change the display order of the filters, select a filter in the Selected Fields column and use the up and down arrows to move the filter. If you choose to automatically select the 10 most-relevant facets, the order in the Selected Fields column is ignored. 6. To remove a filter, select it from the Selected Fields column and move it to the Available Fields column. 7. Click **Next** to select a sort order for each filter. The sort order determines how filter values appear to buyers in the store. - **Alphabetical**: Show filter values in alphabetical order. Use this option for attributes buyers typically browse by name, such as color or brand. - **Count**: Show filter values based on the number of matching products. Use this option to display values with the highest product counts first, helping buyers find products faster. For example, if Color is sorted alphabetically, buyers see Black, Blue, Green, and Red. If Size is sorted by count (most to least) and Small has the most matching products, Small appears first. 8. Save your changes. 9. On the Search Index tab, update the search index. Changes to filter configuration and sort order appear in the store after the next search index rebuild. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates."). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important We recommend that you localize all filter values, such as red, blue, and green on a color filter and update the search index to reflect the changes on the results page. By localizing the values, you make sure that all filters appear as expected. For more information about translation and localization, see [Sell Globally](https://help.salesforce.com/s/articleView?id=commerce.comm_language_currency.htm&release=264.0.0&type=5 "Enable languages, translations, and currencies to expand the reach of your B2B Commerce store to countries around the world."). #### See Also - [Mark Products as Searchable or Not Searchable](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_products.htm&release=264.0.0&type=5 "After you create your initial search index, all products in the catalog are searchable by default. If you want to make a product not searchable, you can exclude it from search. You can change whether a product is searchable at any time.") - [Mark Product Fields as Searchable or Not Searchable for a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_fields.htm&release=264.0.0&type=5 "Marking fields as searchable helps the search engine index more content, improving search accuracy and relevance in you B2B Commerce store. Avoid marking fields as searchable if the fields contain sensitive information or provide generic data.") - [Configure How to Display Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_search_display_settings.htm&release=264.0.0&type=5 "Define how many values appear for each search filter and how many search results to show on a page. You can choose to skip additional entitlement checks, automatically select and display relevant facets, and group search results under parent products.") - [Automatically Select the Most Relevant Facets](https://help.salesforce.com/s/articleView?id=commerce.comm_search_autoselect_facets.htm&release=264.0.0&type=5 "Automatically select, order, and display the most relevant facets based on search results of your B2B store. For example, a customer searching for \"Shoes\" sees categories like \"Boots,\" \"High Heels,\" and \"Sandals\" based on the number of results of each category.") - [Search Data Limits](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-b2c-comm-data-model-search-limits.html) # Manage Product Warranties in Point of Sale Dynamic warranty management uses an SPI so the POS can send cart data to your warranty engine, receive eligible warranty SKUs, and replace prior warranty lines with the SPI result. Learn how the POS system identifies warranty products, the required CMS setup, and the associate flow during checkout. POS Prerequisites: - Modern POS App Build: 12.0.1 or later - Platform Support: iPhone & iPad - Offline Support: No - Files: Product Feed configured with add-on products and warranty SKU products The WarrantySKU rule on the product class identifies an item as a warranty item, not by a fixed class name. Before the SPI runs, the POS removes warranty items from the payload to send only merchandise in the request. Warranty products are considered add-on products in the cart, see [Configure Add-On Products in the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_add_on_products_configure.htm&type=5&language=en_US). To customize the SPI for warranty checks, and for reference on the request and response payloads, see [Point of Sale for Developers](https://developer.salesforce.com/docs/commerce/retail-cloud/overview). ## Warranty SKUs in the Product Feed Warranty products must exist in the product catalog before the SPI can return them. The warrantyProductId returned by the warranty SPI must match a productId in your catalog with a warrantySKU-enabled product class. Create one SKU per warranty category. See [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&type=5&language=en_US). Fields Required in Warranty Product SKU | Field | value | notes | | --- | --- | --- | | productId | Assigned by the merchant (for example WRN-FURN-5y). | This field must match the warrantyProductId in the SPI response. | | name | Human-readable (for example, Furniture Protection Plan - 5 Year). | None | | productClass | The product class name. | Enable the WarrantySKU setting. | | price | 0 | This is a placeholder. The SPI overrides the actual price. | | imageURL | Shield/warranty icon URL. | Used as the deep link CTA button in the cart and in the warranty confirmation window at checkout. | ## Constraints After you add warranty items to a cart, warranty items create these constraints: - Warranty quantity is locked - Warranty products can’t be discounted - Warranty price can’t be overriden - Warranties can’t be added manually - Warranties can’t be removed without manager approval - **[Configure Product Warranties in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_warranty_cms.htm&release=264.0.0&type=5)** Configure Point of Sale CMS settings so you can offer product warranties. Set up a custom connector to call the warranty SPI at checkout and create a warranty product class so the POS system can identify warranty products. Then configure approvals, deep links, and warranty checks for the associate checkout experience. - **[Perform Warranty Checks at the Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_warranty_pos_flow.htm&release=264.0.0&type=5)** Associates can run the warranty check during checkout so the POS calls the Warranty SPI. This check reviews eligible warranties and prompts associates to confirm them before adding them to the cart. # Manage Products for B2B Stores Make products easy to find in your B2B store with informative product fields and descriptions. Enrich product pages with high-quality images and attachments to enhance the visual appeal and user experience. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Add a Product to a B2B Commerce Store from the Workspace](https://help.salesforce.com/s/articleView?id=commerce.comm_products_create.htm&release=264.0.0&type=5)** Add a product to up to five categories. The product can include variations such as color and size. You can also add digital products, which can be excluded from shipping calculations. - **[Add Shipping Weight Options to a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_shipping_weight_products.htm&release=264.0.0&type=5)** If you set up shipping rates based on weight, you can add fields to the product page to enter weight for individual products. - **[Configure Your B2B Commerce Org to Support Digital Products](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_org_for_digital_products.htm&release=264.0.0&type=5)** Add digital products to your store, such as downloadable cookbooks, e-books, music files, or software. To do this, you must configure the page layout for the Product object to include the Shipping Charge Not Applicable field. - **[Assign a Tax Policy to a Product](https://help.salesforce.com/s/articleView?id=commerce.comm_tax_assigntaxpolicytoproduct.htm&release=264.0.0&type=5)** After you select the default tax policy for your B2B store, the tax policy and tax treatment for your products are updated. To override the default tax policy for individual products, assign a new tax policy to each of the products. You can manually assign tax policies to products only if your store is using Stripe or an extension provider. - **[Create Featured Product Collections for Your B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_featured_products.htm&release=264.0.0&type=5)** Upsell or cross-sell your products by associating a product with up to 10 featured products. Create multiple user-defined collections, such as Complementary Products, Best Sellers, New Arrivals, and more. Showcase these static product recommendations on your B2B store's home page, product listing pages, or product detail pages. - **[Show Product Collection from Any Category on the Home Page](https://help.salesforce.com/s/articleView?id=commerce.comm_featured_category.htm&release=264.0.0&type=5)** Show products from any category in a collection on your D2C store's the home page. For example, show all the new arrival products from a category by adding them to a Carousel component on the home page. - **[Considerations for Einstein Product Descriptions and Fields](https://help.salesforce.com/s/articleView?id=commerce.comm_product_descr_considerations.htm&release=264.0.0&type=5)** To enhance product fields and descriptions with Einstein Generative AI, consider supported functionality, usage, limitations and allowances, limits, and other issues. - **[Enhance Product Descriptions with Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_product_descr.htm&release=264.0.0&type=5)** Generate product descriptions using Einstein Generative AI. Einstein uses your instructions to generate revised product descriptions for the selected product in your B2B or D2C store. Product descriptions support instructions in English only. You can generate descriptions in all languages in your B2B store. Then review the generated description and accept or reject the changes. You need the Einstein Generative AI license to use Einstein Generative AI. Any user can generate product descriptions with Einstein, but only the Salesforce admin can accept or reject recommendations. Contact your account executive for more information. - **[Enhance Product Fields with Einstein](https://help.salesforce.com/s/articleView?id=commerce.comm_products_descriptions.htm&release=264.0.0&type=5)** Generate product text fields for multiple products in one process using Einstein Generative AI. Einstein uses your instructions and any linked reference fields to generate revised product text for the selected products. Product fields support instructions in English only. You can generate product text fields in languages in your B2B store. Then review the generated text and accept or reject the changes. You need the Einstein Generative AI license to use Einstein Generative AI. Contact your account executive for more information. - **[Guidelines for Adding Product Images to a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_prod_cat_image_types.htm&release=264.0.0&type=5)** Enhance the visual appeal and user experience in your store with product images. Showcase alternate views, list images, banners, and tiles to help customers better understand and engage with your products. - **[Guidelines for Adding Product Videos to a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_video_guidelines.htm&release=264.0.0&type=5)** Integrate videos into the product gallery to enhance your store and provide a richer shopping experience. - **[Product Image Optimization](https://help.salesforce.com/s/articleView?id=commerce.comm_product_image_optimization.htm&release=264.0.0&type=5)** B2B Commerce store components that include product images automatically scale the images for optimal performance and remain sharp across different devices. - **[Add Media to Products and Categories](https://help.salesforce.com/s/articleView?id=commerce.comm_prod_cat_media_groups.htm&release=264.0.0&type=5)** To provide more information about your products and categories, add images, videos, and attachments. You can associate media to parent and variation products. You can also associate a banner image to your B2B store’s product category pages. - **[Add Products to Categories in a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_assign_products.htm&release=264.0.0&type=5)** To make a product available in a B2B Commerce store, add it to a category. The maximum number of products in a category is 1.8 million. You can add products from either the Category workspace or the Product workspace. - **[Choose Product Categories to Use in Breadcrumbs](https://help.salesforce.com/s/articleView?id=commerce.comm_categories_breadcrumbs.htm&release=264.0.0&type=5)** The order of breadcrumbs is determined by a combination of a category and product and the date and time that their association was established. The first category that a product is associated with is the product’s primary category and becomes the basis of the breadcrumb order. You can customize the default order of breadcrumbs by explicitly identifying categories as primary. When you identify a category as primary, your store uses it to construct the category path that populates the breadcrumbs on the Product Detail page. You can associate a product with multiple categories, but it can have only one primary category. - **[Purchase Quantity Rules for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_products_qr_parent.htm&release=264.0.0&type=5)** Use rules to control the amount of a product that a customer can buy. - **[Product Variations and Attributes](https://help.salesforce.com/s/articleView?id=commerce.comm_var_att_intro.htm&release=264.0.0&type=5)** Use variations to extend the range of products that you offer in your B2B store. For example, add size and color options to a tee shirt. Configure variations to be searchable in your stores and available in multiple languages. - **[Product Variation Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_parent.htm&release=264.0.0&type=5)** Choose how you want to display product search results on your B2B store’s Product List page. Options include showing all the variations of the parent product separately, showing only the parent product, or showing only the best match. - **[Entitlement Policies for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_entitlement_policies_intro.htm&release=264.0.0&type=5)** Entitlement policies make it easy to manage buyer groups and products. You can use entitlement policies to decide which products a buyer group can see, and whether the buyers can see the product prices. When you create a store, the system automatically creates a default buyer group and a default entitlement policy. You can create additional buyer groups and entitlement policies as needed. - **[Qualification Rules in Your B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_qualificationrules.htm&release=264.0.0&type=5)** Using qualification rules in your B2B Commerce store simplifies the process of defining which products are available to which buyer groups, reducing implementation costs and significantly simplifying product configuration. # Manage Products in Point of Sale CMS In Point of Sale CMS, view a current product list that you imported from a product feed. - Technical Prerequisites: - A configured product feed - An appropriate CMS user role and permissions You can also edit existing products and create products. Both options appear in your shopping or Point of Sale (POS) app. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note With [catalog unification](https://help.salesforce.com/s/articleView?id=cc.b2c_pos_catalog_unification.htm&language=en_US&type=5) enabled, B2C Commerce becomes the source of truth for product information. Products become view-only in Point of Sale CMS, and you can't edit or create products. ## View Products 1. Select **Products | Products** in the left navigation menu. 2. Use the search field to search for a specific product, or keep scrolling to load new products. ## View Product Details 1. Select **Products | Products** in the left navigation menu. 2. Use the search field to search for a specific product, or keep scrolling to load new products. 3. Select the three vertical dots for a product. 4. Select **Product Details**. ## View a Product's Barcode The system generates product barcodes from the product's GTIN field value. 1. Select **Products | Products** in the left navigation menu. 2. Use the search field to search for a specific product, or keep scrolling to load new products. 3. Select the three vertical dots for a product. 4. Select **Product Details**. ## Edit Product Details 1. Select **Products | Products** in the left navigation menu. 2. Use the search field to search for a specific product, or keep scrolling to load new products. 3. Select the three vertical dots for a product. 4. Select **Edit**. 5. Edit any field values. 6. Select **Save**. ## Add a New Product 1. Select **Products | Products** in the left navigation menu. 2. Select **Add Product** in the upper right. 3. Fill out all required fields. 4. Select **Save**. ## Add a Gift Card 1. Select **Products | Products** in the left navigation menu. 2. Select the down arrow on **Add Product**. 3. Select **Add Gift Card**. 4. Fill out a denomination label. 5. Fill out all required fields. 6. Select **Save**. ## Delete Products 1. Select **Products | Products** in the left navigation menu. 2. Use the search field to search for a specific product, or keep scrolling to load new products. 3. Select the products that you want to delete by clicking the product card. Selected products appear with a blue check. 4. Select **Delete**. To deselect products, click the product again, or clear all selected items by clicking the cross icon. ## Known Issues and Restrictions If you imported a product through a feed and then changed that product in Point of Sale CMS, the changes don't persist through the next feed import cycle. A feed import doesn't affect any product that you created in Point of Sale CMS, and changes made to it remain. # Manage Quotes in a B2B Store View and manage the quotes received from buyers. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. From the App Launcher, find and select **Quotes**. 2. Select a quote to view details, make changes, or update its status. #### See Also - [Manage Your Quotes in Sales Cloud](https://help.salesforce.com/s/articleView?id=sales.quotes_manage_your_quotes.htm&language=en_US) - [Manage Quotes in Revenue Cloud](https://help.salesforce.com/s/articleView?id=ind.qocal_manage_quotes.htm&language=en_US) - [Set Up Request for Quote for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_setup_request_for_quote.htm&language=en_US) # Manage Registers Add, monitor, and maintain POS registers in Point of Sale CMS. ## Accessing the Registers Screen You can access your store registers in the CMS on the store listing page. 1. Go to **Store Management > Store** to access your store listing. 2. Select **Registers** (cash register icon) for that store listing. ## View Registers Screen The **View Registers** screen provides you with a view of a store's registers. You can change which store you're looking at by selecting another store from the dropdown menu at the top of the page. This screen provides visibility of Active Registers, Inactive Registers, and DeletedRegisters. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip You can add a new register by clicking **Create** at the top of the page. You can edit an existing register by clicking the edit icon on that register. ## Create and Edit Registers You must enter a value or all required fields. Refer to POS Activation & Register Setup for more details. After all required fields are filled out, you can save the register by clicking **Save**. Clicking **Cancel** takes you back to the register view page. The installation ID can be found on the initial activation of the POS app on your device. Make note of that ID and select it when creating the register. Verify between the two IDs as it's case-sensitive. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note IP address isn't a required field for enabling the register. ## Cash Drawer Settings | Setting | POS-to-Drawer Communication | Secondary Requirement | | --- | --- | --- | | Connected | Yes | Drawer is connected to printer | | Disconnected | No | None (You may or may not have a physical drawer with you) | | External URL | Yes | The API endpoint of the drawer | ## Till Management | Setting | POS-to-Drawer Communication | Secondary Requirement | | --- | --- | --- | | Manual | Yes (associates must create and reconcile the till) |   | | Automated | Yes (till is managed by Point of Sale's backend) |   | | mPOS | Not Applicable | No (no concept of till management) | | If a merchant doesn't have tills to manage |   |   | ## Connection Type | Setting | Printer Connectivity |   | | --- | --- | --- | | ANY | You can connect the printer via any medium (Bluetooth, USB, or IP) |   | | NONE | No printer connected |   | | Bluetooth | Bluetooth connection between iPad and Printer |   | | USB | Lightning cable from iPad to printer |   | | IP | IP connection between iPad and Printer |   | ## Scanner Settings To set a specific scanner model (Socket, Zebra, and so on), serial number, or connect type (Bluetooth or USB), you can change the settings under Scanner to do so. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Selecting ANY won't enforce the restrictions. ## Card Reader Settings To use a specific Card Reader model (for example, Adyen, Square, or PayPal), serial number, or connect type (Bluetooth, USB, or IP), you can change the settings under Card Reader. Select the model of the Card Reader according to the payment terminal. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Selecting ANY for any field won't enforce restrictions. Tap to Pay — when enabled, accepts contactless payments directly on an iPhone register. Payment Terminal Topology—if you select 1:N, multiple POS apps can connect to the same payment terminal. This configuration isn’t supported in Bluetooth mode. This setting is also available under Store settings. Because this setting is at the register level, it overrides the Store settings. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Integration Type was deprecated in 2024. Don't configure this field. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note IP address isn't a required field for enabling the terminal. ## Receipt Printer Settings To use a specific receipt printer model (for example, Star or Epson), serial number, or connect type (Bluetooth, USB, or IP), you can change the settings under Receipt Printer. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Selecting ANY won't enforce the restrictions. Printer Topology—if you select 1: N, multiple POS apps can connect to the same printer. This configuration isn’t supported in Bluetooth mode. This setting is also available under Store settings. Because this setting is at the register level, it overrides the Store settings. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note IP address isn't a required field for enabling the printer. ## Connect an RFID Reader ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Only Zebra scanners are supported for RFID. Run high-volume inventory counts without scanning barcodes. In the RFID Reader section, select the reader, model, and connection type. Then connect your RFID scanner to your register via Bluetooth. See [Zebra Scanner Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_zebra_scanner_support.htm&release=264.0.0&type=5 "Configure your wired or wireless Zebra scanners in the Point of Sale (POS) to make sure of accurate and efficient barcode scanning.") . ## Enable External Peripheral Mode for Cash Drawers 1. Go to the register and scroll down to the Cash Drawer section. 2. Set the Connection Type as EXTERNAL\_PERIPHERAL. ## Additional Cash Drawer Settings If you're using Self-Registered Approval Mode and don't want to reconfigure the registers, you can change the cash drawer's behavior. 1. Go to the register of interest and scroll down to the **Cash Drawer** section. 2. Set **Cash Drawer Mode** POS Store settings (this setting has three possible modes): - Disconnected Cash Drawer - In this mode, the cash drawer isn’t connected to the POS Register and the POS Register won’t communicate with the cash drawer. This setting prefills the cash payment prompt with the complete order amount for cash payment done from the unified cart. - Connected Cash Drawer - In this mode, the cash drawer is expected to be connected to the POS Register and the POS Register will attempt to communicate with the cash drawer during cash operations. - Cash Drawer Via External URL - In this mode, each cash drawer is assigned a specific QR code and it will be used by POS Register to scan and communicate with that cash drawer. POS Register can scan the QR code just in time for the cash handling operation. # Manage Return to Vendor Transfers in Point of Sale Facilitate the movement of merchandise from a store back to either a vendor or a warehouse. ## Prerequisites - Modern POS App Build: 5.11.3 and later - Platform Support: iPhone & iPad - Offline Support: no ## Configure Return to Vendor Settings in Point of Sale CMS Set up the store in Point of Sale CMS to handle Return to Vendor (RTV) transfers. Before ‌using RTV, set up the store in Point of Sale CMS (**Store Management > Stores**). This setup includes specifying the Location Type as either "**Vendor**" or "**Warehouse**". Notably, RTV isn't intended for stores set up as "**Regular**" or "**Outlet types**" and won't ship to these location types. ![The Localtion Type setting in the Edit section of the Stores page in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_store_setup.png) ### Configure Deep Link In order to access RTV on the app, configure a deep link. 1. Create a layout or use an existing one. 2. Select a cell and select **Deep Link** in the toolbar menu on the right. 3. Go to **Store Associate > Inventory Management**. 4. Select **Vendor Return**. 5. Set and save your changes.![Select a Deep Link for Vendor Return in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_config_deep_links.png) ### Serialized Items Handling If you have serialized products, it is recommended to turn on the flag "**Enable Serialized Inventory**" for tracking and managing these items. Any action or transaction, including receiving, requires scanning or entering the product's serial number. 1. In CMS, go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Turn on **Enable Serialized Inventory**. 4. Save your changes. ### Configure Email Template for Packing Slips Configure an email template to print packing slips for RTVs. 1. In CMS, go to **Layouts > Layout Templates > Email & Print Templates**. 2. Select **Add from Template > Return to Vendor Transfer**. 3. Edit the layout to fit your requirements. 4. Publish your changes.![An Email Template for packing slips that you configure in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_packing_slips_email_template.png) ## Accessing Return to Vendor in the POS App Use the Point of Sale (POS) app to view the Return to Vendor (RTV) options. On the app, tap the **Vendor Return** deep link you've previously configured in [Configure Deep Link](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_rtv_transfers.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise from a store back to either a vendor or a warehouse."). In the example, the deep link was configured as a tile on the Inventory tab. ![The POS app with the Vendor Return tile available on the home screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_deep_link_pos.png) On the next screen, you'll see a list of transfers. At the bottom of the screen, you'll see a filter and calendar icons. Tap them to filter the list by status or date. ![The Return to Vendor transfers sorted by a range of calendar dates.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_tansfer_by_date_pos.png)![Available filters for the Return To Vendor transfers. Closed and Open are selected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_closed_open_rtv.png) ### Creating RTV After tapping **Return to Vendor**, a new screen appears, prompting you to select a vendor for the return. You can search by location, ZIP or Postal code, or store ID. Searching by store ID is for app builds 9.6.1 and later. ![Searching for vendors to whom to return an order in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_search_rts_by_zip.png) Optionally, you can also add notes regarding the reason for generating the return. ![Adding notes to Return to Vendor trasnfers in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rts_notes.png) ## Initiate Return to Vendor Transfer in the POS App Start the Return to Vendor (RTV) process by scanning items or entering them manually in the Point of Sale (POS) app. ### Entering Products To enter products for transfer, you can use an external scanner which auto-populates the quantity on the RTV screen. Alternatively, you can use the device's camera, as noted by the scanner icon at the top right corner. If using the device's camera, tap the back button to return to the RTV screen. ![The Return to Vendor screen in the Store Manager on the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_initiate_transfer.png) For app builds 9.7.1 or greater, users can add items manually by tapping the search icon at the top right. The product catalog shows up, allowing users to search for items by entering text. Alternatively, using an external scanner populates the search field with the product's barcode value.![The POS app's search function for the product catalog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_initiate_search.png) After selection, the quantity can be inputted and will be added to the transfer. After you create an RTV and add items, it'll first decrease the “Return” [inventory](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_manage.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow you to manage inventory across stores, online, and digital warehouses.") bucket. However, if the return quantity is higher than that, it'll then deduct it from "Available". Inventory is moved out of the store after it's shipped, which is at the time the tracking number is entered. ![Add the quantity of an item to return to the ventor in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_add_quantity.png) ### Serialized Inventory If[serialized inventory](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_serialized_products.htm&release=264.0.0&type=5 "Point of Sale supports the management of serialized product inventory. In inventory processes such as transfers and receivings, any serialized products must have their serial numbers scanned or manually entered. The following inventory flows support serialized products: Blind Receivings, Store to Store (STS) Transfers, Return to Vendor (RTV), and Advanced Shipping Notice (ASN).") is enabled, scanning a serialized product triggers a prompt to scan its serial number. Serialized products are identified by the '**SerialNumberRequired**' attribute, which can be configured via [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters."). If this attribute is set to **True** and the flag is turned on, the prompt appears. However, if the flag is turned on but the product attribute is set to **False**, no prompt is triggered. If using the device’s camera, this prompt appears at the top of the screen as shown in the screenshot. Scan again to add the product for the transfer. ![The scanner in the POS app and the app is prompting you to scan the barcode for an item.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_scanner_searrialized.png) However, if you're using an external scanner or manually adding a product through the product catalog, a serial number entry window appears instead.![A window in the POS app prompting you to scan the product's serial number to send back to the vendor.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_serial_numer_wndow.png) Entering multiple serial numbers appends them to the list. Each serialized product can be individually removed using the delete option. If all serialized products are deleted, the product itself is removed. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If scanning a barcode with serialized inventory enabled, our system prioritizes checking for serial numbers that match the scanned value. If no corresponding serial numbers are found, it then searches for product IDs.![The serial numbers for an item displayed in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_serial_numbers_match.png) After the receiving process is complete, details can be exported through [event exports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_exporting_inventory.htm&release=264.0.0&type=5 "Create an inventory export event in the CMS to export inventory data from the Retail Cloud Backend via Secure File Transfer Protocol (SFTP).") by mapping the field **RTV\_SerialNumbers**. Serial numbers for each product are listed using a pipe delimiter. ## Complete the Return to Vedor Transfer in the POS App Close a Return to Vendor transfer, print packing slips, and add tracking numbers. After scanning all the necessary products into the RTV, you can tap **Close Transfer**. The POS app prompts you to select whether to **Close the Transfer** or **Not Yet**.![The Return to Vendor wndow in the POS all prompting you whter to close the transfer or not.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_close_transfer_or_no.png) Selecting **Not Yet** returns you to the main RTV screen with your RTV displaying an open status. Transfers with an open status allow the user to go into it to edit or add more products. Transfers with a closed status won't allow the user to edit or add more products. They can only print a packing slip or ship the transfer. ![An open RTV order in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_open_transfer.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Case pack IDs and serialized inventory can't be used together. Their unique serial numbers individually track serialized products, preventing them from being grouped into case packs for collective scanning. Manage each serialized item independently to maintain accurate inventory records. ### Printing Packing Slips and Adding Tracking Numbers If you select **Close Transfer**, you'll be presented with options to print a packing slip, add a tracking number, or create another transfer.![The Print Packing Slip window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_print_packing_slip.png) Creating another transfer takes you to a new RTV with the process of selecting a return vendor. If you select to print a packing slip, you'll be prompted to print the packing slip. In the case of adding a tracking number and not printing the packing slip, the app issues a warning: "**Packing Slip was not printed for this transfer. Do you want to continue?**" ![The Add Tracking Number window in the POS that shows a warning about no packing slip being printed.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_add_tracking.png) Selecting **No** returns you to the printing page. Selecting Yes prompts you to enter a tracking number, which is a mandatory field. You can manually type in the tracking number. Alternatively, you can also use the device's camera or an external scanner to scan the number. After the tracking information is entered, the app brings you to a Successfully Shipped screen with options to: - **Go to Transfer List** brings you back to the main RTV screen - **Exit Transfers** brings you back to the Inventory screen - **Create Another Transfer** allows you to create another transfer ![The Successfully Shipped Window in the POS with three additional options for what to do next.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_successfully_shipped.png) ## Generate Shipping Labels for Return to Vendor Transfers Create labels in the POS app to use for Return to Vendor (RTV) transfers. For app builds 9.8.1 or greater, shipment labels can be generated. Refer to [Configuring & Generating Shipment Labels via SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_shipping_labels_spixml.htm&release=264.0.0&type=5 "Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing."). ![The Print Packing Slip window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_packing_slip.png) ## View Known Issues with Return to Vendor Transfers in Point of Sale Understand known issues with the Return to Vendor (RTV) feature in Point of Sale. - For app versions less than 9.8.1, while receiving, failure to save your progress can result in the loss of all work, including scanned items, if you tap the merchant logo in the POS app. However, for versions 9.8.1 or greater, users are provided with the option to save before exiting. - RTVs are structured to correspond to single shipments - one RTV number per shipment. For example, if you're returning three items to the same vendor, they are put in one box, scanned under one RTV number, and sent with one tracking number. However, if these three items are going to different sellers, package them in three boxes. Each box has its own RTV number and tracking number. Our system doesn't support assigning multiple tracking numbers to a single RTV number. - If a transfer includes a serialized item, users can't select "Receive All" and they individually scan each product in the transfer. Even after scanning the serialized items, the "Receive All" action remains blocked for the remaining items. # Manage Returns & Exchanges in Point of Sale Point of Sale provides flexible return options, including Buy Online Return In Store (BORIS), appeasements, and No Receipt Returns (NRR), to meet customer needs. Point of Sale also validates refunds to prevent fraud. Shoppers can return and exchange products at the point of sale (POS). Point of Sale supports these return and exchange options: - **BORIS (Buy Online Return In-Store)**: Process referenced and unreferenced refunds for online orders, with tender remapping options for merchants using SPIs, Salesforce Order Management, or NetSuite connectors. - **Appeasements**: Provide a partial refund at the item or order level, for example for a price match, delayed shipment, damaged item, or overcharge. - **No Profile, No Card, No Receipt Returns (NRR)**: Process returns and exchanges for customers without a purchase receipt or customer profile, at the lowest historical price. - **Offline returns**: Return an order by scanning the receipt or item while the POS app is in offline mode. - **Exchanges**: Process a return transaction that includes a new sale. Point of Sale also validates refunds against Adyen refund webhooks to block duplicate fraudulent refunds, and supports different sets of functionality depending on the edit order type. - **[Processing BORIS (Buy Online Return In-Store) Returns in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_boris_overview.htm&release=264.0.0&type=5)** Point of Sale offers flexible methods for processing BORIS returns, including referenced and unreferenced refunds, and tender remapping. These options are tailored to merchants using SPIs, Salesforce Order Management, or NetSuite connectors, ensuring alignment with specific business needs. - **[Configuring Appeasements on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_appeasements_overview.htm&release=264.0.0&type=5)** Store associates can provide a partial refund to provide appeasement to the customer at the item or order-level (for any reason, for example such as a price match, delayed shipment, damaged item, poor customer experience, or overcharge). If appeasements are enabled and configured in Point of Sale CMS, associates can modify an order via Order History on the POS app and start the appeasement flow. - **[No Profile, No Card, No Receipt Returns (NRR) in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_nrr_overview.htm&release=264.0.0&type=5)** Allow returns for customers who don’t have a purchase receipt or a customer profile. No Profile, No Card, No Receipt Returns (NRR) in Point of Sale are performed at the lowest historical price and only if the returning item is still available in the system. - **[Offline Returns in the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_offline_returns.htm&release=264.0.0&type=5)** The POS app allows orders to be returned in offline mode. An order can be returned by scanning the order receipt or if the user doesn't have the receipt for the order, the return can be started by scanning the item directly. - **[Returns & Exchanges in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_exchanges_overview.htm&release=264.0.0&type=5)** Shoppers can return and exchange products in the POS app. Exchanges are defined by any return transaction that also includes a sale. - **[Enable Shipping Fee Refunds for Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_shipping_fee_refunds.htm&release=264.0.0&type=5)** Turn on shipping fee refunds so associates can refund or discount a shipment's shipping fee separately. Point of Sale prevents refunding or discounting the same shipment twice. - **[Supported Functionalities by Edit Order Types](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_supported_edit_order_types.htm&release=264.0.0&type=5)** POS app supports order edits and appeasements, each with its own set of functionalities. This table outlines the supported features for each type of order edit. - **[Validating Refunded Amounts via Adyen Refund Webhooks](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_validate_refunds.htm&release=264.0.0&type=5)** Point of Sale implements a validation system to block multiple fraudulent refunds tied to a specific order number. This validation uses Adyen's refund webhooks to confirm the success of refunds. All refunds (referenced and unreferenced) are validated via these webhooks. - **[Refund Validation Limitations in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_validate_refunds_limitations.htm&release=264.0.0&type=5)** Review these limitations for validating refunded amounts via Adyen Refund Webhooks in Point of Sale. # Manage Routing Rules in Business Manager Starting with Business Manager version 25.4, you can now manage routing rules for forwarding composable storefronts directly from the Business Manager UI. This update simplifies the process of managing routing rules, making it easier to optimize traffic and improve the performance of your composable storefronts. It reduces the need for manual configuration and provides a more intuitive interface for managing your zones. **How:** How: You can configure routing rules in the Business Manager UI by navigating to the Embedded CDN Settings. You can view, create, edit, and delete routing rules to ensure your composable storefronts are optimized for performance. If you prefer to continue using CDN-API, See [eCDN Rules for Hybrid Implementations](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/ecdn-rules-for-phased-headless-rollout.html). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Managed Runtime is the only supported routing destination. #### See Also - [Configure MRT Routing Rules in Business Manager](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/configure-mrt-routing-bm.html) # Manage Safe Funds in Point of Sale View safe funds within a store, check the safe balance at any time, and create a suggested bank deposit each day. The Point of Sale (POS) app features a Safe Management tool designed for managers to view and manage safe funds within the store. Managers can create a safe fund that includes allocations for Safe Float, Till Float, Expenses, and Miscellaneous funds. It dynamically moves cash in and out of the safe funds based on transactions such as Till creation, Pickups, Till Reconciliation, Pay-ins, and Payouts. The Safe maintains a Net Cash bucket and create a suggested Bank Deposit for the end of the day. The tool also records any changes made by managers in the Electronic Journal for all transactions related to Till Float, Expenses, and other entries. ## Prerequisites - Modern POS App Build: 5.5.1 and later - Platform Support: iPhone & iPad - Offline Support: no ## Set up Point of Sale CMS for Safe Management Configure approval policies for users to view and make float adjustments. ### View Safe Management 1. Go to **Store Management > Associates > Approval Policies Configuration**. 2. Select **Create**. 3. Under **Policy Feature**, select "**View Safe Management**". 4. Under **Approving Roles**, select the roles allowed to view the safe management. 5. Save your changes. ![Configuring the View Safe Management feature in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_view_safe_mgmt.png) ### Edit Safe Management 1. Go to **Store Management > Associates > Approval Policies Configuration**. 2. Select **Create**. 3. Under **Policy Feature**, select "**Edit Safe Management**". 4. Under **Approving Roles**, select the roles allowed to edit the floats in the safe management. 5. Configure the rest of the fields by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_approval_policies.htm&release=264.0.0&type=5 "Control which features and roles in Point of Sale CMS require approval."). 6. Save your changes. ![Configuring the Edit Safe Management feature in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_edit_safmgmt.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This approval feature is only available for app builds 10.8.1 and later. ### Setting Reason Codes Configure reason codes for safe management adjustments on the Point of Sale (POS) app. 1. Go to **Store Management > Reason Codes**. 2. For adjusting safe floats, go to **Safe Float Update**. 3. For adjusting till floats, go to **Cash Register Float Update**. 4. For adjusting expenses, go to **Expense Update**. 5. Configure reason codes by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments."). 6. Save your changes. ![The Reason Codes section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_safe_mgmt_reason_codes.png) ### Setting Deep Link Configure a deep link to access Safe Management on the POS app. 1. Edit a layout or hamburger menu. 2. Using the deep link picker, go to **Cash Register > Safe Management**. 3. Set and save your changes. ![The Safe Management part of the Select a Deep Link section in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_deep_link_safe_mgmt.png) ## Access Safe Management in the POS App Use the Point of Sale (POS) app to view and manage store safe activity. ### Opening a Store After opening a store for the date, verify the previous day was closed before opening. More details can be found in [Opening and Closing a Store](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_open_close_store.htm&release=264.0.0&type=5 "Streamline both the opening and closing processes of stores directly through the Retail Cloud Point of Sale (POS) app."). ![The POS app home screen with the Safe Management tile at the bottom right.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_safe_mgmt_create_till.png) Tap the **Safe Management deep link**. If an approval policy has been configured to view the safe management and the logged-in user isn't assigned one of the approval roles, a window appears prompting the user to enter the approval role credentials. The credentials are recorded in the Electronic Journal under "**Approver ID**". ![The Policy Approval window in the POS app, where the store manager enters their credentials.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_safe_mgmt_policy_approved.png) ### Cash Counting You'll be directed to a screen where you'll be able to review the safe's financial details, including safe funds, safe balances, and safe floats. All figures below the expense line have to read $0.00. Verify these amounts by counting the cash in the safe to verify the displayed safe amount is accurate. If the amount has a variance, verify the previous day was closed before opening. More details can be found in [Opening and Closing a Store](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_open_close_store.htm&release=264.0.0&type=5 "Streamline both the opening and closing processes of stores directly through the Retail Cloud Point of Sale (POS) app."). To learn more about each field, including their descriptions, go to [Safe Management Field Descriptions](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_safe_management.htm&release=264.0.0&type=5 "View safe funds within a store, check the safe balance at any time, and create a suggested bank deposit each day."). ![The screen that shows the safe's financial details in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_safe_mgmt_cash_counting.png) ### Adding or Removing Funds You can add or remove funds for safe management. This function is used if you start a new store, add more registers, add more money to the till, or add money to the safe fund or expenses. Select + or - on the fund you want to add or remove funds from. If an approval policy has been configured to edit the safe management and the logged-in user isn't assigned one of the approval roles, a window appears prompting the user to enter the approval role credentials. The credentials are recorded in the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") under "**Approver ID**". ![The Policy Approval window in the POS app, where the store manager enters their credentials.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_safe_mgmt_policy_approved.png) After you edit a fund, a window appears that allows you to enter the amount. A reason code must be selected for any adjustments. Tap **Adjust** to confirm the amount. ![The Add to Safe Float window in the POS app, where you can select how to adjust a find and enter an amount.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_safe_mgmt_float.png) Adjustments are recorded in the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud."), along with their corresponding reason codes. ## View Safe Management Field Descriptions View descriptions of each field featured in the Safe Management screen. | Field | Description | | --- | --- | | Safe Fund | Date and time funds were added to the safe. | | Safe Balance | Current total amount of cash in the safe. | | Safe Float | Cash reserved in the safe for pay-ins to the register from returns or payouts. Use the + or - to adjust the Safe Float. A reason code is required for changes. | | Till Float | Initial cash provided to each register, calculated as the Starting Cash multiplied by the number of registers in the store. Adjust using + or -. A reason code is needed. | | Expenses | Cash allocated to the store for expenses, coins, and so on Adjustments can be made with + or -, and a reason code is necessary. | | Till Reconciliation | Process where cash exceeding the Starting Cash in a till is accounted for during the day. | | Pick Up | Total cash collected from all registers throughout the day. | | Pay Out | Cash dispensed for expenses, reducing the expenses upon reconciliation. | | Pay In | Additional cash supplied to a till if running low, reducing the Safe Float. | | Cash Net Sales | Total net cash sales from all tills for the day. | | Bank Deposit | Estimated total cash amount to be deposited at the bank at the end of the day. | | Deposit Ticket Number | Tracking number for the bank deposit. | # Manage Shipping Zones and Rates for a B2B Store Whether you’re using managed or custom checkout, you can organize countries with similar shipping costs into shipping zones. A zone can include countries with different currencies. For each zone, you can set shipping rates based on the monetary value of the order or by weight. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) To offer weight-based shipping prices that are supported by a native shipping calculator in a store created before the Winter ’25 release, enable the Cart Calculator API. For stores created in Winter ’25 or later, the Cart Calculator API is enabled by default. See [Enable and Disable the Cart Calculate API for a Webstore](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/cart-calculate-api.html). 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Settings** | **Checkout**. 3. Go to the Manage Shipping page. - If you’re using managed checkout, under Shipping, click **Manage Shipping**. - If you’re using custom checkout, go to the Shipping tab and click **Manage**. 4. Click **New Zone** and enter a name. 5. Select the countries to add to the zone, and click **Save**. 6. Click **New Rate** and enter a name. 7. Set the transit time, price, currency, and the conditions for your rate. Use shipping conditions to determine which delivery options to show at checkout. For example, you can define shipping rates based on the cart’s total order value (price) after promotions have been applied and before taxes are calculated. For example, if the cart is $50.00, only Rate 1 is displayed at checkout. If the cart is $300.00, all three rates are shown. | Rate Name | Condition | Shipping Cost | | --- | --- | --- | | Rate 1 | None | $5.00 | | Rate 2 | 100 and up $ | $6.00 | | Rate 3 | 200–500 $ | $9.00 | You can also define shipping rates based on weight. For example, if the items weigh 5 KG or less, only Rate 1 is displayed at checkout. If the weight is 50 KG, all three rates are shown. The native shipping calculator supports weight-based calculations for grams, kilograms, ounces, and pounds. Use only these units. If you use other units, the product weight is calculated as 0. To add shipping weight to your products, see [Add Shipping Weight Options to Commerce Products](https://help.salesforce.com/s/articleView?id=commerce.comm_shipping_weight_products.htm&release=264.0.0&type=5 "If you set up shipping rates based on weight, you can add fields to the product page to enter weight for individual products."). | Rate Name | Condition | Shipping Cost | | --- | --- | --- | | Rate 1 | None | $5.00 | | Rate 2 | 5 and up KG | $6.00 | | Rate 3 | 30–50 KG | $15.00 | 8. Click **Save**. 9. To edit or delete a shipping zone or rate, click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_edit_action_arrow.png). 10. Create a shipping charge product. The shipping charge product represents an order’s shipping cost. Each B2B store must have a shipping charge product. If you have a store created after Summer ’25, the shipping charge product is already created and no action is required. If your store was created before Summer ’25, the shipping charge product is added when you upgrade your org. To verify that it was created, go to **App Launcher** | **Products** and search for SKU 9999999 or the product name “Shipping Charge Product”. If your store doesn’t have a shipping charge product, create a non-variation product with the word “shipping” in it’s name. 1. In the navigation sidebar, select a store from the Store dropdown. 2. Select **Merchandising** | **Product**. 3. Click **New**. 4. Enter the product name as Shipping Charge Product. 5. Add a description, such as “Default shipping product to calculate standard shipping charges.” 6. Enter a product SKU, such as “9999999.” 7. Select **Active**. 8. Select **Shipping Charge Not Applicable**. 9. Click **Save**. If your store doesn’t have the shipping charge product, the shipping calculator searches for a parent product with the English word "shipping" in its name, regardless of your store’s default language. If a matching product is found, its product ID is assigned to the cart delivery group method and mapped to the order delivery method. If no matching product exists, the calculator picks a random product that’s used for product ID assignment. This product ID remains valid for 7 days for all cart orders unless the cache is invalidated. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important If you have a Commerce and Revenue Lifecycle Management Add-on license, set **Is Assetizable** to false when creating a shipping charge product for both native and custom shipping calculators. For more information, see [Configurator Product Catalog](https://developer.salesforce.com/docs/atlas.en-us.revenue_lifecycle_management_dev_guide.meta/revenue_lifecycle_management_dev_guide/connect_responses_configurator_product_catalog_output.htm?q=Is+Assetizable). 11. If you’re using manual taxes, configure tax rates and treatments for each shipping charge product. See [Configure Tax Rates and Treatments with the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_config_tax_rates_treatments.htm&language=en_US). If you’re using Salesforce Tax with Stripe as your tax provider, don’t configure tax rates and treatments for your shipping charge product. Instead, configure the Default Shipping Tax Code in your Stripe account. If you’re using an extension, set up taxes on shipping according to the extension implementation. #### See Also - [Integration Architecture for B2B and D2C Stores (LWR)](https://developer.salesforce.com/docs/atlas.en-us.b2b2c_commerce.meta/b2b2c_commerce/1cb2c_integration_overview.htm) - [Checkout Integration](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-b2c-comm-checkout-api-container.html) - [Set Up Salesforce Native Shipping for Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_native_shipping.htm&release=264.0.0&type=5 "Provide customers accurate shipping methods, including default free shipping, flat rates, and custom rates with the Salesforce native shipping service for your B2B store.. You can use the shipping service with custom checkout or managed checkout, but if you configure your store using custom checkout, you must add the shipping service manually. You can create custom shipping zones and turn off shipping if you don’t sell physical goods.") # Manage Site Traffic with Analytics and Custom Firewall Rules Get insights into HTTP traffic and security data using the new analytics overview in Business Manager. To control incoming traffic, you can also create firewall rules. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, go to **Administration** | **Sites** | **Embedded CDN Settings**. To view HTTP and security metrics, click the **Analytics** tab. To configure firewall rules, click the **Security Rules** tab. ![eCDN Analytics in Business Manager.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/25_10/b2c_rn_25_10_bm_analytics.png) #### See Also - [_Salesforce Help_: Configure the Embedded CDN](https://help.salesforce.com/s/articleView?id=cc.b2c_configure_the_embedded_cdn.htm&language=en_US) # Manage Store Associates Control who can access sensitive customer and sales data in Point of Sale CMS, and ensure smooth store operations. - **[Create Store Associates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_create_store_associates.htm&release=264.0.0&type=5)** Add users to Point of Sale CMS who can access store functions and operate a point of sale (POS) system. - **[Assign Roles and Permissions to Store Associates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_assign_associate_roles.htm&release=264.0.0&type=5)** Configure in Point of Sale CMS what actions managers or associates can perform, which helps streamline store operations and maintain security and compliance. # Manage Store Locations Configure your stores' physical locations in Point of Sale CMS. - **[Stores](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_store_management_stores.htm&release=264.0.0&type=5)** Upload store details to the Point of Sale backend. - **[Store Creation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_store_creation.htm&release=264.0.0&type=5)** Create stores and edit store details in Point of Sale CMS - **[Store Settings for POS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_store_settings.htm&release=264.0.0&type=5)** Configure your store settings in the Point of Sale (POS) app. - **[Sync Device Time Zone and Store Time Zone](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_sync_timezone.htm&release=264.0.0&type=5)** Prevent store closure failures due to time zone mismatches between POS devices and store locations. For merchants on Salesforce POS build 11.8.1 and later, time zone checks are automatic when associates log in to POS devices. For merchants on builds before 11.8.1, you can manually enforce this time zone check with a CMS setting. - **[Reopening a Store](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reopening_a_store.htm&release=264.0.0&type=5)** If a store is closed prematurely in Point of Sale CMS, reopen it so associates can create a till. # Manage Store Operations in the POS App Manage tasks using the Point of Sale (POS) app, such as auditing tills, managing cancelled cash transactions, and safe management. - **[Auditing Tills and Managing Canceled Cash Transactions in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_till_mgmt.htm&release=264.0.0&type=5)** Check cash amounts in register tills for changes within a day and do audits, avoiding the need for end-of-day till reconciliation. - **[Perform an Offline Search in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_offline_search.htm&release=264.0.0&type=5)** Search for products in the Point of Sale (POS) app and add them to the cart even if other features aren’t online. - **[Opening and Closing a Store for the Day in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_open_close_store.htm&release=264.0.0&type=5)** Streamline both the opening and closing processes of stores directly through the Retail Cloud Point of Sale (POS) app. - **[Outlet Store Support in the POS app](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_outlet_store_support.htm&release=264.0.0&type=5)** Create and manage outlet stores in the Point of Sale (POS) app, providing customers with lower prices and everyday bargains. - **[Manage Safe Funds in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_safe_management.htm&release=264.0.0&type=5)** View safe funds within a store, check the safe balance at any time, and create a suggested bank deposit each day. - **[Managing Tills in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_till_mgmt.htm&release=264.0.0&type=5)** Use the Point of Sale (POS) app to manage tills in-store and reconcile all tills at the same time. # Manage Store Tasks with Point of Sale Create a list of tasks to help with task management and leverage the feature to keep track of any to-dos you might have. The task feature is configured by a deep link in Point of Sale CMS, and can either be implemented in a layout or in a hamburger menu. 1. Create a layout or hamburger menu, or use a preexisting one. 2. Add the deep link by going to **Store Associate > Tasks**. 3. Save your changes.![The Tasks deep link setting in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_tasks_cms.png) ## Manage Store Taks in the POS App View the task creation process in Point of Sale's Point of Sale (POS) app. After you've set up the deep link, relaunch the POS app and tap the deep link.![The POS app with the Clienteling deep link at the bottom.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_pos_tasks_deep_link.png) ### Tasks User Flow The associate can create, complete, and delete tasks as needed.![A to-do list in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_todo_lists_pos_app.png) ### Create a Task 1. Tap the **\+ icon**. 2. Enter the ‌title and description. 3. Tap **Create**.![The Create New Task window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_create_task_pos_app.png) ### Complete a Task After a task is completed, tap the **Mark as Completed** switch and the task transitions into the “**Completed**” list.![A task listed under the Completed heading in the client profile on the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_completed_task_pos_app.png) ### Delete a Task Tap the **Trash** icon to delete either an incomplete or completed task. # Manage Store to Store Inventory Transfers in Point of Sale Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands. Point of Sale's Store-to-Store (STS) Transfer feature is part of [Inventory Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_manage.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow you to manage inventory across stores, online, and digital warehouses.") within the Point of Sale (POS) app. They are initiated in the POS app, which is in contrast to [Corporate Transfers (CTS)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_corporate_transfers.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to align with regional demands and preferences.") that are initiated in CMS. ## Prerequisites - Modern POS App Build: 5.8.2 or later - [Supported POS Device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - Offline Support: no ## Configure Point of Sale CMS for Store-to-Store Transfers Set up the store in Point of Sale CMS to handle Store-to-Store (STS) transfers. ### Configuring Deep Link To get started, configure a deep link that you can use in the Point of Sale (POS) app to access STS transfers. 1. Create a layout or use an existing one. 2. Select a cell and select **Deep Link** in the toolbar menu on the right. 3. Go to **Store Associate > Inventory Management**. 4. Select **Store-to-Store Inventory Transfers**. 5. Set and save your changes. ### Serialized Items Handling If you have serialized products, it is recommended to turn on "**Enable Serialized Inventory**" for tracking and managing these items. Any action or transaction, including receiving, requires scanning or entering the product's serial number. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Case pack IDs and serialized inventory can't be used together. Their unique serial numbers individually track serialized products, preventing them from being grouped into case packs for collective scanning. Manage each serialized item independently to maintain accurate inventory records. 1. Go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Turn on **Enable Serialized Inventory**. 4. Save your changes. ### Configuring Bulk Scanning This step is optional, but configure it to permit bulk scanning during transfers. After a product or case pack is scanned, you'll have the option to enter its quantity rather than scanning it individually. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This feature is only available for app builds 9.8.1 and later. 1. Go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Turn on **Enable Bulk Receiving of Items**. 4. Save your changes. ## Initiate Transfers in the POS App Tap the Store-to-Store Inventory Transfers link to see a list of transfers that are open, have been sent, or have been canceled. You can sort this list by date or status. ### Statuses and Events View the available statuses & associated [Export Event](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_exporting_inventory.htm&release=264.0.0&type=5 "Create an inventory export event in the CMS to export inventory data from the Retail Cloud Backend via Secure File Transfer Protocol (SFTP).") in the table. | Description | Status | Export Event | | --- | --- | --- | | Items are scanned, and the transfer is complete but not yet shipped | Closed | N/A | | Items that are yet to be scanned or haven't been completely scanned | Open | STS\_TRANSFER\_STARTED\_EVENT | | Items are scanned, the transfer is complete, and it's been shipped | Shipped | STS\_TRANSFER\_SHIPPED\_EVENT | | Items were received at the destination store | Received | STS\_TRANSFER\_COMPLETED\_EVENT | | Transfer has been canceled | Canceled | STS\_TRANSFER\_CANCELLED\_EVENT | ![A list of open STS transfers in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_initiate_sts_xfer.png) Create a transfer by tapping **Create Store Transfer** at the bottom of the screen. Configure the **Destination Store** (the store that'll receive the items). You can search for a store by location, ZIP/Postal code, or store ID. Searching by store ID is only available for app builds 9.6.1 and later. ![The Destination Store screen in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_initiate_sts_create_new.png) Optionally, add a description of the transfer under **Notes**. ![Adding STS transfer notes on the Destination Store screen of the STS section in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_initate_sts_xfer_notes.png) ## Add and Pack Items To Transfer in the POS App View Store to Store (STS) transfer details, add items to the transfer, and pack the items in boxes using the Point of Sale (POS) app workflows. To start the transfer process, scan items using an external scanner or the device's camera by tapping the scan icon at the top right. ![The Scan icon at the top right of the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_add_pack_scan_icon.png) For app builds 9.7.1 and later, users can add items manually by tapping the search icon at the top right. The product catalog shows up, allowing users to search for items by entering text. Alternatively, using an external scanner populates the search field with the product's barcode value. ![A window showing an item to add to the STS transfer in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_sts_add_manually.png) After selection, the quantity can be inputted and added to the transfer. This window appears irrespective of whether [bulk receiving functionality](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands.") is turned on or turned off. ![A window in the POS app that prompts you to confirm the quantity of an item to add to the STS transfer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_add_quantity_xfer.png) As you add items, the expected workflow involves packing one box at a time. Because only one tracking number is assigned for all the boxes created, note that you only create transfers if initiating a new shipment of orders, not for each box created. ### Serialized Inventory If[serialized inventory](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands.") is enabled, scanning a serialized product triggers a prompt to scan its serial number. Serialized products are identified by the '**SerialNumberRequired**' attribute, which can be configured via [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds.htm&release=264.0.0&type=5 "Point of Sale data feeds streamline data integration, ensuring your retail operations run on accurate and up-to-date information. Configuring data feeds involves managing feeds and setting field mappings, so you can customize the flow of information. Refer to the feed file specifications to ensure data integrity and compatibility with the Point of Sale platform. By configuring data feeds properly, you gain better visibility into your retail business and optimize decision-making."). If this attribute is set to **True** and the flag is enabled, the prompt appears. However, if the flag is turned on, but the product attribute is set to [False](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds.htm&release=264.0.0&type=5 "Point of Sale data feeds streamline data integration, ensuring your retail operations run on accurate and up-to-date information. Configuring data feeds involves managing feeds and setting field mappings, so you can customize the flow of information. Refer to the feed file specifications to ensure data integrity and compatibility with the Point of Sale platform. By configuring data feeds properly, you gain better visibility into your retail business and optimize decision-making."), no prompt is triggered. If using the device’s camera, this prompt appears at the top of the screen as shown in the screenshot. Scan again to add the product for the transfer. ![The device's scanner prompting you to scan the item to add to the STS transfer in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_rtv_scanner_searrialized.png) However, if you're using an external scanner or manually adding a product through the product catalog, a serial number entry window appears instead. ![A window in the POS app prompting you to scan an item's serial number or enter the serial number manually in the textbox provided.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_sts_xfer_add_serial_number.png) Entering multiple serial numbers appends them to the list. Each serialized product can be individually removed using the delete option. If all serialized products are deleted, the product itself is also removed. After the receiving process is complete, details can be exported through[Export Event](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_exporting_inventory.htm&release=264.0.0&type=5 "Create an inventory export event in the CMS to export inventory data from the Retail Cloud Backend via Secure File Transfer Protocol (SFTP).") by mapping the field **STS\_SerialNumbers**. Serial numbers for each product are listed using a pipe delimiter. ![THe STS transfer screen in the POS app with the serial numbers for the items showsn.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_sts_xfer_map_serial_number.png) ### Bulk Scanning If[bulk scanning](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands.") is enabled, scanning a product or case pack triggers a window to show. This allows you to enter the quantity before adding it to the transfer. If turned off, each scan increments the quantity by one. The window won't show if [serialized inventory](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands.") is enabled. ![A window in the POS app that prompts you to confirm the quantity of an item to add to the STS transfer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_add_quantity_xfer.png) ## Finalizing Store-to-Store Transfers in the POS App Complete preparations for the Store to Store (STS) transfer. Finish packing items and generate packing slips and tracking numbers. After scanning all the items, tap **Close Transfer** to complete the process. As items are packed, the Allocated [inventory bucket](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses.") increases, and the Available inventory bucket decreases automatically. ![The number of products of a certai type in an order showing in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_sts_close_xfer_inventory_bucket.png) A confirmation prompt appears. If **Not Yet** is tapped, you'll return to the original STS screen. All scanned products are saved and the transfer status remains "**Open**". To close it, go to the details of the open transfer and tap **Close Transfer**. ![The Close Transfer window showing in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_sts_close_xfer.png) After you've closed the transfer, you can print the packing slip, add a tracking number, or create another transfer. After the tracking number is updated, the transfer status updates to "**Shipped**". Transfers can't be canceled after they've been shipped. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Using the transfer ID as the tracking number results in an error message being displayed. ![The Print Packing Slip window showing in the POS app, prompting you to print a packing slip, add a tracking number, or create another transfer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_sts_xfer_printPacking.png) After items are shipped, the Allocated inventory bucket decreases, and the In-Transit inventory bucket increases automatically. ### Configuring and Printing Shipping Labels For app builds 9.8.1 and later, you can generate shipping labels. Refer to [Configuring & Printing Shipping Labels via Point of Sale SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_shipping_labels_spixml.htm&release=264.0.0&type=5 "Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing."). ## View Known Issues with Store-to-Store Transfers in Point of Sale Understand restrictions that exist with Store to Store (STS) transfers in Retail Cloud. ### Required Editions
Available in:
- Case pack receiving is not supported at this time. - If a transfer includes a serialized item, users can't select "Receive All" and can individually scan each product in the transfer. Even after scanning the serialized items, the "Receive All" action remains blocked for the remaining items. # Manage SVG Images More Efficiently Scalable Vector Graphics (SVG) files are now supported as thumbnails in Business Manager. You can quickly identify and select the desired SVG file without needing to open or preview each image individually. **Where:** This change applies to B2C Commerce. #### See Also - [Image Management](https://help.salesforce.com/s/articleView?id=cc.b2c_image_management.htm&language=en_US) # Manage Tax During Checkout in the POS app Store associates can use clear and flexible tools to handle tax during checkout, including tax indicators, breakdowns, exemptions, and overrides. This ensures accuracy and enhances customer service, providing a transparent and efficient shopping experience. ## Tax Indicator When the tax indicator is turned on, the store associate sees "T" next to the line item that has tax. ## Tax Breakdown When the tax breakdown is turned on, store associates see a breakdown of tax during checkout. ## Tax Exemption When tax exemption is enabled, store associates see the tax exemption option when they touch the pencil icon next to each line item. This tax exemption for each product is for all the different sizes, colors, and other things. This tax exemption is for all registers and lasts for the whole business day. On touching tax override, an associate will be shown a confirmation of tax-exempt status. ## Tax Override When tax override is enabled, store associates will see the tax override option under advanced interstitial in the checkout page. This is storewide tax override across all registers effective for the entire business day in case of online mode. In offline mode, the modified tax rate will be effective only for the particular register for the entire business day. To keep all registers equal, tax overrides won't work in both online and offline modes. For example, if a tax override is applied while a register is offline, the same override won't work for future transactions across the store when that register is online again. If the overwritten value will be removed in case the application is uninstalled. Store associates will be able to specify the new store-wide tax rate The overridden tax will be shown at the bottom of the cart. ## Hide Tax If taxes aren't applicable, tax fields can be hidden using the mobile config settings in CMS. In that case, store associates won't see tax details on the checkout page. # Manage Tax Rates and Exemptions in POS App Store managers can show and override taxes as needed, ensuring compliance with recent tax changes and special promotions. Customers can efficiently manage tax rates and exemptions with manager approval for overrides, and customize tax visibility and breakdowns in the Retail Cloud POS app. - Modern POS App Build: 5.8.2 or above - Platform Support: iPad and iPhone. Note, iPhone POS doesn't support store-level tax override. - Offline Support: Yes - Technical Prerequisites: Point of Sale Tax Service If a store associate initiates a tax override, manager approval is required. The override remains in effect until the end of the business day. The system also has options for showing tax details. You can show or hide tax rates, show tax indicators at the line item level, turn on or off item-level or store-level tax overrides, and show or hide detailed tax breakdowns. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important As of 2025, support for the Native Tax Engine has been discontinued. Originally designed as a back-up tax solution and not a primary tax engine, the Native Tax Engine is no longer supported with technical updates or maintenance for any new or existing customers. To ensure uninterrupted business operations, all customers still using the Native Tax Engine must migrate to an alternative solution immediately. - Pre-built Integrations: Point of Sale includes native connectors to seamlessly support [Avalara](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_avalara.htm&release=264.0.0&type=5 "Automate tax calculations and tax filing by using Avalara in Point of Sale.") , [OneSource (Sabrix)](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_onesource.htm&release=264.0.0&type=5 "Facilitate tax calculations during sale transactions with OneSource (Sabrox) tax engine. Ensure that the OneSource engine handles all necessary tax computations. The process operates as follows: a real-time request is sent to OneSource with the cart details, and the corresponding VAT information is retrieved. For transactions occurring in offline mode, the necessary data is stored to enable offline processing."), and [Vertex](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_vertex.htm&release=264.0.0&type=5 "Integrate Point of Sale with the Vertex tax engine to facilitate tax calculations during sale transactions. Confirm that the Vertex engine handles all necessary tax computations."). - Custom Solutions: For any other third-party tax provider, an [SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_tax_spi.htm&language=en_US) is available to facilitate your integration. 1. To configure line item tax exemptions, go to **Modules** | **POS** | **Product Level Tax Exemption**. 2. To configure transaction-level tax overrides, go to **Store Management** | **Store Settings** | **Tax** , and turn on **Tax Override Rate set for current transaction only**. 3. To configure store level tax overrides, go to **Modules** | **POS** | **Tax Override**. 4. (Optional) If you have a layout for cart options, add a layout cell with a tax override deeplink configured. Go to **Deeplink Picker** | **Cart Options** | **Override Tax**. 5. To show tax indicator for products, go to **Modules** | **POS** | **Show Tax Indicator for Products**. 6. To hide tax rates, go to **Modules** | **Cart** | **Hide tax**. 7. To show a tax breakdown in the cart summary, go to **Modules** | **Cart** | **Show Multiple Tax Breakdown**. 8. Turn on POS Store settings to allow tax overrides. Go to **Stores** | **POS Store Settings** | **Allow Tax Override (isTaxOverrideAllowed)**. If the tax override needs to be approved by a manager, you need to set it in the associate’s approval policy. Add ‘Tax Modicfication’ under the approval policy so the manager’s approval is prompted. See [Store Associate Approval Policies](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_approval_policies.htm&release=264.0.0&type=5 "Control which features and roles in Point of Sale CMS require approval."). # Manage the Customers in Your Black Book Add or remove customers from the Point of Sale black book with either the main black book screen or the customer’s profile. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Before you can add a customer to a black book, the customer needs to have a profile in the POS app. ## Add Customers To add customers using the black book screen: 1. Tap the **Black Book deep link** in the app. 2. Select a black book. 3. Tap the **plus sign (+)**. This action takes you to the customer search screen. There, you can search for a customer. 4. After you have found a customer, tap on their name to add them to the black book. 5. To delete a customer from a black book, tap on their name in a black book. 6. Scroll to the bottom and tap **Remove from the list**.![A customer's profile in the POS app, where you can add or remove them from the Black Book.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_add_customers_to_book.jpeg) ## Add Customers with Their Profile To add customers using their profile: 1. Go to the customer’s profile by logging in as the customer and tapping on their profile name. 2. Tap **Add/Remove** and select the black book to add the customer to. 3. To remove customers, tap **Add/Remove** again.![The screen in the POS app where you can add or remove a person from the Black Book using their contact profile.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_add_remove_from_book.png) # Manage the Store Sitemap Sitemaps for B2B stores improve SEO by giving search engines structured information for more efficient indexing. Like other Experience Builder sites, B2B stores automatically refresh their sitemaps weekly. You can also generate a manual sitemap refresh every 24 hours. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Sitemaps are generated based on entitlements defined for guest user. To ensure your products appear in a sitemap, use entitlements, and not sharing rules. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_warning.png) Warning Sitemap generation fails if your default site language is unavailable in the webstore. When configuring your store’s language, the default language that you select in Experience Builder must be the same as the default language you selected on the Administration tile for the store. #### See Also - [Generate a Manual Sitemap Refresh for Your Experience Cloud Site](https://help.salesforce.com/articleView?id=networks_manual_SEO_sitemap.htm&language=en_US) - [Configure Store Language, Currency, and Tax](https://help.salesforce.com/articleView?id=commerce.comm_create_international_store.htm&language=en_US) - [Make Objects Available for SEO](https://help.salesforce.com/s/articleView?id=experience.networks_seo_object_access.htm&language=en_US) - [Secure Guest Users’ Sharing Settings and Record Access](https://help.salesforce.com/s/articleView?id=platform.networks_secure_guest_user_sharing.htm&language=en_US) - [Default Object CRUD Permissions for B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_CRUD_perms.htm&language=en_US) # Manage Translations for B2B Commerce Stores You can translate the product, category, and promotion text. If you’re using product variations, you can also translate the variation attribute names. In Experience Builder, you can localize the store component labels. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Enable Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&release=264.0.0&type=5)** When you enable data translation, you can translate the data stored in your B2B store product, category, and promotion fields. You can also enable data translation for custom text and URL fields on the product and category objects. - **[Enable Translation Workbench](https://help.salesforce.com/s/articleView?id=commerce.comm_translation_workbench.htm&release=264.0.0&type=5)** To assist with localizing B2B store information, enable the Translation Workbench and add the languages that you want to use in your stores. - **[Manually Localize Product, Category, and Promotion Data](https://help.salesforce.com/s/articleView?id=commerce.comm_create_data_translation.htm&release=264.0.0&type=5)** You can manually enter translated text for your B2B product and category names and descriptions. To translate promotion names and descriptions, you must use Translation Workbench. To perform bulk translations for product, category, or promotion data, use Translation Workbench. - **[Localize Product Variation Data](https://help.salesforce.com/s/articleView?id=commerce.comm_var_att_localization.htm&release=264.0.0&type=5)** If you’re using product variations in your B2B store, you can translate the variation attribute names into languages that your org supports to offer product variations in multiple locales. - **[Manually Localize Store Labels](https://help.salesforce.com/s/articleView?id=commerce.comm_translate_store_labels_manually.htm&release=264.0.0&type=5)** Some B2B component labels are translated for you into the store's selected language, but you need to manually translate some labels. To translate your store’s text elements in bulk, use the translation tool. - **[Localize Store Labels in Bulk](https://help.salesforce.com/s/articleView?id=commerce.comm_translate_store_labels_translation.htm&release=264.0.0&type=5)** When you add languages to Experience Builder, some component labels are translated for you into the selected language. If you add more languages, you can translate your B2B store’s text elements in bulk by using the translation tool. You can also translate configurable labels manually in the component properties. - **[Bulk Translation for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_bulk_translate_b2b_store.htm&release=264.0.0&type=5)** To accomplish bulk translations of B2B store metadata and Product, Category, and Promotion fields, use the Translation Workbench source export option. The Translation Workbench supports the XML Localization Interchange File Format (XLIFF) and the Salesforce Translation File (STF) file formats. Salesforce recommends that you use the XLIFF format. # Manage WS-Security Keys and Certificates in Business Manager Now you can manage WS-Security keys and certificates directly in Business Manager, making it easier to maintain different keys across various environments. This update simplifies key management and enhances security. **How:** Developers and administrators can manage WS-Security keys and certificates in Business Manager. When specifying the `WS_SIG_PROP_KEYSTORE_TYPE` or WS\_ENC\_PROP\_KEYSTORE\_TYPE, use "managed" as the type instead of "jks" or "pcks12". # Managed and Unmanaged RMA Return Orders Return merchandise authorization (RMA) return orders support both managed and unmanaged orders, so whatever degree of service you provide for orders, you can still keep a tight level of control over returns and refunds. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Salesforce D2C Commerce doesn’t include RMA functionality. It can process only simple returns. Order Management sets the return order lifecycle type when you create a return order. The lifecycle type determines how you process the return order in Order Management. - **Managed RMA Return Order**Managed RMA Return Order Create this return order type using the RMA Return Items flow. Processing for managed RMA return orders is automated using the flow. - **Unmanaged RMA Return Order** Create this return order type from the Return Orders page. You must process unmanaged return orders manually. The table illustrates the main differences between managed and unmanaged RMA return orders. You can associate return orders—both managed and unmanaged—only with managed order summaries.
Managed RMA Return Orders Unmanaged RMA Return Orders

When you complete a managed RMA return order, Order Management:

  • Creates a change order
  • Generates a credit memo and initiates a refund
  • Updates the financial information on the Order Summary and associated objects
  • Updates the order item quantities on the Order Summary and associated objects

With a managed RMA return order:

  • You can add and delete the Return Order and Return Order Line Item objects. You can’t directly add or delete the Return Order Item Adjustment or Return Order Item Tax objects.
  • You can’t change the values in financial fields on any return order objects.
  • You can change the values in these quantity fields on the Return Order Line Item object:
    • Quantity Expected (changing the value in this field updates all financial fields)
    • Quantity Received
    • Quantity Rejected
    • Reason for Rejection
  • You can’t change the value in the Quantity Returned field.
  • You can move the return order status only from Activated to either Closed or Canceled.

You can enable canReduceShipping to allow RMA return orders to be adjusted throughout the return process. If an item adjustment is added to the shipping, the shipping item status is set to Fulfilled, and the quantity is set to 1. These values remain, even if all items in the Order Summary Delivery Group are ultimately returned.

When you submit an unmanaged RMA return order, Order Management:

  • Creates a change order
  • Generates a credit memo and initiates a refund
  • Doesn’t update the financial information on the Order Summary and associated objects
  • Doesn’t update the order item quantities on the Order Summary and associated objects

With an unmanaged RMA return order:

  • You can add and delete the Return Order, Return Order Line Item, Return Order Item Adjustment, and Return Order Item Tax objects.
  • You can change the value in financial fields on all return order objects.
  • You can change the values in all quantity fields, but changing quantities doesn’t update any financial fields.
  • You can move the return order from and to any status.

You can enable canReduceShipping to allow RMA return orders to be adjusted throughout the return process. If an item adjustment is added to the shipping, the shipping item status is set to Fulfilled, and the quantity is set to 1. These values remain, even if all items in the Order Summary Delivery Group are ultimately returned.

#### See Also - [Choose a Return Type](https://help.salesforce.com/s/articleView?id=commerce.om_return_order_types.htm&release=264.0.0&type=5 "When processing a return, you can process a simple return and issue a refund or create a return order and return merchandise authorization.") - [Create a Managed RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_create_a_managed_rma_return_order.htm&release=264.0.0&type=5 "Use the return management authorization (RMA) workflow to create a managed return for one or more order items that have been fulfilled and are associated with a managed order summary.") - [Close a Managed RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_close_a_managed_rma_return_order.htm&release=264.0.0&type=5 "When you receive returned order items, you can close the return order and process a refund to the shopper or buyer.") - [Create an Unmanaged RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_create_a_return_order.htm&release=264.0.0&type=5 "You can create an unmanaged RMA return order to manually track a return for one or more order items directly from the Order Summary page. You can create an unmanaged RMA return order only for items that are fulfilled and associated with a managed order summary.") - [Submit an Unmanaged RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_submit_a_return_order.htm&release=264.0.0&type=5 "When you receive returned order items, you can submit the unmanaged RMA return order and process a payment refund to the shopper or buyer.") - [Cancel a Managed or Unmanaged RMA Return Order](https://help.salesforce.com/s/articleView?id=commerce.om_cancel_managed_unmanaged_rma_return_order.htm&release=264.0.0&type=5 "If the shopper or buyer doesn’t return the expected items, you can cancel an RMA return order.") # Managed Runtime 21.11 The B2C Commerce Managed Runtime 21.11 release. - **[Deploy PWA Kit Storefronts with the Managed Runtime](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_rn_21_11_release.htm&release=264.0.0&type=5)** The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don’t have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. # Managed Runtime 21.9 The B2C Commerce Managed Runtime 21.9 release. ## Release Highlights - In this release, we introduce the Salesforce Commerce Cloud Managed Runtime. - **[Deploy PWA Kit Storefronts with the Managed Runtime (Generally Available)](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_rn_21_9_release.htm&release=264.0.0&type=5)** The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don’t have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. # Managed Runtime 22.11 The B2C Commerce Managed Runtime 22.11 release. ## Release Highlights - Log tailing via the command line - Trust status updates - Client-side redirect access - Increased deployment bundle size - Node 12 deprecation - **[Deploy PWA Kit Storefronts with the Managed Runtime](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_rn_22_11_release.htm&release=264.0.0&type=5)** The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don't have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. # Managed Runtime 22.4 The B2C Commerce Managed Runtime 22.4 release. ## Release Highlights - In this release, we introduce the Salesforce Commerce Cloud Managed Runtime. - **[Deploy PWA Kit Storefronts with the Managed Runtime](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_rn_22_4_release.htm&release=264.0.0&type=5)** The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don’t have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. # Managed Runtime 22.8 The Managed Runtime 22.8 release. ## Release Highlights - Production environments - Node 16 support - HIPAA Compliance - **[Deploy PWA Kit Storefronts with the Managed Runtime](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_rn_22_8_release.htm&release=264.0.0&type=5)** The Managed Runtime deploys and operates PWA Kit storefronts so that front-end teams don't have to worry about the operational cost and complexity of running mission-critical, highly scalable infrastructure. Set up single sign-on for authentication and authorization. Manage project users and permissions, auto-scale environments to handle traffic spikes, and protect against denial-of-service attacks. # Managed Runtime 23.6 The B2C Commerce Managed Runtime 23.6 release. ## Release Highlights - Set Up CDN Logpush - Use Node 18 for Projects - Add Environment Variables to Your Application - Brotli Compression Enabled - **[Brotli Compression Enabled](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_brotli_compression.htm&release=264.0.0&type=5)** Brotli compression is now enabled for all environments. Browsers that support Brotli experience smaller download sizes for pages and static assets, resulting in improved performance. - **[Add Environment Variables to Your Application](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_enviornment_variables.htm&release=264.0.0&type=5)** You can now manage environment variables with the Managed Runtime API. Without making code changes, you can use environment variables to add variables into an application process running in an environment. Environment variables are stored securely, and are ideal for the following use cases: - **[Use Node 18 for Projects](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_node_18.htm&release=264.0.0&type=5)** Node 18 is now available for projects. You can upgrade projects to PWA Kit 2.7.3 or 3.0. Both versions support Node 18. Node 14 and Node 16 are now deprecated. The End-of-life for Nodes 14 and 16 is September 13, 2023. To avoid any disruptions to deployments, upgrade to Node 18. # Managed Runtime Release Notes Archive Managed Runtime is part of Salesforce’s Composable Storefront solution, which includes PWA Kit and the B2C Commerce API. Review the features and updates from past releases. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The [release notes](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/about-pwa-kit-managed-runtime/about.html) have moved to the same location as the Composable Storefront documentation. - **[Managed Runtime 23.6](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_23_6_release.htm&release=264.0.0&type=5)** The B2C Commerce Managed Runtime 23.6 release. - **[Managed Runtime 22.11](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_22_11_release.htm&release=264.0.0&type=5)** The B2C Commerce Managed Runtime 22.11 release. - **[Managed Runtime 22.8](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_22_8_release.htm&release=264.0.0&type=5)** The Managed Runtime 22.8 release. - **[Managed Runtime 22.4](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_22_4_release.htm&release=264.0.0&type=5)** The B2C Commerce Managed Runtime 22.4 release. - **[Managed Runtime 21.11](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_21_11_release.htm&release=264.0.0&type=5)** The B2C Commerce Managed Runtime 21.11 release. - **[Managed Runtime 21.9](https://help.salesforce.com/s/articleView?id=commerce.managed_runtime_21_9_release.htm&release=264.0.0&type=5)** The B2C Commerce Managed Runtime 21.9 release. # Managing Corporate Transfers in Point of Sale CMS Facilitate the movement of merchandise between stores, allowing merchants to align with regional demands and preferences. Point of Sale's Corporate Transfer feature is part of [Inventory Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses.") within the Point of Sale (POS) app. Corporate Transfers are initiated in the CMS and sent to the specified store for completion. This is in contrast to [Store-to-Store transfers](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_xfer.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to optimize inventory levels, aligning with regional demands.") that are initiated from the POS app. ## Prerequisites - Modern POS App Build: 10.3.1 or later - [Supported POS Device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - Offline Support: no ## Configure Point of Sale CMS Settings for Corporate Transfers Set up inventory preferences, verify the store's inventory feed is up to date, configure reason codes, and establish a deep link for access within the Point of Sale (POS) app. ### Turning on Store Inventory Turn on store inventory settings to initiate corporate inventory transfers. 1. In CMS, go to **Store Management > Store Settings > Inventory**. 2. Search for and turn on these settings: 1. **Enable PredictSpring Inventory Management** 2. **Has Store Level Inventory** 3. **Enable Store Inventory Tracking** 3. Save your changes.![The Inventory Section of the Store Settings page in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_settings.png) ### Store Inventory Feeds An accurate and up-to-date inventory count is essential for corporate transfers. 1. Configure Store Inventory Feed Field Mapping by going to **Feeds > Field Mappings > Store Inventory**. 2. Configure and schedule Store Inventory feed by going to **Feeds > Scheduled Upload**. ![The Source Fields section of the Store Inventory page in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_feeds.png) ### Reason Codes [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.") are required for corporate transfer cancellations and inventory mismatches. 1. In CMS, go to **Store Management > Reason Codes** and configure: 1. Select **Corp Cancellation** to configure reason codes related to corporate transfer cancellations in CMS. 2. Select **Fulfillment Cancellations** to configure reason codes related to corporate transfer cancellations on the POS app. 3. Select **Shipment Inventory Mismatch** to configure reason codes related to corporate transfer cancellations. 2. Save your changes. ![The Reason Codes section of the Store Management page in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_reason_codes.png) ### Turning on Store Inventory Deep links are needed to access and manage corporate transfers in the POS app. 1. Create a layout or edit an existing one. Go to **Layouts > Layout Pages > Add From Template** to select a preconfigured Corporate Transfer layout. This template includes the deep links mentioned below. 2. Select a cell and select **Deep Link** in the toolbar menu on the right. 3. Go to **Inventory** and configure these deep links: 1. **Corporate Transfer**: New & Ready to be Packed—List of all corporate transfers for current stores to be packed 2. **Corporate Transfer**: Packed & Ready to be Shipped—List of all corporate transfers that have been packed but not yet shipped 3. **Corporate Transfer**: Shipped—List of all corporate transfers that have been fully shipped 4. **Corporate Transfer**: Canceled—List of all corporate transfers that were canceled 4. Set and save your changes. 5. Verify you've linked the layout in your app configs via [Hamburger Menu](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_hamburger_menu.htm&release=264.0.0&type=5 "Configure a hamburger menu in the POS app to access a wide range of features without cluttering the screen. This setup streamlines navigation, making it easier for users to find and use essential functions quickly.") or [Tab](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customize_nav_bars_pos_app.htm&release=264.0.0&type=5 "Set up the navigation bar, hamburger menu, and tabs within the Point of Sale Point of Sale (POS) app. Control the tab display by selecting visibility options, such as always visible or visible to signed-in users only. Configure app settings like tab color, text color, and icon visibility to create a streamlined user experience."). ![The Select a Deep Link section of the Layouts section in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_enable_deep_links.png) ### Configure PS Tags via Layout Configure [PS Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_list.htm&release=264.0.0&type=5 "Show dynamic data in your layouts by using Point of Sale print tags as placeholders. Each tag includes its description, location, receipt components, group list, and data mapping. Grouped lists output multiple data points for each tag.") to show the total counts of corporate transfers by status. 1. Create a layout or use the existing one. 2. Edit a cell and add these tags: 1. **:ps\_corporate\_transfers\_ready\_count** - Number of corporate transfers that are new and ready to be packed 2. **:ps\_corporate\_transfers\_packed\_count** - Number of corporate transfers packed and ready to be shipped 3. **:ps\_corporate\_transfers\_shipped\_count** - Number of shipped corporate transfers 4. **:ps\_corporate\_transfers\_canceled\_count** - Number of canceled corporate transfers 3. Set and save your changes.![The PS tags section of the Layout page in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_ps_tags.png) ## Create Corporate Transfers in Point of Sale CMS Initiate and delete corporate transfers in Point of Sale CMS ### Creating a Corporate Transfer 1. Go to **Inventory > Create Corporate Transfer**. 2. Specify the **Origin** and **Destination** stores. The origin store is responsible for picking and packing items, while the destination store receives the transferred goods. 3. Add products and their respective quantities for the transfer. Use the CSV file upload option in the CMS under **Inventory > Store to Store CSV Upload** for transferring large amounts. 4. Select **Create Corp Transfer** in the upper right. ![The Create Store to Store Transfer section of the Inventory Management page in Retail Cloud CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_create_transfer.png) ### Canceling Corporate Transfers 1. Go to **Inventory > Transfer Report**. 2. Under Status, select "**New**". 3. Under Transfer Types, select "**Corporate**". 4. Configure the rest of the fields as needed and select Search. 5. Locate the transfer and select **View Details** to the right of it. 6. A window opens with the option to cancel the transfer.![The Transfer Detail window wher you can cancel a transfer in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_cancel_transfer.png) ## Manage Corporate Transfers in the POS App View, start, and cancel a Corporate Transfer, and prepare and view shipments in the Point of Sale (POS) app. After a transfer has been created, the origin store can view and initiate the transfer on the POS app. Tap the **Corporate Transfer: New & Ready to be Packed** deep link to show a list of transfers that are new and ready to be packed. After you’ve located the newly created transfer, tap **Pack** to initiate it. On the next screen, you’ll see the transfer details and the items to be transferred. ![The Corporate Store Trasnfer: To be Packed list showing on the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_initiate_cts_pos.png) For products that aren't serialized, select "**Add this product**" and select the quantity to be packed. If you use the device's camera or an external scanner, the "**Add this product**" option is automatically activated. For serialized products, you won't be able to use the switch. Instead, you'll need to scan the product or tap "**Add this product**" to enter the serial number for each serialized item in a window. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip The product identifiers in each product cell (for example UPC, Color, and Size) can be customized in CMS. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_product_display_labels.htm&release=264.0.0&type=5 "Select which product identifiers can be shown throughout the Point of Sale (POS) app to help confirm the items in an order for a faster and more efficient checkout process.") ![Product Identifiers showing in the POS App for each product to be packed](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_pack.png) ### Packing Products for Transfers After scanning or manually entering items, you can pack a box by tapping **Pack Box**. This creates a box with the selected items, and any remaining items can be packed into subsequent boxes. The counts for "**Requested**", "**Remaining**", and "**Packed**" are updated each time a box has been packed. If a mistake is made in the packing, you can tap **Unpack this box** to redo‌ it. Otherwise, tap **Print packing slip** to print a slip for each box that notes the transfer details and products to be transferred in a box. ![Products showing whether they're to be backed or packed in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_ct_pos_packed.png) After all products in a transfer have been packed, tap **Complete Packing**. If an item is scanned beyond the quantity specified in the transfer request, the app shows "**Exceeded transfer limit for this product**." The user shall acknowledge this message to proceed. ![An error due to exceeded transfer limits showing in the device's camera in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_scan_error.png) If an item is scanned for less than the amount needed in the transfer request, a window shows both the amount scanned and the amount still needed. To continue, the user shall select a reason code for the underscanning. ![A message asking the user to verify a reason for inventory mismatch in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_mismatch.png) After items are packed, the Allocated inventory bucket increases, and the Available inventory bucket decreases automatically. ### Preparing Products for Shipment Tap the **Corporate Transfer: Packed & Ready to be Shipped** deep link to show a list of transfers that are packed and ready to ship. After you’ve located the newly packed transfer, tap **Ship** to initiate it. ![The Coprprate Transfers screen showing inventory that's partially shipped or to be shipped in the POS app.rt\_pos\_inventory\_cts\_pos\_ship](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_pack_ship.png) On the next screen, you’ll see the transfer details and the boxes to be shipped. Tap **Ship** to the right of a box and you'll be directed to a screen where you can print the packing slip if you haven't done so. ![Inventory calls that have a ship button next to each item that you can select when ready to ship from the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_ship.png) Tap Shipping Options to add a tracking number or generate a shipment label. Refer to [this article](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_shipping_labels_spixml.htm&release=264.0.0&type=5 "Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing.") to learn how to configure and generate shipment labels via Point of Sale's SPI. After a label has been generated, you can select the shipping option as well. For app builds 10.4.1 and later, multiple tracking numbers in a single receiving are supported for corporate transfers. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Using the transfer ID as the tracking number results in an error message being displayed. ![The Shipping Options Window in the POS App, where you can generate a label or add a tracking number to the transfer.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_tracking.png) Verify that you have filled in the shipping details for all the packed boxes. After you reach the last box, a window shows, giving you the option to either confirm the shipment details or edit them. ![The Complete Shipment window in the POS app, where you can confirm the shipment or edit the shipment.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_confirm.png) After you confirm the details, the status of the transfer updates "**Shipped**," and the transfer isn't editable. If a transfer doesn't have all boxes shipped, the transfer status updates to "**Partially Shipped**." ![The POS App showing items that are partially shipped and those that you still need to ship.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_shipped.png) ### View Shipped Products Tap the **Corporate Transfer: Shipped** deep link to show a list of transfers that have been shipped. Tap **View** to access the shipping details of a transfer, including transfer information and the number and details of packed boxes. ![The POS app shwoing shipped inventory, which you can click "View" to see.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_view_shipped.png) ### Canceling Transfers Tap the **Corporate Transfer: Canceled** deep link to show a list of transfers that have been canceled. Transfers can be canceled at any time before they've been shipped. Note, if a transfer has been partially shipped, then it can no longer be canceled. ![The POS app shoing a list of canceled transfers.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_cts_pos_canceled.png) ### Known Issues and Restrictions - Case pack receiving is not supported at this time. # Managing Cycle Count as a Store Manager If you are a store manager, you can use manager-specific views in Point of Sale CMS to oversee store associate counts, manage and edit batches, and view product statuses to efficiently monitor and maintain accurate inventory. ## Manager View As a store manger, you are expected to oversee associate counts and batches. You have access to the Manager View, which allows you to see all open or created batches and view products and their statuses. You can flag items for recounts and also complete cycle counts. Batches are the first selection under **Batches**, To view products, tap **Batches** on the top right, then turni on **Products** at the bottom of the screen. ## Product View If a cycle count is started, all items are under the tab Uncounted with the expected amount. This amount is the QTYOH (quantity on hand) of the item at the initial start of the cycle count. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_warning.png) Warning Don’t start Cycle counts if the store is open (open till) or if there are any inventory transactions (for example, Store to Store, Return to Vendor, or Advanced Shipping Notice). ## Excluding Items from the Cycle Count As a store manager, you can review the items in the cycle count and exclude any items that shouldn’t be counted (for example items not yet received or carried by the store). This revision won’t affect the cycle count. By selecting the delete icon, you can mark an item as an excluded product, selecting a reason code for the exclusion. You can bring excluded items back into the cycle count by selecting Put Back for the item. ## Product Tab Information The product page contains three tabs: - **Uncounted**: Displays products in the cycle count that haven’t been counted yet, along with their expected quantities. - **Unmatched**: Displays products that have been scanned at least once but have a discrepancy between the scanned count and the expected quantity; as well as unit difference and cost variance (cost = retail price). - **Matched**: Displays products that have been scanned, and the scanned quantity matches the expected quantity (excluding items with a quantity of zero). ## Recounts In case of large discrepancies, you can initiate a recount for an item by selecting **Recount** on the unmatched item line Confirming the recount zeros out the item’s quantity and moves it back to the **Uncounted** tab. The number before the recount isn’t recorded. Recounted items accumulate the number of recounts and show them in the unmatched or matched tab for that item. ## Batches As a store manager, you can create, open, and close batches on the app. Associates can always resume a batch even if closed by a manager. You can also monitor batch status (In Progress or Closed) as well as view batch items and quantities. If the batch is Closed (batch closed by user), you can view the items, including their quantities, and scan other items if needed. ## Editing Batches As a store manager, you can edit batches with an approval configuration set for **Cycle Count Batches Actions.** Associates with manager credentials can edit batches. In Edit mode, you can adjust the counted quantity of a nonserialized item and delete any serialized items. ## Batches - In Progress Starting in app build 9.4.1, as a store manager, you can access and close a batch that is **In Progress** (batch is active or scanning) that was initiated by other managers or associates. You can’t edit a batch (for example by adding items, or making alterationsn) other than your own. Associates must have their approval configuration set for: - **Cycle Count Batches** (governs ability for user to have permission to close the batch) - **Cycle Count Batches Actions** (governs whether the user can see other users’ batches) As a store manager, you don’t need the approvals, since you have the ability to use this functionality out-of-the-box. In the app, UI enhancements (app build 9.4.1) allow you to distinguish between you own batches and those belonging to others. If you intend to close a batch that is currently **In Progress**, wait for a confirmation prompt before proceeding. ## Known Issues & Restrictions If a manager closes a batch that an associate had opened, any scanned items in that batch that weren’t saved to the database are lost. For example, if an associate reopens a closed batch with five units, and then scans two more units for a total of seven, only the five units are saved after the manager closes the batch. However, if the associate closes the batch after adding the extra items, all the items, including the newly scanned ones, are saved to the database. This results in seven units for the batch. Pausing the batch also saves the items to the database, and you have the option to close a paused batch. If an associate resumes a paused batch and adds more items to it before closing, those additional items are included in the batch. # Managing Inventory in Point of Sale CMS Manage your store inventory in Point of Sale CMS to keep your data up to date. Inventory is typically fed into the Point of Sale backend through a feed file. You can also author products and assign inventory manually. ## Store Inventory Feed Store data is fed into the Point of Sale CMS backend through a feed file. 1. Create a store inventory feed file ([specification](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_store_inv_price.htm&release=264.0.0&type=5 "The Point of Sale store inventory feed is used for the Find-In-Store feature. On the PDP, a user can opt to see if a product is available in a nearby store.")). 2. Map the attributes in the feed file with Salesforce fields using 3. [Field Mappings](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5 "Set Field Mappings in Point of Sale to transform data from external sources into the format that Point of Sale uses. Field mappings use transformations and regular expressions. When you import data feeds, the field mappings ensure that your data is accurate and consistent. This consistency helps to streamline your retail operations."). 4. Run the feed using [Manual Upload](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_manual_run.htm&release=264.0.0&type=5 "Sometimes you need to run a data feed right away. You can manually run data feeds in Point of Sale to update your data immediately, rather than waiting for the next scheduled run. Implement these steps when you need the most current data.") or [Scheduled Upload](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_schedule.htm&release=264.0.0&type=5 "Schedule your data feeds in Point of Sale so that you have the most up-to-date data. Select a runtime that meets your business needs. Get advice on creating the schedule. When no longer needed, delete a schedule."). ## Manage Inventory in CMS You can author products and assign inventory manually in the CMS. To create a product manually in the CMS: 1. In Point of Sale CMS, go to **Products > Products**. 2. Select **Add Product** in the upper right. 3. Enter all required fields and save your changes. ## Updating Inventory of Product To increment or decrement the inventory for a specific product: 1. In CMS, go to **Inventory > Inventory Adjustment**. 2. Select a store. 3. Locate the product for which you want to edit the inventory. 4. Select the ellipsis (3 vertical dots). 5. Select **Edit Inventory**. 6. Edit the value in the **Store Inventory** field and save your changes. Turn on **Has Store Level Inventory** in the app config to manually edit inventory in Retaul Cloud CMS. # Managing Inventory with Blind Receiving Allow stores to receive products without requiring an Advance Shipping Notice (ASN) in Point of Sale. The Blind Receivings feature can be useful for local sourcing, shipments without ASN generation, or smaller shops that ‌don’t have an ASN system in place. ## Prerequisites - Modern POS App Build: 5.8.1 and later - [Supported POS Device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - Offline Support: no ## Configure Blind Receiving Settings in Point of Sale CMS Configure deep links, Not on File products, and serialized product settings so store associates can use Blind Receiving on the Point of Sale (POS) app. ### Configure a Deep Link To access Blind Receivings on the POS app, configure a deep link. 1. Create a new layout or hamburger menu or use an existing one. 2. Access the deep link picker. 3. Go to **Store Associate > Inventory Management**. 4. Select **Blind Receiving**. 5. Set and save your changes. ### Turn On Not on File Products Products marked as [Not on File](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_custom_not_on_file.htm&release=264.0.0&type=5 "The Point of Sale app offers an option to add Not on File items (products not listed in the Feeds) into the cart. Store associates can continue to add these items to the cart and finalize the checkout process.") (NOF) can be configured to be received during Blind Receivings. 1. In CMS, go to **Store Management > Store Settings**. 2. Turn on **Is item not on file feature enabled for this merchant**. 3. Save your changes. ### Turn On Serialized Products If you have serialized products, you can configure whether scanning the product's serial number is required. 1. In CMS, go to **Store Management > Store Settings > OMS**. 2. Expand **Advanced**. 3. Turn on **Enable Serialized Inventory**. 4. Save your changes. ## Create New Blind Receiving Display a list of current receipts that can be filtered by date or status in the Retail Cloud Point of Sale (POS) app. Tap on the Blind Receiving deep link to show a list of receivings. This list can be filtered by date or status. To create receiving, tap **Create New** at the bottom of the screen. ![The Blind Receiving list in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_create_blind_receiving_pos_app.png) Input or scan relevant receiving details, such as the order number, vendor number, bill of lading number, tracking number, and the originating entity. ![The Manual Receiving window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_create_receiving.png) ## Scanning and Finding Items to Be Received in Point of Sale Search for items in the Point of Sale (POS) app by entering text or using an external scanner. On the next screen, scan products to be received by using an external scanner or the device's camera by tapping the scan icon at the top right. Alternatively, you can search for items using the search icon. You can also use an external scanner to populate the search field with the product's barcode value. ![The POS app showing a window to select an item displayed on the screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_scan_receive.png) After items and their quantities are added, they appear on the receiving details screen. You can edit the quantity or delete the item from this screen. ![The Inventory Details screen in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_receiving_details_screen.png) ## Add Not on File Products to the Inventory Enter products that aren't on file manually in the POS app. If [Not on File](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_product_not_found.htm&release=264.0.0&type=5 "Generate reports for products that didn't originate from a product feed import in Point of Sale and were manually added by a store associate.") is configured, the app will display a window where you can add the product by entering its details as shown. ![The Not on File Product window in the POS app.xs](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_not_on_file.png) ## Manage Serialized Products Scan serialized product serial numbers to identify products and export the details after the receiving process is complete. If[serialized inventory](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_serialized_products.htm&release=264.0.0&type=5 "Point of Sale supports the management of serialized product inventory. In inventory processes such as transfers and receivings, any serialized products must have their serial numbers scanned or manually entered. The following inventory flows support serialized products: Blind Receivings, Store to Store (STS) Transfers, Return to Vendor (RTV), and Advanced Shipping Notice (ASN).") is enabled, scanning a serialized product will trigger a prompt to scan its serial number. Serialized products are identified by the 'SerialNumberRequired' attribute, which can be configured via [Product Feed](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_product.htm&release=264.0.0&type=5 "Create a robust user experience in the POS app by viewing product details such as search results and filters."). If this attribute is set to True and the flag is enabled, the prompt will appear. However, if the flag is enabled but the product attribute is set to False, no prompt will be triggered. If using the device’s camera, this prompt appears at the top of the screen as shown in the screenshot. Scan again to add the product for the transfer. ![The device camera used to scan barcodes into POS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_serialized_scanner.png) However, if you're using an external scanner or manually adding a product through the product catalog, a serial number entry window appears instead.![The San Serial Number window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_scan_serial_number.png) Entering multiple serial numbers will append them to the list. Each serialized product can be individually removed using the delete option. If all serialized products are deleted, the product itself is also removed. ![The POS app showing serialized products.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_delete_product.png) After the receiving process is complete, details can be exported through [event exports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_exporting_inventory.htm&release=264.0.0&type=5 "Create an inventory export event in the CMS to export inventory data from the Retail Cloud Backend via Secure File Transfer Protocol (SFTP).") by mapping the field **BLD\_SerialNumbers**. Serial numbers for each product are listed using a pipe delimiter. ## Pause and Resume Receiving the the POS App Paused the receiving process, save all scanned items, and resume receiving at a later time. ![The POS app with the option to pause receiving or complete receiving.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_pause_receiving.png) ## View Completed Receivings See details of inventory that you've received after scanning them. After all items are scanned, complete the receiving by tapping Complete Receiving. The received products have their On-Hand and Available [inventory buckets](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt_buckets.htm&release=264.0.0&type=5 "Point of Sale supports the following inventory buckets - Sellable Quantity, Allocated Quantity, Safety Stock, Quantity On Hand, Quantity In Transit, Quantity On Order, Not for sale, Returned items, and Floor/Demo items.") increased. ![A Completed Receiving window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_completed_receiving.png) ### Viewing Completed Receivings For app builds 9.8.1 and later, details of completed receivings can be viewed by using the search filters on the screen. Check **Received** as one of the filters and tap **Apply**. Completed receivings are view only and can't be edited. ![Details of completed receipts in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_received_details.png) ## View Known Issues with Blind Receivings Understand issues and restrictions of Blind Receivings and how it functions in Retail Cloud. For app versions less than 9.8.1, while receiving, failure to save your progress can result in the loss of all work, including scanned items, if you tap the merchant logo in the POS app. However, for versions 9.8.1 and later, users are provided with the option to save before exiting. # Managing Inventory: Inventory Adjustment Batch Adjust inventory counts for your store items in Point of Sale CMS and gain better insights into the adjustments via reports. Point of Sale's Inventory Adjustment Batch feature is part of Inventory Management within the Point of Sale (POS) app. It allows merchants to make specific adjustments to inventory levels for individual items. Stores can also use Inventory adjustments to adjust the On Hand and Available inventory buckets. A reason code is required for each adjustment, which can aid in maintaining accurate records and optimizing inventory levels. ## Prerequisites - Modern POS App Build: 5.5.2 or later - [Supported POS Device](https://help.salesforce.com/s/articleView?id=commerce.rt_hw_supported.htm&release=264.0.0&type=5 "Point of Sale on iOS provides certified support for terminals, iPad stands, barcode scanners, printers, and cash drawers.") - Offline Support: no # Managing Payment Activity from the Payments Workspace Monitor payment events in one place. Use the Payments workspace to view transaction activity, track the payment source, and capture and refund payments. To focus on specific transactions, filter the workspace using the default list views. All list views are private, so you see only your version of the list. Updates that you make are visible only to you. You can modify and delete the default views, except All Payments. You can also create your own list views, which are saved under the Custom section. ![Payments workspace showing the All Payments view.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_workspace.png) Many Salesforce products accept payments as part of their business solutions, but each integration is unique. To see which apps are using Payments, each workspace entry lists details, such as the initiating source application, channel, and Salesforce object. You can also access the Payment Initiation Source record. Filter, sort, and take action on a payment record based on these source attributes. Admins of other Salesforce products and partners can also use the workspace to view and manage payment records, control who sees payment records, and run payment reports. If you don't see the payment initiation source fields in the list view, add them using the list view controls. A list view can have up to 15-columns. - **[Add Payment Source Information to the Payment Details Page](https://help.salesforce.com/s/articleView?id=commerce.payments_add_source_to_pdp.htm&release=264.0.0&type=5)** As of Spring ’25, you can view the origin of a payment on the payment intent record. If you’ve been using Payments before the Spring ’25 release, you can add the Source section to the record page to capture the information. # Managing Point of Sale CMS Users Manage access to the Content Management System (CMS) by adding or removing users. ## Adding Users to Point of Sale CMS Create a corresponding user in the CMS for each user in Azure AD (that is, if the merchant creates user@example.com in Azure AD, add that same user to the CMS under the CMS Users section). For more information, see[Add a Point of Sale CMS User](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_create_cms_users.htm&release=264.0.0&type=5 "As an Admin, you can add users and assign roles and permissions.") . ![Add a Point of Sale CMS User](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_add_aure_ad_user.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Azure AD will only provide authentication and not authorization. Any role and permission-based access is configured solely in the CMS. For more information, see [Point of Sale CMS Roles](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_configure_cms_roles.htm&release=264.0.0&type=5 "Control user access in Point of Sale CMS with roles and permissions. Each CMS user has a role that determines their permissions."). ## Removing Users in Point of Sale CMS To remove access to the CMS, remove the user from the CMS. ![Remove Point of Sale CMS User](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_remove_azure_ad_user.png) # Managing Tariff Surcharges in Point of Sale Manage tariff surcharges in the POS app so merchants can consistently apply them and shoppers have a clear understanding of the impact on their purchases. The POS dynamically calculates the tariff based on the order subtotal and updates the amount as items are added or removed. The tariff appears as a separate charge, distinct from the subtotal and tax. Merchants can configure a tariff percentage to apply at the order level during checkout. For example, a 10% tariff on a $50 order adds $5, making the total $55. After checkout, the tariff details are recorded in the Transaction Logs (TLogs), including: - tariffAmount – The total tariff applied to the order. - tariffPercentage – The percentage used for the tariff calculation. For full returns, the entire tariff amount is refunded. For example, returning a $50 order with a $5 tariff results in a $55 refund to the customer. For partial returns, the tariff is refunded proportionally based on the value of the returned item. For example, returning a $25 item from a $50 order with a $5 tariff results in a $27.50 refund, which includes a $2.50 tariff refund. For exchanges, the tariff from the original order is refunded, and a new tariff is applied based on the replacement item. For example, exchanging a $25 item for a $30 item results in a $27.50 refund ($25 + $2.50 tariff) and applies a new $3 tariff (10% of $30) to the new item. This feature is available on iPads and iPhones for app builds 11.1.1 and later. This feature is supported in offline mode only for sales transactions. ## Known Issues & Restrictions - For offline returns, tariffs can't be refunded because the POS doesn't have access to the tariff amounts paid at the time of purchase. If needed, store associates can apply a manual price override. - For online returns without a receipt, tariffs aren't refunded. - For online returns with a receipt, the tariff percentage used for the refund is based on the rate applied at the time of purchase, not the current rate configured in CMS. - **[Configure Tariff Rates in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types_tariff_surcharges_configure.htm&release=264.0.0&type=5)** Set a percentage-based tariff rate in Point of Sale CMS to apply at the order level during checkout. - **[Print Tariff Surcharges on Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types_tariff_surcharges_print.htm&release=264.0.0&type=5)** Configure Point of Sale CMS to show tariff surcharges on printed receipts. #### See Also - [_Salesforce Help:_ Configure Tariff Rates in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types_tariff_surcharges_configure.htm&release=264.0.0&type=5 "Set a percentage-based tariff rate in Point of Sale CMS to apply at the order level during checkout.") - [_Salesforce Help:_ Print Tariff Surcharges on Receipts](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_special_types_tariff_surcharges_print.htm&release=264.0.0&type=5 "Configure Point of Sale CMS to show tariff surcharges on printed receipts.") # Managing Tills in Point of Sale Use the Point of Sale (POS) app to manage tills in-store and reconcile all tills at the same time. Till management is the recording of the cash balance details of a store's sales. Retail Cloud’s Till Management feature allows store managers and associates to manage their tills in-store on their POS app. This includes the ability to create, update, and see past tills. ## Set Up Point of Sale CMS for Till Management Configure Till Management settings in CMS for use in the Point of Sale (POS) app. ### Turn on Till Management 1. Go to **Store Management > Store Settings > Store Register**. 2. Under **Till Management**, set to one of the following: 1. **AUTO**: The associate won't be prompted to create a till. Logging in takes care of the creation of the till and records its activity. 2. **MANUAL**: The associates are prompted to create a till if an active till isn't present. 3. **NONE**: The app won't prompt to create or reconcile tills. ### Active Tills Deep Link 1. Edit a layout or a hamburger menu. 2. Access the deep link picker. 3. Go to **Store Associate > Store Manager Till Summary**. 4. Save your changes. ### Reconcile a Till Deep Link 1. Edit a layout or a hamburger menu. 2. Access the deep link picker. 3. Go to **Cash Register** and select **Current Cash Drawer**. 4. Save your changes. ### Reconcile all Tills Deep Link Reconcile all tills at the same time. Only users with a manager role can do this. 1. Set **Till Management** to **Auto**. 2. Edit a layout or a hamburger menu. 3. Access the deep link picker. 4. Go to **Cash Register** and select Reconcile mPOS Tills. "**Reconcile Till**" is solely used for [Voice Command](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_speech_recognition_beta.htm&release=264.0.0&type=5 "Turn on speech recognition in the POS app to streamline workflows. With voice commands, users can efficiently access features, turning on hands-free operation, and enhancing accessibility. Configure custom voice commands and deep links in CMS to tailor the experience for different languages and actions within the app."). Don’t use it as a deep link. 5. Set and save your changes. ![The reconclie mPOS Tills option highlighted in the Select a Deep Link page in Retail Cloud CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_reconcile_tills_deep_link.png) ### Configure Default Till Range Set minimum and maximum cash alert limits if creating a new till on the POS app. 1. Go to **Store Management > Store Settings > Store Register**. 2. Under **Default Till Range for Starting Till Amount (StartingTillRange)**, select the pencil icon to edit this setting. 3. Set the minimum and maximum amounts. This is an optional setting. If no amounts are set, the app won't check against the entered starting cash amount. 4. Set and save your changes.![The Default Till Range for Starting Cash in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_till_mgmt_starting_amount.png) ## Access Till Management in the POS App Access and manage till settings in the Point of Sale (POS) app. ### Accessing a Till To access a till first select the **Store Manager** tab at the bottom of the screen. Then, tap **Active Tills**. ![The POS app home screen with the Activate Tills tile at the midle left.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_safe_mgmt_create_till.png) On the next screen, a list of all tills appears. You can select one of these tills to show its details. ![A list of tills from which to select in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_reconcile_tills.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note A till with the status of "**Closed**" can be reopened and reconciled, while a "**Reconciled**" till can never be reopened. Open a new till to use the register again. ### Creating a Till Tap the "**Create Till**" deep link in the app. If there's an active till, you'll need to reconcile it before creating a new one. ![The POS app home screen with the Create Till tile at the top left.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_inventory_safe_mgmt_create_till.png) For app builds before 10.2.1, enter the starting cash for the till and tap "**Create Till.**" You'll then be prompted to open the till after entering the starting amount. This action is recorded in the Electronic Journal as "**Create till**." ![The POS App showing the till's starting cash amount, with the Create Till option at the bottom.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_create_till.png) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Tapping the calculator icon allows you to enter the specific amount of rolls and counts of each currency in the drawer. The total amount is automatically calculated. This feature isn't configurable in Point of Sale CMS and can only be enabled by the Salesforce Backend. Reach out to your Customer Success Manager to turn this on in your app. For app builds 10.2.1 and earlier, you have the option to open the drawer and count the money before creating a till. If the drawer is opened, it'll be recorded in the Electronic Journal as "**No Sale**" with a system-generated reason code of "**Till Creation**." The store associate can access ‌the cash in the drawer. The till won't be created until the starting amount is entered and "**Create Till**" is selected. ![The POS App showing the till's starting cash amount, with the Create Till and Open Drawer options at the bottom.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_till_mgmt_create_till_before_1021.png) For app builds 10.3.1 and later, if a default till range is configured and the starting cash amount is outside the range, the user is prompted with a warning. Users can accept the entered amount, or reenter it. After a till is created, it'll be recorded in the Electronic Journal as "Create till." ![The POS app showing the Amount Outside Default Range window for the till. Select Accept or Re-enter.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_create_till_after_1031.png) ### Reconciling a Till There are two ways to access the till reconciliation screen, either logging in or using a deep link. If the till wasn't closed the previous day, after you log in, you'll be prompted with the options to **Reconcile a Till** or **Keep**. Selecting **Keep** allows you to reuse the old till, and it'll be recorded in the Electronic Journal as "**Reuse Old Till**" along with details such as store ID, register ID, date and time, transaction number, associate ID, manager approval (if applicable), and notes specifying the till’s business date and reused till number. To reconcile a till via deep link, tap the **Current Cash Drawer** deep link and tap **Go To Reconcile**. You'll be prompted to open the cash drawer or not. This allows you to count the cash within the drawer before entering the amounts/bills for the reconciliation of the till. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important The prompt won't show if reconciling through active tills. ![The Reconcile Till window in the POS App, where you select ether you want to open the till.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_till_mgmt_reconcile_till.png) Enter the amount of money you have in your till in the **Actual in Drawer** field. This amount matches the amount displayed for **Expected in Till**. For a list of descriptions of all the fields, refer to **Till Fields**. ![The POS App showing the Still screen, with Expected in Till and Net Sales highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_reconciled_till.png) ### Cash Calculator You can tap the cash calculator icon next to **Actual in Drawer** to enter the exact amount of rolls and counts of each currency in the drawer. The total amount is automatically calculated. ![The Cash Calculator in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_cash_calculator.png) After you've entered your **Actual in Drawer** amount, tap **Reconcile**. You’ll see all tills as **Reconciled**. ![The POS App showing the option to close the store at the bottom.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_close_store.png) If there is either a surplus or deficient amount entered in **Actual in Drawer**, you'll see the **Variance** screen pop up after you tap **Reconcile**. You'll need to select or enter a reason for the variance and reconcile again. ![The variance window in the POS app, where you can select a reason for the variance in the till and then select Reconcile.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_variance_reconcile.png) ## View Till Fields View a list of all the fields with their descriptions that you’ll see on the till detail screen in the Point of Sale (POS) app. ### Till Fields | Start of Till | Date and time till was created | | --- | --- | | Starting Cash | Total amounts till started with | | Cash Sales | Total amount of cash sales processed by till | | Cash Refunds | Total amount of cash refunds processed by till | | Pickups | Total amount of cash for pickups | | Paid In | Total amount of cash paid in. 10-digit values are not supported and can cause a till reset | | Paid Out | Total amount of cash paid out. 10-digit values are not supported and can cause a till reset | | Expected in Till | Total amount expected to be in cash drawer | | Credit Card Sales | Total amount of credit card sales processed by till | | Gift Card Sales | Total amount of gift card sales processed by till | | Other Sales | Total amount of sales processed by the till that aren't from cash, credit cards, or gift cards | | Credit Card / Gift Card / Other Refunds | Total amount of noncash refunds processed by till | | Net Sales | Gross sales excluding refunds | | Online Sales (ecommerce orders) | Total sales amount of Omni-Channel orders placed through the POS | | Offline Sales (ecommerce orders) | Total sales amount of Omni-Channel orders placed through the POS while offline | | Actual in Drawer | Total amount in the cash drawer | ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Tap on the cash calculator icon to enter the specific amount of rolls and counts of each dollar/cent in the drawer. For a comprehensive list of sales terms and their definitions, refer to this [glossary](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_sales_reporting_glossary.htm&release=264.0.0&type=5 "To understand sales data, use this glossary of terms commonly seen in sales and app reports in Point of Sale."). ## Troubleshooting Till Management in Point of Sale View common issues with Till Management and how to fix them. ### Prompted for Till Despite "NONE" Till Management Setting If Till Management has been set to "NONE" at the store level, but you are still prompted for a till, check the register-level flag and set it to "NONE" or "AUTO" to align with the ‌behavior of the store setting. ### No Cash Tender Configured Yet App Prompts to Close Out or Keep Tills Open This issue occurs if there's no cash tender configured at the register or store level, but the app prompts to either close out or keep tills open. To address this situation, set the Till Management Mode to “NONE” at either the store or register level, as expected. ### "Store XXX was not opened on XXX" Error Message If you see an error message after closing a store, at least one register is still open. Make sure all registers are closed to fix this. If the issue continues after closing all registers, you can manually close the store in [Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_store_creation.htm&release=264.0.0&type=5 "Create stores and edit store details in Point of Sale CMS"). This issue happens if a different time zone opens a register in that store. ### "Till already exists. Please log in to get the till details" Error Message If you log out while offline, your till will be set to a "close" state. The next time you log in online, the app will prevent creating a duplicate till because the offline till hasn't synced yet. If you try to create a till if one exists, you'll see the error message. This occurs because an active till in the "CLOSE" status exists. If you're logged out automatically after seeing this message, simply log back in, and you can proceed without creating a new till. ### "Till xxx was reconciled earlier but the status didn’t update due to a network error. The status is now 'Reconciled'" Error Message If a reconciliation attempt is made on a locked till before entering the expected amount, the app checks the cloud for the till's status. If the till is reconciled, the app displays the error message. This measure prevents duplicate reconciliations if a manager reconciles a till, and the cloud successfully updates the status, but the app doesn’t receive the response due to a timeout or offline mode. In such cases, the till remains in a "Not Reconciled" status on the app, which leads to another reconciliation attempt. # Manual Capture for Payment Processing Manual capture lets you authorize a payment, and then capture that payment at a later time. Capturing payments manually gives you more control and flexibility over the payment process. Manual capture lets you check inventory, complete order fulfillment, and reduce chargebacks related to canceled or refunded orders. You can capture payments at specific times or in specific amounts to better manage cash flow. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/images/icon_note.png) Note Not all payment methods support manual capture. If you’re using Order Management with Payments, and you enable manual capture, enable order routing to capture authorized funds so you get paid. For instructions, see [Commerce Setup Assistant](https://help.salesforce.com/s/articleView?id=commerce.comm_csa_automations.htm&language=en_US) and [Commerce Order Routing](https://help.salesforce.com/s/articleView?id=commerce.comm_csa_orderouting.htm&language=en_US). - **[Enable Manual Capture for Payments](https://help.salesforce.com/s/articleView?id=commerce.payments_enable_manual_capture.htm&release=264.0.0&type=5)** Use manual capture for payment processing for greater control, flexibility, and security in managing their payment transactions. Manual capture is available for Commerce and Pay Now stores. # Manual Refresh Data Maps as Needed Sync new custom attributes in Salesforce Order Management with your B2C Commerce org with the click of a button. Manually trigger a data map refresh to get instant access to new schema changes instead of waiting for the next scheduled sync. **Where:** This change applies to B2C Commerce. **How:** In Business Manager, click App Launcher, select **Administration** | **Global Preferences** | **Salesforce Order Management Configuration**, and then click **Refresh Data Map**. ![Refresh Data Map](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/26_2/b2c_rn_26_2_refresh_datamap.png) #### See Also - [_Salesforce Order Management Developer Guide_: Salesforce B2C Commerce Storefront Order Data Map](https://developer.salesforce.com/docs/atlas.en-us.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_b2c_commerce_data_map.htm) # Manual Salesforce Tax Solution You can set up taxes for your B2B store by using the manual Salesforce tax solution. The manual tax solution is available only with a custom checkout configuration. Configure tax rates and tax treatments and assign them to the store’s tax policy. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) Here are the high-level steps to set up the manual Salesforce tax solution: - [Show tabs for the manual Salesforce tax solution](https://help.salesforce.com/s/articleView?id=commerce.comm_tax_objects_visible.htm&language=en_US). - [Create geo countries](https://help.salesforce.com/s/articleView?id=commerce.comm_create_geocountries.htm&language=en_US). - [Create geo states](https://help.salesforce.com/s/articleView?id=commerce.comm_create_geostates.htm&language=en_US). - [Assign tax policies to products](https://help.salesforce.com/s/articleView?id=commerce.comm_tax_assigntaxpolicytoproduct.htm&language=en_US). - [Configure tax rates and treatments](https://help.salesforce.com/s/articleView?id=commerce.comm_config_tax_rates_treatments.htm&language=en_US). - [Set the default tax treatment](https://help.salesforce.com/s/articleView?id=commerce.comm_default_tax_treatment.htm&language=en_US). - (Optional) [Make taxing and promotion adjustments](https://help.salesforce.com/s/articleView?id=commerce.comm_tax_with_adjustments.htm&language=en_US). If you're a Japanese customer, then see [Salesforce Commerce Tax API](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-d2c-comm-tax-apis.html) to support Japanese Consumption Tax (JCT) in your B2B store. - **[About the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_what_is_tax_solution.htm&release=264.0.0&type=5)** The manual Salesforce tax solution is a built-in service that calculates taxes for B2B stores that use gross taxation—taxes are included in the product price. The manual Salesforce tax solution supports tax percentage calculations at the country, state, and province level. The manual solution is appropriate if you have a simple gross tax situation. In any case, consult with a tax expert when setting up taxes for your store. - **[Show Tabs for Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_tax_objects_visible.htm&release=264.0.0&type=5)** If you’re using a Salesforce org provisioned with B2B Commerce before the Winter ’23 release, make the tax-related entities visible for your B2B store. - **[Create Geo Countries for the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_create_geocountries.htm&release=264.0.0&type=5)** When you configure the manual Salesforce tax solution for a B2B store, you assign a geo country to a tax rate to specify which country the tax rate applies to. Create a geo country for every country where you want to specify a tax rate. The geo country is the country to which a product is shipped, not from where the order was placed. - **[Create Geo States for the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_create_geostates.htm&release=264.0.0&type=5)** When you configure the manual Salesforce tax solution for a B2B store, you assign a geo state to a tax rate to specify which state or province the tax rate applies to. Create a geo state for each state and province that you want to specify a tax rate for. The geo state is the state or province to which a product is shipped, not from where the order was placed. - **[Create a Tax Engine](https://help.salesforce.com/s/articleView?id=commerce.comm_createtaxengine.htm&release=264.0.0&type=5)** A tax engine calculates tax rates for cart items based on specified geographic and regulatory rules. Set up a tax engine if you're using simple gross tax. When you configure the manual Salesforce tax solution in B2B Commerce, set up a tax engine record using your tax provider's name, mailing address, seller code, Apex adapter name, and credentials. - **[Create a Tax Policy](https://help.salesforce.com/s/articleView?id=commerce.comm_createtaxpolicy.htm&release=264.0.0&type=5)** A tax policy determines how taxes are calculated and applied to products during checkout. When you configure the manual Salesforce tax solution in your B2B store, create a tax policy for each product type, so that the correct taxes can be applied when buyers check out their cart. A tax policy must be associated with a tax treatment. - **[Create a Tax Treatment](https://help.salesforce.com/s/articleView?id=commerce.comm_createtaxtreatment.htm&release=264.0.0&type=5)** A tax treatment defines how taxes are calculated for a specific item through the product's tax code. When you configure the manual Salesforce tax solution in B2B Commerce, create a tax treatment. - **[Assign a Tax Policy with the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_assign_tax_policy.htm&release=264.0.0&type=5)** When you set up the manual Salesforce tax solution, assign a tax policy to your B2B store. - **[Configure Tax Rates](https://help.salesforce.com/s/articleView?id=commerce.comm_config_tax_rates_treatments.htm&release=264.0.0&type=5)** When you configure the manual Salesforce tax solution for B2B Commerce, you configure tax rates and tax treatments. A tax rate specifies the percentage at which a product is taxed and the country, state, or province where that rate applies. A tax treatment maps the tax rate to products. A tax policy includes all the tax treatments for your store’s products. - **[Taxing and Promotion Adjustments with the Manual Salesforce Tax Solution](https://help.salesforce.com/s/articleView?id=commerce.comm_tax_with_adjustments.htm&release=264.0.0&type=5)** Items that are part of a promotion or tier adjustment in a B2B store configured with the manual Salesforce tax solution are taxed after the promotion amount is subtracted from the product price. The tax is calculated on the adjusted amount. # Manually Configure a Payment Gateway for Order Management If you don’t use Salesforce Payments or you’re using B2C Commerce, you can manually configure a payment gateway to view and manage payments in Order Management. Configure a gateway for each payment provider, for example, Stripe, PayPal, Adyen, or Cybersource. Payment packages are available on AppExchange for some vendors. 1. Create a payment gateway adapter class using the Salesforce APEX connector framework. To get started, see these reference classes: [https://github.com/forcedotcom/Core-Payments-Reference-Gateway-Integration-Adapters](https://github.com/forcedotcom/Core-Payments-Reference-Gateway-Integration-Adapters). 2. Create a payment gateway provider record that points to the adapter class that you created. 3. In Setup, define a named credential that contains the gateway provider’s authentication and login information. The adapter class callout definition calls the named credential. 4. To link the payment gateway provider record and the named credential, create a payment gateway record. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Manually Create Store Associates Create store associate user profiles in Point of Sale CMS so that you can manage them. To edit or create a store associate: 1. In CMS, go to **Store Management > Associates > Associates**. 2. To edit a store associate, select the pencil icon to the right. 3. To create a new store associate user, select **ADD** in the upper right corner. 4. Configure the fields by referring to [Creating Store Associates in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_create_store_associates.htm&release=264.0.0&type=5 "Add users to Point of Sale CMS who can access store functions and operate a point of sale (POS) system."). 5. Save your changes. # Manually Import a Pending Order Summary When the high-scale system is enabled, orders usually flow quickly from the Zero Object Service (ZOS) into Order Management. But when order volume is high, such as during a flash sale, orders can spend time waiting in ZOS. While an order is in ZOS, it’s visible in Order Management as a pending order summary. If you want to service an order that’s still in ZOS, you can manually import the pending order summary. ### Required Editions
View supported editions.
1. Open the shopper’s Account or Contact details page. 2. In the Pending Order Summaries related list, search for the order. 3. From the actions menu for the order, select **Import**. The order summary is immediately created. #### See Also - [Order Summary and the Order Lifecycle](https://help.salesforce.com/s/articleView?id=commerce.om_order_summary_order_lifecycle.htm&release=264.0.0&type=5 "The order summary consolidates all order information—from order capture through fulfillment, payment collection, shipping, delivery, and service—and displays it in a single view. Use the order summary to manage the entire order lifecycle.") # Manually Localize Product, Category, and Promotion Data You can manually enter translated text for your B2B product and category names and descriptions. To translate promotion names and descriptions, you must use Translation Workbench. To perform bulk translations for product, category, or promotion data, use Translation Workbench. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) To do bulk translations, see [Translation Workbench](https://help.salesforce.com/articleView?id=platform.workbench.htm&type=5&language=en_US). If your store uses multiple languages and Translation Workbench is enabled, translate product data for each store language, including the store’s default language, in order for product fields to be searchable. To manually localize product or category data: 1. Go to the product or category that you want to add translations to. 2. Click the **Translations** tab. The Translations tab is available when you have Data Translation enabled for your org. See [Enable Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&release=264.0.0&type=5 "When you enable data translation, you can translate the data stored in your B2B store product, category, and promotion fields. You can also enable data translation for custom text and URL fields on the product and category objects."). 3. Click **Add Translation**. 4. Select the language, and enter the translated product or category name and description. 5. To apply the translation, rebuild the search index. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates."). # Manually Localize Store Labels Some B2B component labels are translated for you into the store's selected language, but you need to manually translate some labels. To translate your store’s text elements in bulk, use the translation tool. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. On your store’s home page, click **Website Design**, and then click **Experience Builder**. 2. At the top of the navigation bar, click ![Languages icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_language_icon.png) and select the store’s language. 3. Enter the localized text in the component property fields. #### See Also - [Export Language Content](https://help.salesforce.com/s/articleView?id=experience.community_builder_multilingual_export.htm&type=5&language=en_US) - [Import Translated Content](https://help.salesforce.com/s/articleView?id=experience.community_builder_multilingual_import.htm&type=5&language=en_US) - [Localize Store Labels in Bulk](https://help.salesforce.com/s/articleView?id=commerce.comm_translate_store_labels_translation.htm&release=264.0.0&type=5 "When you add languages to Experience Builder, some component labels are translated for you into the selected language. If you add more languages, you can translate your B2B store’s text elements in bulk by using the translation tool. You can also translate configurable labels manually in the component properties.") # Manually Set Up Inventory for a Commerce Store You can manually configure Salesforce Omnichannel Inventory or a third-party inventory service if you don’t want to use the Commerce Setup Assistant. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note To enable inventory, the Web Store Inventory Source field-level security permission for the Enabled field is required. You can configure settings and select a provider without this permission. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**, and click **Inventory**. 3. Enter general provider settings. - Location Source: Default location or location group for inventory reservations. Required. - Inventory Dimension: Fulfillment options. - On Hand: Inventory available, not counting Future Inventory or Quantity Reserved. - Available to Fulfill (ATF): Inventory that can be fulfilled now. - Available to Order (ATO): Inventory that can be ordered. Default option if no dimension is selected. - Reservation Duration (Seconds): Amount of time a reservation is held between 300 and 14,400 seconds. Required. - Inventory Cache Time To Live (Seconds): Amount of time inventory values are kept in the cache. When the time expires, the cache doesn’t return a value for the requested inventory key and a new inventory value is requested. Must be between 300 and 14,400 seconds. The default setting is 2400 seconds. 4. Click **Save**. Fields that aren’t required are filled with default values if left blank. 5. Configure Salesforce Omnichannel Inventory or create an extension point to connect your custom inventory provider. See [Get Started with Salesforce Commerce Extensions](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/extensions.html). 6. To turn on inventory, click **Turn On**. You can use AppExchange package to integrate a third-party service. If you prefer to integrate a third-party service without using AppExchange, see examples in GitHub. - [Reference Implementations for B2B Commerce](https://github.com/forcedotcom/commerce-on-lightning/tree/main-2/examples/b2b/checkout/integrations) - [Reference Implementations for D2C Commerce](https://github.com/forcedotcom/commerce-on-lightning/tree/main-2/examples/b2c/checkout/integrations) For information about implementing Omnichannel Inventory, see [Salesforce Omnichannel Inventory Implementation Guides](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_implementation_guide.htm&type=5&language=en_US). To set up an integration, see [B2B Commerce Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.b2b_b2c_comm_dev.meta/b2b_b2c_comm_dev/b2b_b2c_comm_dev_guide.htm). #### See Also - [Set Up Your B2B Store Inventory Using the Commerce Setup Assistant](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_inventory_with_csa.htm&release=264.0.0&type=5 "The Commerce Setup Assistant configures most of the settings required to use Omnichannel Inventory. Some manual steps are required to complete the implementation.") # Map Data Feed Fields Set Field Mappings in Point of Sale to transform data from external sources into the format that Point of Sale uses. Field mappings use transformations and regular expressions. When you import data feeds, the field mappings ensure that your data is accurate and consistent. This consistency helps to streamline your retail operations. ## Add Fields You can add fields manually by typing the field names individually, or you can add many fields at once from a file. For CSV, TSV, and PSV files the field names should be in the first row of the file. In an XML file, you can select a parent tag and add all of the child tags that are found beneath the first instance of the specified parent tag. 1. In CMS, go to **Feeds** | **Field Mappings**. 2. Click the blue + icon ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The Parent Tag is the tag used for a store entry but without the angle brackets. This can be found in the codebase. For example, in this code snippet, is the parent tag used for store entries therefore, what should be entered into CMS is store. ```
``` ![A screenshot shows store entered as the parent tag.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_parent_tag.png) ## Map Fields To map a Source Field to a Target Field: 1. In CMS, go to **Feeds** | **Field Mappings**. 2. Click a Source Field on the left to select it. 3. Click a Target Field on the right to create the mapping. Once a mapping has been created, a line points from the Source Field on the left to the Target Field on the right.![A screenshot shows the mapping between the source product ID field and target ID field.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_mapping.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important In the initial file upload, the required Target Fields (denoted by an asterisk) must be mapped so they can be available as columns. However, they don’t need to have values and just need to line up with the schema. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip The GTIN (Global Trade Item Number) field is required for full POS functionality, particularly for Cycle Count manual search. If your source catalog does not natively populate GTIN, you can map an alternative identifier (such as productId or SKU) to the GTIN target field to ensure products can be added to cycle counts via manual search. For more information, see [Learn about Cycle Counts in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_learn_about_cycle_counts_in_retail_cloud.htm&release=264.0.0&type=5 "Understand the distinctions among each Cycle Count type to best suit your retail environment."). ## Use Custom Target Fields When a Source Field does not fit any of the default Target Fields, use a custom Target Field: - CustomString - CustomInt - CustomDecimal - CustomDateTime A custom field can be referenced from different contexts like the search config and PDP. ## Map Many to One It is common for a Target Field to be composed of multiple Source Fields. For example, a product description might be composed of various Source Fields that are transformed and ordered in a particular way. This functionality is easier to manage now. Click on a Target Field to select it and view all Source Fields that are mapped to it. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Click a Target Field to select it. To unselect a Target Field, click it again or click the BACK button in the top bar. ![A screenshot shows many field mapping to additional image link.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_many_to_one.png) ## Set Source Field Sort Order First, select a Target Field to see the Source Fields that are mapped to it. To change the order in which the Source Fields are concatenated (i.e., the sort order), just drag and drop them into the desired order. ![A screenshot shows fields in sort order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_set_source_field_sort_order.png) ## Edit Separating Characters When many Source Fields are mapped to one Target Field, the source fields are concatenated and a separating character or characters is placed between the fields. To edit the separating characters: 1. Select a target field to see the source fields that are mapped to it. 2. Then click the gear icon. ![A screenshot shows the gear icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_edit_separating_characters.png) ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example **Replace Semicolons with Pipes** Let's say that your feed contains a column called AlternateImages that contains a list of image URLs separated by semicolons. Instead of generating a new feed, you can use a field transformation to replace the semicolons with pipes so that it conforms with the Google spec. 1. Map AlternateImages to additional\_image\_link. 2. Click the mapping line to launch the Transform Function popup. 3. Select **Replace All** from the dropdown. 4. Type ; in **Find** and | in **Replace**. 5. Click **OK** then save. ## Find Source and Target Fields To filter the Source Fields and Target Fields, type into the search bars above the fields. This feature helps you locate fields and create mappings quickly. ![A screenshot shows filtered lists of source and destination fields.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_filter_source_and_target_fields.png) ## Filter Source Fields for Inventory Events While creating field mappings for Inventory Event Exports you can filter the source column further by using the Event Picker Pulldown Menu. ![A screenshot shows the event picker pull down menu.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_filter_source_fields_for_inventory_events.png) ## Create Field Transformations ![A screenshot shows the transform function dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_create_field_transformations.png) Field transformations are used to manipulate the data inside of a column. To create a field transformation: 1. Click on the mapping line. 2. Select the type of transformation. 3. Complete any required fields. 4. Click **OK** then save. Field transformations are indicated by a circular icon on top of the field mapping arrow. The letter inside the icon corresponds with the type of transformation. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For examples of field transformations, refer to the [Transformations & Regular Expressions](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_regx.htm&release=264.0.0&type=5 "Point of Sale data mapping uses transformations and regular expressions so you can get values in the correct formats. Use transformations such as applying arithmetic operations, formatting text, and converting date and time values. Regular expressions use patterns to find and replace strings to refine your data mapping.") article. ## Test a Field Transformation To test a field transformation function: 1. Click on the mapping line to view the transformation function. 2. Click **Test Transformation**. 3. Enter an input value and click **Test**.![A screenshot shows test values in the transform function dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_test_a_field_transformation.png) ## Map the ERP Config Field Point of Sale includes a data mapping from the feed server, which will allow merchants to upload the store ERP configuration through the feed. 1. Click the blue + in the upper left next to Source Fields. Tip: Clicking the store\_erp\_configuration field will change the UI to something similar to this: ![A screenshot highlights the plus icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_step1.png) 2. Select **Add Field Manually**. 3. You will need to add new fields that the store ERP requires. E.g., storeDepartmentId, storeLocationId, storeCustomerId. The key names are referenced in the CSV. ![A screenshot shows the specification of a field name.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_step3.png) 4. Map all the keys to the store\_erp\_configuration under Target Fields. ![A screenshot shows an example field mapping.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_step4.png) 5. Click on the Composite icon (C) to modify the transform using these rules: 1. First field transformation rule example: 2. Transformation 1 Replace Value: `{"fieldName":`"![A screenshot shows transformation 1.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_step5_1a.png) 3. Transformation 2 Replace Value: `"` ![A screenshot shows transformation 2.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_step5_1b.png) 4. Middle field transformation rule example (Note: The store ERP could contain multiple middle fields): 5. Transformation 1 Replace Value: ,`"fieldName":"`![A screenshot shows transformation 1.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_step5_2a.png) 6. Transformation 2 Replace Value: `"` ![A screenshot shows transformation 2.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_step5_2b.png) 7. End field transformation rule example: 8. Transformation 1 Replace Value: `,"fieldName":"` ![A screenshot shows transformation 1.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_step5_3a.png) 9. Transformation 2 Replace Value: `"}` ![A screenshot shows a transformation 2.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_step5_3b.png) 6. If null is passed to the fields, then the ERP configuration will remain as the old ERP configuration in the Point of Sale database. You can modify the order of the Source Fields by clicking and dragging the double vertical ellipsis. But _make sure_: - The first (top) field follows the[First field transformation rule](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5). - Any middle field follows the [Middle field transformation rule](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5). - The last (end) field follows the [End field transformation rule](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_maps_field_maps.htm&release=264.0.0&type=5). ![A screenshot shows the handles used for ordering source fields.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_maps_field_maps_map_the_erp_config_field_tip.png) ## Additional Tips - Use labs environment - When testing a new feed or changes to field mappings do these tests in the labs environment. - Debug with small files - When debugging, don't use large feed files. Modify the file so that it is as small as possible but still allows for debugging. - Use regex tools - Use tools, i.e., [regex101](https://regex101.com/) and [Java Regular Expression Tester](https://www.freeformatter.com/java-regex-tester.html) when working with regular expressions. # Map Reasons to Service Flows Reduce the time and effort it takes to service orders by only showing reasons relevant to the current service flow. For example, when a Customer Service Representative (CSR) processes a return, they only see the return-related reasons in the reason picklist. Up to 2000 reasons can show on each flow’s reason picklist. 1. In App Launcher, find and select **Order Change Reason Category Mapping**. 2. Click **New**. 3. In the Category dropdown, select a service flow. 4. In the Reason dropdown, select a reason. 5. If your org runs B2C Commerce or an external, non-Salesforce platform, enable the mapping for external users. 6. Choose whether to activate your mapping and then click **Save** or **Save & New**. 7. Repeat steps 2 through 5 for each flow. If the subset of reasons doesn’t appear during flow runtime, and instead all reasons are shown, check that the reasons are specified, active, and valid in your mapping configuration. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # March 2024 SCAPI Features - With B2C Commerce 24.4: - Added the Shopper Custom Objects API for retrieving Custom Objects. For details, see [Shopper Custom Objects](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-custom-objects). - Added support for additional HTTP methods for Custom APIs. For details, see [Custom APIs](https://developer.salesforce.com/docs/commerce/commerce-api/guide/custom-apis.html). - With B2C Commerce 24.3: - Updated the Orders API [updateOrderStatus endpoint](https://developer.salesforce.com/docs/commerce/commerce-api/references/orders?meta=updateOrderStatus) to support a new update status `failed_with_reopen`. - Expanded the Shopper Search API [productSearch endpoint](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=productSearch) to include additional parameters: `productPromotions`, `imageGroups`, `priceRanges`, and `variants`. For details and best practices, refer to the [Shopper Search API documentation](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=Summary). - Added the Customer API [searchCustomerGroup endpoint](https://developer.salesforce.com/docs/commerce/commerce-api/references/customers?meta=searchCustomerGroup), which searches for customer groups for the siteId. - Added response timeout handling for Sandbox instances. For more information see [Error Response Codes](https://developer.salesforce.com/docs/commerce/commerce-api/guide/error-response-codes.html#504-gateway-timeout). For more detailed information, see[B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). # March 2024 PWA Kit and Managed Runtime PWA Kit - SLAS Private Client Support - This feature is generally available from PWA Kit version 3.5. Check the releases page on GitHub for the latest available version of PWA Kit. Enable a Shopper Login and API Access Service (SLAS) private client in your PWA Kit site so you can support these features with reduced implementation time: - Passwordless login - Password reset - Faster page load times See [Use a SLAS Private Client](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/use-a-slas-private-client.html). Managed Runtime - CDN Performance Enhancements - Get reduced page load times after redeploying your bundles. These Content Delivery Network (CDN) enhancements improve app performance: - HTTP/3 — We automatically use the [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) protocol for all browsers and clients that support it. HTTP/3 improves performance, especially for shoppers who use network-constrained devices, such as mobile. - Cross-region CDN caching — We automatically use cached responses across regions to improve the cache hit ratio and performance for sites with a global audience. - More CDN regions — We added more regions to the CDN, resulting in faster response times and shorter network hops if you use a stacked CDN setup. # March 2025 SCAPI and SLAS For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI: - B2C Commerce version 25.4: - The SCAPI Shopper Products GET [/product/shopper-products/v1/organizations/{organizationId}/products/{id}?expand=promotions](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-products?meta=getProducts) endpoint and the OCAPI GET [/products/{id}/promotions](https://developer.salesforce.com/docs/commerce/b2c-commerce/references/ocapi-shop-products?meta=Get%2Bproduct%2Bpromotions) endpoint now return promotions with the same sort criteria as the Script API defaults. - SCAPI request realm IDs are now verified for correct short code assignment. - Custom APIs are now aligned with SCAPI Admin API endpoints with some constraints. - With B2C Commerce version 25.3: - Hybrid authentication (Hybrid Auth) replaces Plugin SLAS. Hybrid Auth improves the performance and stability of hybrid storefronts by moving the feature directly into the B2C Commerce platform. For details, see [Hybrid Authentication](https://developer.salesforce.com/docs/commerce/commerce-api/guide/hybrid-auth.html). SLAS - Improved the SLAS Admin UI design and user experience. - SLAS 404 and 5xx error logs are now available in the Log Center. - The channel\_id (site) parameter is now required when requesting a guest access token with a grant\_type of client\_credentials. We have started enforcing the change for all production tenants effective 3/25/25. # March Build Summary (10.8.1) Build summary for Modern POS version 10.8.1, including what new features and changes it contains. | Feature | Benefit | | --- | --- | | **Core Platform** |   | | [New at no additional cost Shipping Promotion V2](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5) | Adds support for a new version of at no additional cost shipping promotions, storing discount details in the JSON and establishing compatibility with delivery groupings | | [New Transaction Type for Returns in Edit/Appeasement Scenarios](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5) | Introduces new transaction types in the Electronic Journal to track refunds processed through edits or appeasements for a specified day or date range | | [Safe Management Override](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5) | Implements a new approval policy allowing authorized users to edit safe management settings | | [Automated Payment Reversal for Failed Orders](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5) | Allows merchants using Adyen to automate payment reversals for failed orders due to network disruptions or API errors, reducing manual intervention | | **Discounts** |   | | [Cumulative Discounts for Multiple Edits or Appeasements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5) | Enhances discount handling by allowing cumulative discounts across multiple edits or appeasements | | **Inventory Management** |   | | [Scheduled Inventory Event Daily Export](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5) | Enhances the CMS Inventory Event Export with scheduled export capabilities | | [Fulfillment, Order Headers, and Customer Details](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5) | Improves ROPIS, BOPIS, and BOFIS flows by displaying customer email and phone number if available | | **Other** | [Various](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_8_1.htm&release=264.0.0&type=5) | ## Core Platform ## New at no additional cost Shipping Promotion V2 What it does: Adds support for a new version of at no additional cost shipping promotions, storing discount details in the JSON and establishing compatibility with delivery groupings. As of March 2025, Salesforce offers two types of at no additional cost shipping (V1 and V2). Each version has different features. See the table for a comparison. | At no additional cost Shipping V1 | At no additional cost Shipping V2 | | --- | --- | | App build prerequisite: 10.7.1 or earlier | App build prerequisite: 10.8.1 or greater | | Apply a shipping discount for all promotions that qualify for at no additional cost shipping | Apply a shipping discount for all promotions that qualify for at no additional cost shipping | | Record shipping charges and discounts in TLogs and JSON | Record shipping charges and discounts in TLogs and JSON | | Print shipping charges on receipts | Compatibility with delivery groupings | |   | Print shipping charges and discounts on receipts | ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important To use V2, update app builds to 10.8.1 or higher. Support remains available for merchants using V1, but use app builds 10.7.1 or lower to successfully apply V1 at no additional cost shipping. Only one type of at no additional cost shipping (V1 or V2) is allowed on the POS app. How to configure in CMS: 1. In CMS, go to **Promotions > Free Shipping (v10.8.1 and later)**. 2. Configure the promotion by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&release=264.0.0&type=5 "Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes.").![Configure No-cost Shipping in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_promos.png) Learn more: [No-Cost Shipping Promotion](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_no_cost_shipping.htm&release=264.0.0&type=5 "Create promotions in Point of Sale CMS that automatically apply no-cost shipping to eligible orders at checkout on the Point of Sale (POS) app.") ## New Transaction Type for Returns in Edit/Appeasement Scenarios What it does: Adds new transaction types in the Electronic Journal to track refunds processed through edits or appeasements for a specified day or date range. For refunds given to a customer after an order has been edited, the transaction will be recorded as "Edit Refund." However, any new items added to the edited order will be recorded as "Edit Sale," which can increase the total balance beyond the original amount. ![The Electronic Journal tracking Appeasements for a specific day.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_edit_appease.png) How to configure in CMS: No configuration is needed as this is the default behavior. Learn more: [Configuring Appeasements on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_appeasements_overview.htm&release=264.0.0&type=5 "Store associates can provide a partial refund to provide appeasement to the customer at the item or order-level (for any reason, for example such as a price match, delayed shipment, damaged item, poor customer experience, or overcharge). If appeasements are enabled and configured in Point of Sale CMS, associates can modify an order via Order History on the POS app and start the appeasement flow.") ## Safe Management Override What it does: Implements a new approval policy, allowing authorized users to edit (add or remove funds) safe management settings. Editing allows funds to be added or removed for safe management. ![The Policy Approval window in the POS app, where the store manager enters their credentials.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_safe_mgmt_policy_approved.png) How to configure in CMS: 1. In CMS, go to **Store Management > Associates > Approval Policies Configuration**. 2. Select **Create**. 3. Under **Policy Feature**, select "**Edit Safe Management**". 4. Under **Approving Roles**, select the roles allowed to edit the floats in the safe management. 5. Configure the rest of the fields by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associate_approval_policies.htm&release=264.0.0&type=5 "Control which features and roles in Point of Sale CMS require approval."). 6. Save your changes. Learn more: [Manage Safe Funds in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_safe_management.htm&release=264.0.0&type=5 "View safe funds within a store, check the safe balance at any time, and create a suggested bank deposit each day.") ## Automated Payment Reversal for Failed Orders What it does: Permits merchants using Adyen to automate payment reversals for orders that fail because of network problems or API errors. This reduces the need for manual intervention. ![The Orders Failed window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_failed_orders.png) How to configure in CMS: No configuration is needed as this is the default behavior. Learn more: [View Failed Orders Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_failed_orders_report.htm&release=264.0.0&type=5 "View reports of orders that didn’t process in Point of Sale CMS so that users can verify the payments for those orders.") ## Discounts ## Cumulative Discounts for Multiple Edits or Appeasements What it does: Enhances discount handling by allowing cumulative discounts across multiple edits or appeasements. The app retains the original discount and adds any subsequent adjustments to it. In the example, an initial appeasement applied a $10 discount, which is then refunded to the customer. ![The Item Level Discount window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_appeasements_pos.png) How to configure in CMS: No configuration is needed as this is the default behavior. Learn more: [Configuring Appeasements on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_appeasements_overview.htm&release=264.0.0&type=5 "Store associates can provide a partial refund to provide appeasement to the customer at the item or order-level (for any reason, for example such as a price match, delayed shipment, damaged item, poor customer experience, or overcharge). If appeasements are enabled and configured in Point of Sale CMS, associates can modify an order via Order History on the POS app and start the appeasement flow.") ## Inventory Management ## Scheduled Inventory Event Daily Export What it does: Enhances the CMS Inventory Event Export with scheduled export capabilities How to configure in CMS: 1. In CMS, go to **Feeds > Export Jobs**. 2. Create or edit an Inventory Event Export by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_exporting_inventory_setup.htm&release=264.0.0&type=5 "Create inventory event export jobs in Point of Sale so that you can listen to inventory events."). 3. Turn on **Run on a schedule**. After it’s turned on, the scheduler appears, and you can specify how often to run the export. The only scheduling option is daily. This creates a daily file for each event you select. This file has all the data that was created for that event during the day. If no data is created for a selected event on a given day, an empty file is generated for that event. ![The inventory export scheduler in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_run_on_schedule.png) Learn more: [Exporting Inventory Events in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_exporting_inventory.htm&release=264.0.0&type=5 "Create an inventory export event in the CMS to export inventory data from the Retail Cloud Backend via Secure File Transfer Protocol (SFTP).") ## Fulfillment Order Headers and Customer Details What it does: Improves Reserve Online, Pick-up In-store (ROPIS), BOPIS (Buy Online, Pickup In-Store), and BOFIS (Buy Online, Fulfill In-Store) flows by displaying customer email and phone number if available. ![The POS app shows the display of the customer phone number and email address.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_orders_fulfill_ropis_pos_3.png) How to configure in CMS: No additional configuration is needed as this is the default behavior. Learn more:[Use Reserve Online, Pick Up In Store (ROPIS)](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_ropis.htm&release=264.0.0&type=5 "Point of Sale's Reserve Online, Pick Up In Store (ROPIS) feature lets customers reserve items online for in-store trials before buying. After reserving online, the store gets an order, allocates the items, and prepares them for fulfillment, similar to Buy Online Pick Up In Store (BOPIS). Once the order is ready, the customer receives a notification to try the items in-store before purchase.") [Manage Buy Online, Pickup In Store (BOPIS) Orders in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_fulfill_bopis.htm&release=264.0.0&type=5 "Configure and process Buy Online, Pickup In Store (BOPIS) orders in the POS app.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Multiple Associate API Bulk Update | Allows merchants to create and update multiple associates in a single API call, improving efficiency and helping manage API request quotas | [Bulk APIs for Creating & Updating Store Associates](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/bulk-apis-for-creating-updating-store-associates.html) | | Shipping Packages Sort Order | Automatically sorts shipping package configurations alphabetically in both CMS and the POS app | [Configuring & Printing Shipping Labels via Point of Sale SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_shipping_labels_spixml.htm&release=264.0.0&type=5 "Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing.") | | Edit and Appeasement Flow with Promotions Handling | Enhances the edit and appeasement flows by retaining original promotions and discounts from the original sale. Note, only manual discounts can be applied if editing an order—promotions are not supported. | [Configuring Appeasements on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_appeasements_overview.htm&release=264.0.0&type=5 "Store associates can provide a partial refund to provide appeasement to the customer at the item or order-level (for any reason, for example such as a price match, delayed shipment, damaged item, poor customer experience, or overcharge). If appeasements are enabled and configured in Point of Sale CMS, associates can modify an order via Order History on the POS app and start the appeasement flow.") | # March Build Summary (8.9.1) Build summary for Modern POS version 8.9.1, including what new features and changes it contains. ## **Overview of all Features and Changes** | Theme | Feature | | --- | --- | | Core POS | [Billing Address Flag \[Omni v2\]](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5) | | Core POS | [Setting to Disable/Enable More than One Store Pickup per Order\[Omni v2\]](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5) | | Core POS | [Enhanced Quote and Saved Cart Search Filters](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5) | | Promotions | [Line Item Discount Limit](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5) | | Reporting | [Reason Codes for Pay In, No Sale, Void Cart, and Price Override](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5) | | Reporting | [EJ capture of item level voids](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5) | | SPI | [Clienteling (Customer) SPI Field Mapping for Search](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5) | | Inventory Management | [Block in-store transfers for restricted products](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5) | | Other Feature Enhancements | [Collection of customer-impacting feature enhancements made to optimize existing functionality](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_8_9_1.htm&release=264.0.0&type=5) | ## CORE POS ## **Billing Address Flag \[Omni v2\]** **What it does -**Require a billing address based on order types. You can now opt to not prompt for a billing address, always prompt for billing address or only require a billing address for online orders. This flag is supported in both online and offline mode, just note that the POS app has to be online at least once to fetch the above data in order to work in offline. **How to Configure -**This can be configured by going to the app you want to configure the setting for in **Modules > Cart**. ![The Billing Address Flag for Omni V2 in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_omni_address_flag.png) Under **Show billing address for orders**, configure this flag based on the following options: - **Never** \- Billing address will not be required to complete the order. - **Always** \- Billing address will be mandatory to complete the order. - **Online Only -** Billing address will be mandatory when the cart contains online items only (no mixed cart). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note There is an existing configuration flag on CMS to configure the billing address, this property is in process of deprecation and should not be used onwards. ![The Show billing address for orders glag in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_billing_address_orders.png) **Learn More -** [Omnichannel Cart Settings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_v2_overview.htm&release=264.0.0&type=5 "Integrate shopping experiences across channels with Point of Sale's Omnichannel.") ## Setting to Disable/Enable More than One Store Pickup per Order \[Omni v2\] **What it does -**With Omni v2 you can allow multiple pick-up locations in one order or allow only one. The default is to allow multiple but you may elect to only allow one with this setting. **How to Configure -** [https://labs.predictspring.com/cms/server-settings-v2/pos/store-fulfillment](https://labs.predictspring.com/cms/server-settings-v2/pos/store-fulfillment) Go to your Omni Settings in your Store Fulfillment Settings and _Enable only one pickup location per order_. ![The Enable only one pickup location per order flag in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_one_pickup_localtion.png) **Learn More -** [Omnichannel: Multiple Fulfillment Types per Cart (Mixed Cart)](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_multiple_fulfillment_types.htm&release=264.0.0&type=5 "Allows items in the cart to have multiple fulfillment types in a single order with Point of Sale's Omnichannel solution.") ## **Enhanced Quote Search Filters** **What it does** \- Look up Saved Carts and Quotes separately by setting up a deep link. Enhanced functionality allows you to filter by customer, store, and quote id. **How to Configure and Access** Step 1: Edit the layout you want the quote added to and configure the deep link with "Quote Lookup" ![The Quote Lookup filter in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_enhanced_quotes.png) Step 2: Access deep link from your App and see the ability to search by Customer, Quote ID, and Store/Date ![The Quotes Lookup page in the POS app with several items listed by quote number.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_enhanved_quotes_pos.png) **Learn More -** [Creating & Managing Customer Quotes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_create_manage_customer_quotes.htm&release=264.0.0&type=5 "Merchants can create and track customer quotes on the POS app. Each quote has a unique number and includes customer information. Store associates can work with customers on merchandise and pricing, either in-store or over the phone, and then email the quote for review or print it on A4 paper. Customers can save the quote, delete it, or complete the checkout process.") ## **Enhanced Saved Cart Filters** **What it does** \- Additional filtering of Saved Carts from where you have your Store Saved Carts deep link set up **How to Configure and Access** \- Step 1: Edit the layout you want the Saved Carts access added to and configure the deep link with "**Store Saved Carts**" ![The Store Saved Carts search field in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_store_saved_carts.png) Step 2: Access deep link from your App and see the ability to search by Customer and Store/Date ![The POS App showing a Saved Cart Lookup result.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_cust_search_pos_app.png) ## Promotions ## Line Item Discount Limit **What it does -** Set the item and transaction limits in CMS for scenarios where you'd want a max discount or percentage off an order. The limits are checked against the remaining order total after any manual and/or auto-promotion has been applied. If the order total exceeds the set limit on either the max discount or max percentage, a manager's approval would be indicated. **How to Configure -** [https://labs.salesforce.com.com/cms/server-settings-v2/pos/cash](https://labs.salesforce.com.com/cms/server-settings-v2/pos/cash) ![Line Item Transaction Discount Limit settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_line_item_discount.png) **Learn More:** [Item & Transaction Level Limits](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_transaction_limits_config.htm&release=264.0.0&type=5 "Control discounts applied in your POS app by setting maximum limits for items and transactions. These limits are checked against the order total after promotions. Require manager approval if the order total exceeds the set maximum discount amount or percentage.") ## Reporting ## Reason Codes for Pay In, No Sale, Void Cart, and Price Override **What it does** \- We now support reason codes online and offline for Pay In, No Sale, Void Cart, and Price Override. If you have the reason codes configured in CMS, you can see them reported in your Electronic Journal. **How to Configure -** [Reason Codes](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_reason_codes.htm&release=264.0.0&type=5 "Configure reason codes in Point of Sale (POS) to track the reasons behind actions, such as discounts or inventory adjustments.") **Where to Access -** [Electronic Journal (EJ) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") ## EJ Capture of Item Level Voids **What it does -** Record items removed from the cart in Electronic Journal. This will be tracked for all sales, returns, exchanges, or resumed saved carts. **Where to Access** \- [Electronic Journal (EJ) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") **Learn More -** [Electronic Journal (EJ) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") ## SPI ## Clienteling (Customer) SPI Field Mapping for Search **What it does -** Enhanced SPI field mapping for customer search which allows you to Search customers and retrieve details of a specific customer by First Name, Last Name, email, phone number or zip code. **How to Configure** \- Create your Customer Search layout and ensure you have the correct field mappings configured ([SPI Customer Search Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_manage_spi_customer_search_layout.htm&language=en_US)) ![The Customer Search Layoout in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_spi_cus_search.png) **Learn More** \- [SPI Customer Search Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_manage_spi_customer_search_layout.htm&language=en_US) ## Inventory Management ## Block in-store transfers for restricted products **What it does -** Specify products that should be restricted from transfers, receiving, and PO creation **at the receiving store**. Additional CMS configuration is required. **How to Configure** \- Step 1: Go to [https://labs.predictspring.com/cms/inventory-restriction](https://labs.salesforce.com/cms/inventory-restriction) Step 2: Create an Inventory Restriction Rule. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note You can have multiple restriction rules by clicking on + Add. With this, you can create a rule that would only apply when, for example, GTIN is 12345 AND Product ID is 366. However, if you wish to create a non-dependent rule, for example, if the GTIN is 12345 OR Product ID is 366, then you'd need to create separate rules (refer to Step 2 in Creating Inventory Restriction Rule). ![Inventory Restrictions Rule Details in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_inventory_restrictions_1.png) Step 3: You can also automate the process by importing all the values from a CSV file. This may be useful in the event that you wish to restrict a large number of products. ![The Restricted Location Rule setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_restricted_location.png) Step 4: Test your configurations by scanning the restricted product ![The Restricted Location Rule result in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_restricted_location_pos.png) **Where to Access -** [https://labs.salesforce.com/cms/inventory-landing](https://labs.salesforce.com/cms/inventory-landing) OR [https://labs.salesforce.com/cms/inventory-restriction](https://labs.salesforce.com/cms/inventory-restriction) **Learn More** \- [Inventory Restrictions](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_restrictions.htm&release=264.0.0&type=5 "Configure rules that block specific products from being sold, returned, or included in inventory processing at selected store locations.") ## Other Feature Enhancements
Title Description Helpcenter link if applicable
Order details in Order History Enhancements Order details in Order History now show the discounts and promotions applied on the order at the item level Viewing Order History on POS App
Portugal Fiscalization ATCUD is included on receipts Fiscalization Requirements for Portugal
Till Calculator - EU and UK Expanded functionality for EU and UK currencies to be entered into the till calculator when putting bills in a till or reconciling. Till Management
Inventory Receiving by Carton Enhanced inventory scanning allows you to receive inventory by carton ID. You can have this capability blocked by enforcing item-level receiving only. Managing Inventory: Advanced Shipping Notice (ASN) Receivings
EPC Scanning Default on PDP Enables you to prompt for an EPC scan when the fulfillment type changes Product Display Page (PDP) Layout
Record Start and End Time in Transaction Log

Access the following in your transaction log:

Start time - the time the first item is added to the cart

End time - the time when the order is completed

Expiry date for Adyen Gift Cards New flag in CMS to enable showing expiry date for gift cards Gift Cards via Payment Terminal
Access to Developer Credentials Self-service access in CMS to Client ID, Client Secret, Merchant API Key, and Retail Cloud Secret Point of Sale API Developer Guide
Loyalty PS Tag Update for Loyalty Tier Name

Depcrecation :ps_current_loyalty_tier

Addition :ps_current_loyalty_tier_name

Print Tags Configuration
Removed Order QTY from Successful Orders Report in CMS Removed Order QTY from Successful Orders Report in CMS Successful Orders
Elavon - set order number range in CMS Ability to define the starting order number range for an Elavon transaction Elavon: Onboarding & Troubleshooting
SSO to CMS with Azure Enable Single Sign On to Point of Sale CMS Enabling Azure AD with CMS
# March Build Summary (9.9.1) Build summary for Modern POS version 9.9.1, including what new features and changes it contains | Theme | Feature | Benefit | | --- | --- | --- | | Omnichannel | [Multiple Delivery Addresses and Dates per Order](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_9_1.htm&release=264.0.0&type=5) | Ability to set delivery and pickup dates at item level, where previously you only did it at the order level. Can also ship to more than one address! | | Inventory Management | [Shipping Aggregator SPI - Carry Forward Tracking Number in Generating Label for STS and RTV Flows](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_9_1.htm&release=264.0.0&type=5) | Update to our Shipping Aggregator SPI. The tracking number is updated automatically and shown after you create a label in a Store to Store Transfer and Return to Vendor flow. | | Analytics/Reporting | [Custom Date Filtering for Sales Attribution, Associate Log In, and Item Not on File Report](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_9_1.htm&release=264.0.0&type=5) | Ability to filter POS reports by the current day, the last seven days, current month, previous month, or custom range. | | Receipts | [New E-Receipt Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_9_1.htm&release=264.0.0&type=5) | 24 new E-tags added to bring greater parity to print tags | | Gift Cards | [Gift Card Deeplink for All Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_9_1.htm&release=264.0.0&type=5) | You can now add a gift card deeplink to any layout whereas you previously only had it in a cart. Check gift card balance from homescreen, hamburger menu, or any layout. | | Core Platform | [Tab Navigation with Icons](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_9_1.htm&release=264.0.0&type=5) | Add iconography to navigation Tabs for better identification and customization unique to your brand | | Other Feature Enhancements | [Other feature enhancements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_9_1.htm&release=264.0.0&type=5) | Various | ## Omnichannel ## Multiple Delivery Addresses, Delivery, and Pick-Up Dates per Order What it does: You can now add more than one delivery address and delivery date for multiple items in an order. For example, a customer can request one item to be shipped to their home and another to be sent to a friend as a gift. How to configure: 1. In CMS, go to **Store Management > Omnichannel Fulfillment Settings**. 2. Turn on the flags for the options you want to turn on: - **Allow Multiple Shipments Per Order** - **Allow Multiple Delivery and Pickup Dates Per Order** - **Allow Multiple Shipping Addresses Per Order** 3. Set and save your changes. 4. Relaunch your POS app. ![The settings in Point of Sale CMS to configure for pickup dates.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_delivery_pickup_date_settings.png) Learn more: [Omnichannel: Delivery and Pickup Date Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_delivery_and_pickup_date_overview.htm&release=264.0.0&type=5 "Configure Delivery and Pickup Dates for Omnichannel in Point of Sale.") ## Inventory Management ## Carry-Forward Tracking Number in Generating Label for STS and RTV Flows What it does: Make operations easier and less likely to make mistakes in tracking numbers with our new feature to keep the tracking number from the carrier. If you have the SPI enabled, after generating a label, the app displays a successful message along with a tracking number. ![The shipping ID for STS and RTV transfers in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_sts_tracking.png) Learn more about configuring and printing shipping labels via SPI: [Configuring & Printing Shipping Labels via Point of Sale SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_shipping_labels_spixml.htm&release=264.0.0&type=5 "Select and integrate various shipping services, configure prepopulated item weights and box dimensions, and create multiple boxes during packing.") ## Analytics/Reporting ## Custom Date Filtering for Sales Attribution, Item not on File, and Associate Log In Reports What it does: You can now filter Sales Attribution, Item Not on File, and Associate Log In reports by a custom 31-day date range. ![A calendar in the POS app where you can filter various reports for a 31 day period.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_reports_filtering.png) Learn more about our POS Reports: [Sales Attribution](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_sales_attribution_reports.htm&release=264.0.0&type=5 "Measure sales associate performance, predict commissions, and get a summary of sales and returns attributed to each associate in Point of Sale CMS."), [Item Not on File](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_product_not_found.htm&release=264.0.0&type=5 "Generate reports for products that didn't originate from a product feed import in Point of Sale and were manually added by a store associate."), and [Associate Log In](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_reports_associate_login_report.htm&release=264.0.0&type=5 "View a store associate's ID, full name, and last login date and time. Use the report in both Point of Sale CMS and the Point of Sale (POS) app to monitor associate activity. Customize the report by date to view specific timeframes.") ## Receipts ## New E-Tags What it does: New email tags for email templates to bring greater parity between email and print templates. You can now enhance your emails with Customer Ship Address, Loyalty Number, Product Level Notes, Store Information, and more. List of templates with new tag capabilities: - Transaction Print Receipt - Share Payment Link - Share Quote - Share Cart - Share Collection - Gift Receipt Learn more: [Configure Email Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_email.htm&release=264.0.0&type=5 "Email tags in Point of Sale are placeholders for email and print templates that pull specific information from data that are then shown instead of the actual placeholder.") ## Gift Cards ## Gift Card Deep Link for All Layouts What it does: Access gift card operations from any layout or hamburger menu. Simply add the deep link to any layout you want. Functions Supported: - Purchase a Gift Card - Add to a gift card - Cash out a gift card - Check gift card balance Learn more: [Comprehensive List of Deep Links](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_deep_links_list.htm&release=264.0.0&type=5 "Explore a detailed list of Point of Sale account deep links, each with a clear description and supported context. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.") ## Core ## Tab Navigation with Icons What it does: Add icons to bottom navigation for easier visual identification and custom brand experience. How to configure: 1. Select a tab to open its **Tab Settings** toolbar on the right side of the screen. 2. If you want to add an icon, upload an image to show as the tab's icon under iOS Icon. Images are 65px by 65px. 3. Under **Name**, enter the tab's display name for the POS app. 4. Under **Visibility**, select one of the options: - "**Always'**: The tab is always visible. - **'Signed**\-in': Only signed-in users can see this tab. - **'Signed**\-out': Only signed-out users can see this tab. 5. Under **Behavior**, set the tab's behavior by selecting one of the options: - **'Layout'**: displays a selected layout. - '**Layout Group**': displays a selected personalized layout. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_layout_groups.htm&release=264.0.0&type=5 "Layout groups (aka Personalized Layouts) in Point of Sale enable you to tailor app experiences for different user segments, such as gender and loyalty tier, ensuring a more relevant and engaging experience for each customer. By customizing layouts, you can enhance user satisfaction and drive higher engagement and loyalty.") - '**Deep Link**': displays a selected deep link. However, if the deep link fails, a fallback layout displays. ![Point of Sale CMS with a customized Tab Display layout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_settings_config_custom_tab_settings.png) Learn more about customizing and configuring navigational elements: [Customizing Navigation Bars on Your POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_customize_nav_bars_pos_app.htm&release=264.0.0&type=5 "Set up the navigation bar, hamburger menu, and tabs within the Point of Sale Point of Sale (POS) app. Control the tab display by selecting visibility options, such as always visible or visible to signed-in users only. Configure app settings like tab color, text color, and icon visibility to create a streamlined user experience.") ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Latency improvements for NetSuite: Advanced Search (Quotes and customer) | Enhanced speed of searching for quotes and customer records within the NetSuite Platform | [Learn more about NetSuite Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite.htm&release=264.0.0&type=5 "Enable order management by integrating your NetSuite ERP with Point of Sale CMS. Begin with an initial configuration on your NetSuite account. Then, complete the setup in the CMS.") | | Optional Item Attributes in Product Cart Cell | Show whether inventory is available, how many units are backordered, or how many units are committed in a product cell in the cart. This helps you manage your inventory better and reduces the risk of overselling. Integrate with NetSuite. | [Learn more about NetSuite Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite.htm&release=264.0.0&type=5 "Enable order management by integrating your NetSuite ERP with Point of Sale CMS. Begin with an initial configuration on your NetSuite account. Then, complete the setup in the CMS.") | # Mark Product Fields as Searchable or Not Searchable for a B2B Commerce Store Marking fields as searchable helps the search engine index more content, improving search accuracy and relevance in you B2B Commerce store. Avoid marking fields as searchable if the fields contain sensitive information or provide generic data. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) When marking product fields as searchable or not searchable, keep these considerations in mind. - The Category Name, Product Name, SKU, Product Description, and Product Code fields are searchable by default. Except for SKU and Product Code, which are used as identifiers for SKU searches, you can change the default fields to not searchable. SKU and Product Code remain searchable even if marked not searchable because they're used as identifiers for SKU searches. - Category Name isn't shown in the list of searchable fields, but itʼs used in search queries by default. If you want to mark Category Name as not searchable, you can do so via an API request to the [Commerce Management Webstore Search, Searchable Attributes](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_search_attributes.htm) endpoint. - You can configure up to 25 searchable fields and 50 filterable fields by default. To configure a total of 100 searchable and filterable fields, contact Salesforce Customer Support. - With product variations, parent products and their fields aren’t searchable. - When using picklists, make sure to activate any picklist values before building the search index. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_tip.png) Tip If you use field encryption, we recommend not encrypting product fields because that makes them not searchable. You can mark encrypted product fields as searchable, but encryption overrides the setting and they remain unsearchable. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Search**. 3. On the Searchable Fields tab, click **Manage Searchable Fields**. In the Manage Searchable Fields window, searchable fields are marked with ![Remove button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_remove.png). Not searchable fields are marked with ![Add button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_add.png). 4. To deselect a searchable field, click the ![Checkmark](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_remove.png). To make a field searchable, click ![Add button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/1cb2c_add.png). 5. Save your changes. 6. On the Search Index tab, update the search index. Changes appear in the store after the next search index rebuild. See [Update the Commerce Search Index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates."). #### See Also - [Mark Products as Searchable or Not Searchable](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_products.htm&release=264.0.0&type=5 "After you create your initial search index, all products in the catalog are searchable by default. If you want to make a product not searchable, you can exclude it from search. You can change whether a product is searchable at any time.") - [Manage Product Search Filters for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_add_filters.htm&release=264.0.0&type=5 "Help customers narrow their search results by managing product search filters in B2B Commerce. Configure filters for standard product fields, such as price and product family, or variation attribute fields, such as size and color. Control how filter values appear to buyers by setting the sort order for each filter.") - [Configure How to Display Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_search_display_settings.htm&release=264.0.0&type=5 "Define how many values appear for each search filter and how many search results to show on a page. You can choose to skip additional entitlement checks, automatically select and display relevant facets, and group search results under parent products.") - [Deactivate and Reactivate Values](https://help.salesforce.com/s/articleView?id=platform.fields_deactivate_reactivate_values.htm&type=5&language=en_US) - [Search Data Limits](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-b2c-comm-data-model-search-limits.html) # Mark Products as Searchable or Not Searchable After you create your initial search index, all products in the catalog are searchable by default. If you want to make a product not searchable, you can exclude it from search. You can change whether a product is searchable at any time. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) When marking products as searchable or not searchable, keep the following in mind. - For a product to be searchable, it must also be active. Each Product Workspace has an Active column. When Active is selected, the product is visible in all the associated stores. For information about changing a product’s active state, see [Use the Product Workspace to Manage and Update Products](https://help.salesforce.com/articleView?id=commerce.comm_product_workspace.htm&language=en_US). - You mark a product’s search status for individual stores. You can mark a product searchable in one store and make it not searchable in another store. - Marking a product as not searchable prevents it from being returned in the search results. However, as long as a product is active, it appears in all the associated stores, even if it’s not searchable. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Merchandising** | **Products**. 3. Click the product name that you want to mark as searchable or unsearchable. 4. Scroll down and click **Go to global product record**. 5. On the product page, from the Stores tile, click the row actions menu icon for the store that you want to change. - To let shoppers with access find the product in a search, select **Mark as Searchable**. - To prevent shoppers from finding the product in a search, select **Mark as Not Searchable**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note If a product is marked not searchable and Displayable Fields is enabled, direct links to the Product Detail page don’t work. See [Enable Displayable Fields in Commerce (Beta)](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_displayable_fields.htm&language=en_US). #### See Also - [Mark Product Fields as Searchable or Not Searchable for a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_fields.htm&release=264.0.0&type=5 "Marking fields as searchable helps the search engine index more content, improving search accuracy and relevance in you B2B Commerce store. Avoid marking fields as searchable if the fields contain sensitive information or provide generic data.") - [Manage Product Search Filters for a B2B Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_add_filters.htm&release=264.0.0&type=5 "Help customers narrow their search results by managing product search filters in B2B Commerce. Configure filters for standard product fields, such as price and product family, or variation attribute fields, such as size and color. Control how filter values appear to buyers by setting the sort order for each filter.") - [Configure How to Display Search Results](https://help.salesforce.com/s/articleView?id=commerce.comm_search_display_settings.htm&release=264.0.0&type=5 "Define how many values appear for each search filter and how many search results to show on a page. You can choose to skip additional entitlement checks, automatically select and display relevant facets, and group search results under parent products.") # Marketing Cloud for B2B Commerce Use Marketing Cloud and Data 360 with B2B Commerce to manage customer messaging and marketing consents in the Commerce app. Customize automated notifications, such as order confirmations and abandoned cart emails, from the Messaging workspace. You can also create customer consent messages to capture emails and grow your marketing campaigns. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[Manage Customer Messages for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_messaging.htm&release=264.0.0&type=5)** Use the Commerce Messaging workspace to manage and tailor customer messages, such as order confirmations and welcome emails. - **[Manage Marketing Consents for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_marketing_consents_intro.htm&release=264.0.0&type=5)** Use the Commerce Messaging workspace to create customer consent messages to capture emails and grow your marketing campaigns. Marketing consents for B2B requires the CommerceMessagingAddOn license, which is packaged with Commerce Growth or Advanced editions. You'll need an enhanced CMS workspace and the refreshed Commerce app. It also requires Marketing Cloud and Data 360 and it uses Data 360 credits. Reach out to your account executive to learn more about credit usage. Marketing consents aren’t available for Reorder or Pay Now stores. # Marketing Consent Store Components Use Experience Builder to place consent components on your B2B storefront to show consents to customers. These components give customers the option to enter an email address and then consent to receiving marketing campaigns or promotional messages. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) This table outlines the components that show consents to your customers. These components render the marketing consents as you've set them up in the Messaging workspace. While configuring these components, keep these considerations in mind: - Guest access must be enabled to see the consents on the Registration page. | Component | Purpose | Store Pages | | --- | --- | --- | | Email Sign Up Form (Email Capture) | Collect customer's email address and give them the option to receive marketing messages. | Any | | Marketing Consent Settings | Give customers the ability to self-manage their consent preferences. | My Profile and Registration | #### See Also - [Manage Marketing Consents for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_marketing_consents_intro.htm&release=264.0.0&type=5 "Use the Commerce Messaging workspace to create customer consent messages to capture emails and grow your marketing campaigns. Marketing consents for B2B requires the CommerceMessagingAddOn license, which is packaged with Commerce Growth or Advanced editions. You'll need an enhanced CMS workspace and the refreshed Commerce app. It also requires Marketing Cloud and Data 360 and it uses Data 360 credits. Reach out to your account executive to learn more about credit usage. Marketing consents aren’t available for Reorder or Pay Now stores.") - [_Trailhead_: The Combined Power of Marketing Cloud Next and Agentforce Commerce](https://trailhead.salesforce.com/content/learn/modules/the-combined-power-of-marketing-cloud-and-commerce-cloud) # Mass Enable Accounts as Buyer Accounts for a B2B Store Use any tool or mechanism that can create data inside of Salesforce—for example, Data Loader, Flow Builder, or the sObject API—to enable accounts as buyer accounts. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Create Buyer Account records and set two fields: BuyerId and IsActive. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Don’t put automation on the IsBuyer checkbox on Account. Instead place your automation on creation of a Buyer Account. 2. Set the value of the BuyerId field to the Account Record Id of the Account that you want to enable as a buyer. 3. Set IsActive to `TRUE`. # May 2024 Deprecation Notification, SCAPI Features, SLAS Features For more detailed release information, see[B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). **Deprecation Notification** The following Shopper Baskets (v1 and v2) endpoints are deprecated and are no longer supported: - [addPriceBooksToBasket](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets?meta=addPriceBooksToBasket) - [getPriceBooksForBasket](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets?meta=getPriceBooksForBasket) **SCAPI Features** - The new [Preferences API](https://developer.salesforce.com/docs/commerce/commerce-api/references/preferences?meta=Summary) allows you to retrieve Site and Global preferences. - The Shopper Products API [`getCategories` endpoint](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-products?meta=getCategories) now provides the `onlineSubCategoriesCount` property. - Internal infrastructure upgrade and security updates. No customer impact is anticipated. - With B2C Commerce version 24.5, the Shopper Baskets API supports patching variations within product bundles in a single call. This enhancement provides: - More efficient and streamlined product bundle management, making it easier to update multiple variations within a bundle without the need for multiple API calls. - Increased productivity for developers managing complex product bundles. For details, see [`updateItemInBasket`](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets?meta=updateItemInBasket). **SLAS Features** - SLAS now allows shoppers to have multiple clients and authenticate on the same device with a single USID, provided the clients use their respective refresh\_tokens to refresh their sessions. - SLAS IDP integration has enhanced error handling to return more meaningful error messages to the caller. No change in error code information. - The refined error message: “The Account is disabled” is returned for any user account disabled in B2C Commerce. No change in the error code. - [Shopper Custom Object](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-custom-objects?meta=Summary) API scopes are now limited to 20 entries. This is now enforced in both SLAS API and SLAS Admin UI. - Enhanced SLAS internal error handling and log messages. - SLAS database performance improvements. No customer impact is anticipated. - SLAS internal infrastructure optimization. No customer impact is anticipated. # May 2025 SCAPI Release For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). - Completed rollout of stricter realm validation for SCAPI requests. Make sure you validate your used short codes in Business Manager, select **App Selector** | **Administration** | **Site Development** | **Salesforce Commerce** | **API Settings**. - Added [Hybrid Auth](https://developer.salesforce.com/docs/commerce/commerce-api/guide/hybrid-authentication.html) support for passwordless login. - Fully removed the deprecated x-correlation-id response header from all instance types. The header is replaced by the sfdc\_correlation\_id response header. More details see [Match Request and Response Codes with Correlation IDs](https://developer.salesforce.com/docs/commerce/commerce-api/guide/identifying-requests-and-responses.html). - SLAS now supports LINE as a 3rd party IDP. - SLAS /password/action endpoint now returns locale in the response. - For public clients, reuse of the same refresh\_token is now prohibited. You must rotate the refresh token following the process outlined in [Access Tokens and Refresh Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#access-tokens-and-refresh-tokens). To give SLAS customers time to make the necessary changes, we are strictly enforcing this restriction according to the following schedule: - For customers using the plugin-slas cartridge, upgrade to [Plugin SLAS v7.4.1](https://github.com/SalesforceCommerceCloud/plugin_slas/releases/tag/v7.4.1). - Beginning 05/20/2025, Sandbox, Staging (STG) and Development (DEV) tenant\_ids that reuse old refresh tokens will receive a 400 invalid refresh token error. - Beginning 06/24/2025, all Production (PRD) tenant\_ids that reuse old refresh tokens will receive a 400 invalid refresh token error. # May Build Summary (10.0.1) Build summary for Modern POS version 10.0.1, including what new features and changes it contains ## Overview of all Features | Theme | Feature | Benefit | | --- | --- | --- | | Core POS | [Price Levels Page in CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_0_1.htm&release=264.0.0&type=5) | New page in CMS that allows you to see all levels of pricing by Product ID | | Core POS | [Punchout: using External Service from POS](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_0_1.htm&release=264.0.0&type=5) | Ability to use an external service from the POS in the event you want to pass customer information or products into the POS. Reach out to your Customer Success Manager (CSM) for more details if this is something you're interested in. | | Core POS | [Copy Special Order Product in Cart](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_0_1.htm&release=264.0.0&type=5) | Enables you to seamlessly create multiple special product orders for custom products with similar attributes instead of having to start from scratch for each one. | | SPI | [Delivery Date Picker SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_0_1.htm&release=264.0.0&type=5) | New SPI that allows you to provide delivery dates for products by line in cart | | Payments | [Verifone Remote and In-Store Pay by Link](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_0_1.htm&release=264.0.0&type=5) | Remote and In-Store Pay by Link now available through Verifone, allowing you to transact with the customer seamlessly and meet them where they are. | | Deprecation | Native Point of Sale Tax Engine | As of 2025, support for the Native Tax Engine has been discontinued. Originally designed as a back-up tax solution and not a primary tax engine, the Native Tax Engine is no longer supported with technical updates or maintenance for any new or existing customers. To ensure uninterrupted business operations, all customers still using the Native Tax Engine must migrate to an alternative solution immediately. | | Other Feature Enhancements | [Various](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_10_0_1.htm&release=264.0.0&type=5) | Various | ## Core POS ## Price Levels Page in CMS What it does: New page in CMS that allows you to see all levels of pricing by Product ID. How to access: [CMS Link](https://labs.predictspring.com/user/login) ![The Price Levels Page in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_price_levels.png) You can view detailed pricing for each product by selecting **Price Details**. This opens a new window displaying both the product information and the available prices at the product and store levels. ![The Price Details page in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_price_details.png) Learn More: [Price Lookup Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_prince_lookup_report.htm&release=264.0.0&type=5 "View a consolidated list of products in Point of Sale to determine prices at store and product levels.") ## PunchOut: Use External Service from POS What it does: provides the ability to use an external service to pass things like customer information or products into a POS. The flow works as follows: If a command starts on the **PunchOut** web page, it sends data back to the POS app. For example, this can involve logging in as a customer or adding products to the cart. The POS app recognizes the data via the payload sent if the command starts. Other actions, such as navigating to the cart within the POS app, can also be managed this way. Reach out to your CSM for more details if this is something you're interested in. Learn More: [Supporting PunchOut Webpages on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_punchout_webpages.htm&release=264.0.0&type=5 "Integrate web-based workflows, like adding custom products, directly into store transactions using the Point of Sale (POS) app. Launch preconfigured web pages from the POS app to securely pass data and trigger actions via URL parameters. The POS app receives a message upon completion, which streamlines tasks such as customer login and cart navigation, enhancing the in-store shopping experience.") ## Copy Special Order Product in Cart What it does: easily make many special product orders for custom products with similar features instead of having to start from scratch for each one. Learn More: [Copying Special Forms on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_form_copy.htm&release=264.0.0&type=5 "Add a copy button to your custom order layout in the POS app to quickly duplicate forms. Tapping the button creates a new form with all original input values, which can be edited and is automatically added to the cart. This feature streamlines order management for store associates, especially for similar items.") ## SPI ## Delivery Date Picker What it does: With Salesforce's SPI, merchants can integrate to support retrieving delivery or pickup dates on the POS app. The POS app calls the SPI, asking for a list of available dates. It also includes details like cart products, how they are shipped, shipping addresses (if turned on), and addresses for each item that needs to be shipped. The response provides an array of dates or an error message to be shown in the POS. Delivery and pick-up dates can be set at the order level or for individual items in the cart. ![The Delivery Date selector in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_delivery_date_spi.png) How to configure SPI: [CMS Link](https://labs.predictspring.com/user/login) 1. In CMS, go to **Integrations > Custom Connectors**. 2. Create an integration by selecting **Create**. 3. Under **Connector Type**, select "**SPI**". 4. Under **Endpoint Name**, select "**DATE\_PICKER**". 5. Under **API Endpoint**, enter the URL endpoint. 6. Under **Integration Type**, select "**HTTP\_POST**". 7. Under **JSON Headers**, enter headers to be passed. 8. Save your changes. Learn More: [Retrieving Delivery & Pickup Dates via SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_retrieving_delivery_spi.htm&language=en_US) ## Payments ## Verifone Remote and In-Store Pay by Link What it does: Verifone now offers Remote and In-Store Pay by Link. Work with customers from anywhere and meet them where they are. How to configure: [CMS Link](https://labs.predictspring.com/user/login) 1. In CMS, go to **Integrations > Payment Gateways**. 2. Edit the VerifonePSDK Payment Gateway. 3. Go to **Pay By Link Configuration** and configure the fields: - **Organization ID**: Enter the merchant organization ID, which is unique for each store. This value can be found in your Verifone portal by going to "**Administration > Organization Company and Sites**". Select the company or organization's site from a table list and copy the "Organization ID". - **Pay By Link Base URL**: Enter the base URL used to construct the Pay by Link URL for making Verifone API requests. Details can be found at this [link](https://verifone.cloud/docs/online-payments/getting-started). - **Pay By Link Expiration in Hour**: Enter the expiration time for created checkout links. The minimum is one hour and the maximum is 1680 hours. - **Token Scope ID**: Enter the token scope ID to be used to tokenize card details. This value can be found in your Verifone portal by going to "**Administration > Organization Company and Sites**". Select the company or organization's site from a table list and copy the "Token Scope". Note, this value can only be found if an admin user is logged in. - **Credit Card Payment Contract ID**: Enter the credit card payment contract ID to be sent in API request for card configuration. This value can be found in your Verifone portal by going to "**Administration > Payment Provider Contracts**". Edit a contract and go to "**Payment Provider Contract ID value**". - **Gift Card Payment Contract ID**: Enter the gift card payment contract ID to be sent in API request for card configuration. This value can be found in your Verifone portal by going to "**Administration > Payment Provider Contracts**". Edit a contract and go to "**Payment Provider Contract ID value**". - **3-D Secure Contract ID**: Enter the 3-D Secure Contract ID, which is needed to secure payments in European countries where it is mandated. This field is optional for all other regions. This value can be found in your Verifone portal by going to "**Administration > 3DS Contracts**". Select the company or organization's site from a table list and copy the "3-D Secure Contract ID". - **Google Pay**: If enabled, Google Pay can be used ‌for PBL. - **Apple Pay**: If enabled, Apple Pay can be used ‌for PBL. 4. Go to Connectivity and Authentication and configure the fields: - **User ID**: Enter user ID to be used in API request for authentication. This user ID is the admin of the merchant site organization for which pay-by links are created. This value can be found in your Verifone portal, select **API Keys** under **Profile**, and select ‌the first four letters of the API Key from the list. Copy the User ID. - **API Key**: Used in API request for authentication and created from the user ID in Verifone portal. This value can be found if creating a new API key. Copy and save the key as closing the dialogue after creating the key doesn't fully show the key again. ![The Pay by Link settings in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_verifone_pbl.png) Learn More: [Pay by Link (PBL) Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_retrieving_delivery_spi.htm&language=en_US) ## Other Feature Enhancements | Title | Description | Help Center Link | | --- | --- | --- | | Tipping on Returns | If you accept tips, we now show the tip information on the return screen. This makes it easier to see and track the amount of tips that are returned on an order. | [Support Tipping on Adyen Terminals](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_tipping_adyen_terminals.htm&release=264.0.0&type=5 "Allow customers to provide tips during checkout using Adyen terminals in the Retail Cloud Point of Sale (POS) app, which enhances the payment experience.") | | France Fiscalization 2024 Certification | Completed our annual fiscalization certification for France | [Fiscalization](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_requirements_for_france.htm&release=264.0.0&type=5 "Confirm that your Point of Sale (POS) or cash register system in CMS meets criteria like inalterability, security, data retention, and archival.") | # May Build Summary (11.0.1) Build summary for Modern POS version 11.0.1, including what new features and changes it contains. | Feature | Benefit | | --- | --- | | **API / SPI** |   | | [Capture POS App Crashes Using a Webhook](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_0_1.htm&release=264.0.0&type=5) | Send real-time crash reports from the POS app to your monitoring systems using a webhook integration. | | [Track POS App Vitals Using a Webhook](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_0_1.htm&release=264.0.0&type=5) | Monitor key app health metrics—like connectivity and device status—through a vitals webhook. | | [Apply Loyalty Rewards as a Tender](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_0_1.htm&release=264.0.0&type=5) | Permit customers to use loyalty rewards to pay for purchases directly at checkout. | | **Cart** |   | | [Support Serialized Products in Punchout Webviews](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_0_1.htm&release=264.0.0&type=5) | Add support for serialized product identifiers like EPC or serial numbers in punchout flows. | | **Core Platform** |   | | [Control Product Window Visibility Using Product Attributes](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_0_1.htm&release=264.0.0&type=5) | Configure whether the product window appears after scanning, based on product-specific attributes. | | [Maintain Synchrony PCI Compliance with Custom Finance Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_0_1.htm&release=264.0.0&type=5) | Use customizable POS forms to securely collect customer details for Synchrony financing. | | **Payments** |   | | [Enhanced UI/UX for Card Payment and Failure Windows](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_11_0_1.htm&release=264.0.0&type=5) | Improve the customer experience with updated modals for card entry and payment errors. | ## API / SPI ## Capture POS App Crashes Using a Webhook What it does: Automatically log crash events to your monitoring tools. You can detect and resolve issues faster, reduce downtime, and improve system reliability. This establishes a smoother in-store experience for associates and customers. How to configure in CMS: 1. In CMS, go to **Store Management > Integrations > Custom Connectors**. 2. Select **Create**. 3. For **Connector Type**, select "**Webhook**". 4. For **Endpoint Name**, select "**POS\_CRASH\_DATA - Crash Event**". 5. For **API Endpoint**, provide an external endpoint for the webhook. 6. For **Integration Type**, select or enter the type of integration (for example "**HTTP\_POST**"). 7. Under **JSON Headers**, provide a header for the API. ![The POS\_CRASH\_DATA API endpoint set in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_pos_crash_data.png) Learn more: [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html) ## Track POS App Vitals Using a Webhook What it does: Establish consistent POS performance across all stores with real-time visibility into key health metrics. Proactive monitoring of issues like connectivity problems and device failures empowers IT and support teams to address disruptions before they impact customers. Use the vitals webhook to track critical app health data, including connectivity and device status. How to configure in CMS: 1. In CMS, go to **Store Management > Integrations > Custom Connectors**. 2. Select **Create**. 3. For **Connector Type**, select "**Webhook**". 4. For **Endpoint Name**, select "**POS\_VITALS - POS Vitals**". 5. For **API Endpoint**, provide an external endpoint for the webhook. 6. For **Integration Type**, select or enter the type of integration (for example "**HTTP\_POST**"). 7. Under **JSON Headers**, provide a header for the API. ![The POS VITALS API endpoint set in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_pos_vitals.png) Learn more: [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html) ## Apply Loyalty Rewards as a Tender What it does: Provide a ‌way to redeem earned rewards. This drives repeat purchases and increases customer engagement. Additionally, it simplifies the checkout process and enhances the value of your loyalty program. ![The Available Rewards window in the POS app with a reward highlighted and the Apply Selected Rewards button at the bottom.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_clienteling_select_loyalty_reward.jpg) How to configure in CMS: No configuration needed as this is the default behavior. Learn more: [Point of Sale Loyalty Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_clienteling_loyalty_overview.htm&release=264.0.0&type=5 "Point of Sale supports loyalty integration. This integration facilitates the search for loyalty customers within the app, and shows and applies available rewards to the cart.") ## Cart ## Support Serialized Products in Punchout Webviews What it does: Improve tracking and validation of individual product units, especially for high-value or compliance-sensitive items. Verify accuracy in fulfillment and returns, while helping maintain inventory integrity and preventing fraud. ![The Serial Number Scan window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_serial_num_scan.png) How to configure in CMS: No configuration needed as this is the default behavior. Learn more: [Supporting PunchOut Webpages on POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_punchout_webpages.htm&release=264.0.0&type=5 "Integrate web-based workflows, like adding custom products, directly into store transactions using the Point of Sale (POS) app. Launch preconfigured web pages from the POS app to securely pass data and trigger actions via URL parameters. The POS app receives a message upon completion, which streamlines tasks such as customer login and cart navigation, enhancing the in-store shopping experience.") ## Core Platform ## Control Product Window Visibility Using Product Attributes What it does: Offer flexible financing options while maintaining PCI compliance using customizable POS forms for secure data collection. These forms permit you to gather the necessary customer information for credit authorization without storing sensitive data directly. This feature enhances the customer experience by streamlining the application process and establishing a simple transaction. ![THe Product Scanned window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_prod_window_scanned.jpeg) How to configure in CMS: 1. In CMS, go to **Apps**. 2. Select the app configuration for which you want to customize the product window. 3. Select **Edit**. 4. Go to **Modules > Barcode**. 5. Edit the **Display Scanning Modal Based on Product Attributes** setting. 6. Select a product attribute, such as **ListPrice**. 7. Select an operator, such as **\>=**. 8. Enter a value, such as **100**. If the product attribute is set to **ListPrice**, with the operator being **\>=** and a value of **100**, the product window is displayed if the scanned product’s list price equals or exceeds **100**. 9. Select **Set** and save your changes. 10. Open the POS app and scan a product. If the product’s attributes match the condition, the product window appears, with options to add the product to the cart or view details. If you select **Details**, you're directed to the product's PDP. If the product’s attributes don't match the configuration, you don’t see the product window at all and are directed to the product’s PDP. Learn more: [Control Product Window Visibility Based on Product Attributes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_settings_prod_window_visbility.htm&release=264.0.0&type=5 "In the POS app, the product window offers two options, adding the product to the cart and viewing the Product Display Page (PDP). Using the CMS, you can configure whether or not the product window appears when you scan a product. This is based on conditions you set by using the product’s attributes.") ## Maintain Synchrony PCI Compliance with Custom Finance Layouts What it does: Streamline the checkout process by configuring the product window to appear only if needed. Based on product-specific attributes, the product window only displays if product details or actions are required. This reduces friction and accelerates transactions, enhancing the customer experience. How to configure in CMS: 1. Create and configure a finance tender layout in CMS. 2. Assign a finance tender layout to an app configuration: 3. In CMS, go to **Apps**. 4. Select the active app configuration used in stores that support financing. 5. Select **Edit**. 6. Go to **Modules > Cart**. 7. Edit **Finance Tender Layout** and select a layout. 8. Save your changes. ![A screenshot shows the layout for a finance form with the option to apply.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_synchrony_finance_form_layout.png) Learn more: [Create a Finance Form Layout for Synchrony](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_synchrony_finance_form.htm&release=264.0.0&type=5 "To maintain Payment Card Industry (PCI) compliance with Synchrony, add a finance tender form to your Point of Sale CMS.") ## Payments ## Enhanced UI/UX for Card Payment and Failure Windows What it does: The redesigned payment flow offers a more intuitive and visually clear experience for both associates and shoppers. Clearer messaging and an improved layout reduce confusion during card entry and help resolve payment errors faster. This leads to a more efficient payment process, ultimately decreasing abandoned transactions and improving customer satisfaction. ![The Follow Terminal Instructions to Complete Payment window in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_ui_payment_failures.png) How to configure in CMS: No configuration needed as this is the default behavior. # May Build Summary (9.0.1) Build summary for Modern POS version 9.0.1, including what new features and changes it contains. ## Overview of all Features | **Theme** | **Feature** | | --- | --- | | Core POS | [Create Quote from Cart](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_0_1.htm&release=264.0.0&type=5) | | Core POS | [Non-Receipted Return Lowest Price Calculation](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_0_1.htm&release=264.0.0&type=5) | | Omnichannel | [Multiple Shipping Methods in POS Checkout](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_0_1.htm&release=264.0.0&type=5) | | Omnichannel | [OCI connection for getting availability by product](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_0_1.htm&release=264.0.0&type=5) | | Promotions | [Free Sample Enhancements](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_0_1.htm&release=264.0.0&type=5) | | Various Feature Enhancements | [Additional feature enhancements to existing features](https://help.salesforce.com/s/articleView?id=commerce.rt_releases_bfs_9_0_1.htm&release=264.0.0&type=5) | ## Core POS ## Create Quote from Cart **What it does -** For app builds less than 9.0.1, a quote can only be created via Suspended Carts. However, Point of Sale now allows the creation of quotes directly from the cart instead. Merchants can take advantage of this feature enhancement to generate quotes more efficiently by adding a deeplink to their cart layout. **How to Configure -** [https://labs.predictspring.com/cms/layouts](https://labs.predictspring.com/cms/layouts) - In CMS, go to **Layouts > Layout Pages**. - Create a new **Cart Options** layout or edit an existing one. - Add a new tile for the deep link. - In the right toolbar menu, go to **Deep Link > More > Create Quote From Cart**. - Set and save your changes. ![The Create Quote from Cart section in Point of Sale CMS](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_quote_from_cart.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Creating a quote from the cart will log a new event in the Electronic Journal for “**Quote Created**" **Learn More:** [Creating & Managing Customer Quotes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_create_manage_customer_quotes.htm&release=264.0.0&type=5 "Merchants can create and track customer quotes on the POS app. Each quote has a unique number and includes customer information. Store associates can work with customers on merchandise and pricing, either in-store or over the phone, and then email the quote for review or print it on A4 paper. Customers can save the quote, delete it, or complete the checkout process.") ## Non-Receipted Return Lowest Price Calculation **What it does -** Non-Receipted Return aka NRR price is calculated based on the following criteria in the specified order: Store Historical Prices, Product Multi Region Historical Prices, and Product Historical Prices. When the lowest price is found, for a given number of days, that price is returned as the NRR lowest price. Previously, only product historical prices were used to calculate the NRR lowest price. **How to Configure -** [https://labs.predictspring.com/cms/server-settings-v2/pos/advanced](https://labs.predictspring.com/cms/server-settings-v2/pos/advanced) - In CMS, go to **Store Management > Store Settings > Advanced**. - Under **Tender types for returns without receipt**, the value that is set must have at least one tender type to start collecting the historical prices (for example, Cash). After this is set, for any subsequent feed runs, products start collecting the price history on a day-to-day basis. This also applies to file uploads via Manual Upload. - Under **Lowest price period in days**, set the number of history days to compare prices (for example, 7). The default is 5 days. ![Configuring the lowest price period, in days, in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_lowest_price_period.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note A price of 0 is not considered the lowest price. While looking for the lowest price, if the system does not find a price greater than 0, then no NRR price is returned. **Learn More** \- [NRR Lowest Price Calculation](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_low_price_calculation.htm&release=264.0.0&type=5 "Point of Sale calculates the lowest price based on these criteria: Store Historical Prices, Product Multi-Region Historical Prices, and Product Historical Prices. When the lowest price is found for a given number of days, that price is returned as the NRR lowest price.") ## Omnichannel ## Multiple Shipping Methods in Cart **What it does -** You can now provide multiple shipments in a single order to customers. Merchants can configure the shipping methods in CMS by referring to Shipping Methods, which will be available at the item-level in the cart. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This feature is not supported when the [External Shipping Provider](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_shipping_methods_on_pos_app.htm&release=264.0.0&type=5 "Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls.") flag is turned on. **How to Configure -** 1) In CMS, allow multiple shipments per cart/order - [https://labs.predictspring.com/cms/server-settings-v2/pos/store-fulfillment](https://labs.predictspring.com/cms/server-settings-v2/pos/store-fulfillment) ![The Allow multiple shipments per cart/order setting turned on in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_omni_multi_shipments.png) 2) Update receipt layouts with new Ship Method Name and Item Level Ship Method tags - [Print Tags Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_config_print.htm&release=264.0.0&type=5 "Print tags are placeholder strings that dynamically display data in Point of Sale layouts. Add print tags to native or HTML text overlays to display information such as order totals, customer names, or store details. You can also use print tags in certain app-level settings.") **What it looks like -** ![The POS app showing a cart with multiple shipping methods available for each item.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_multiple_ship_methods_pos.png) **Learn More -** [Omnichannel: Multiple Fulfillment Types per Cart (Mixed Cart)](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_multiple_fulfillment_types.htm&release=264.0.0&type=5 "Allows items in the cart to have multiple fulfillment types in a single order with Point of Sale's Omnichannel solution.") ## Salesforce Live Inventory Integration with OCI **What it does -** This is a native integration with Salesforce Omnichannel Inventory (OCI) to do live inventory checks for online orders. The Point of Sale integration to OCI supports fulfillment from specified stores. Checks will run when items to be fulfilled online are added to the cart or the fulfillment type is changed. The app will check the desired amount against the available to order (ATO) quantity for a live indication of availability. **How to Configure -** - Ensure your inventory management controls are in place and set up according to your business rules [Inventory Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_mgmt.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow customers to manage inventory across stores, online, and digital warehouses."). - Go to **Apps > All** and edit the app config you wish to enable OCI. - Go to **Modules > Settings** and disable the flag, **Online Inventory**. If it's enabled then Feed data will be used to 'check' online inventory instead of OCI. ![The Online Inventory flag in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_online_inventory_check.png) - Back in CMS, go to **Store Management > Store Settings > Inventory**. - Turn on **Enable PredictSpring inventory management to track online inventory**. ![The Enable inventory management to track online inventory setting in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_track_inventory_online_cms.png) - Back in CMS, go to **Inventory > Inventory Configurations.** - Create or edit a configuration by referring to [Live Inventory](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_live_inventory_check.htm&language=en_US). ![The edit configuration section of the Advanced screen in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_live_inventory.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This does not create a reservation for inventory. That is a separate functionality that will need to be configured, please refer to [Live Inventory](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_live_inventory_check.htm&language=en_US). ## Promotions ## Free Sample Rules **What it does -** Configure rules to specify which products will be free samples in the promotion. This can be configured when creating a _Free Samples Promotion_. **How to Configure -**[https://labs.predictspring.com/cms/promotion-v2/create/FREE\_SAMPLES](https://labs.predictspring.com/cms/promotion-v2/create/FREE_SAMPLES) Under **Free Sample Rules**, set the quantity, attribute, operator, and value(s) that you wish. Quantity indicates the maximum amount of free samples allowed in an order (default is 1). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note All rules must be met to activate the Free Samples promotion in the POS app. If you wish to always set a product as "Free", consider adding an Order rule where the Order Total is >= 0. ![The Free Samples promotion section of Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_free_samples.png) ## Other Feature Enhancements
Title Description Helpcenter link if applicable
Reason Code for Price Correction in json tLog For app builds 9.0.1 and greater, the Price Correction Reason Code will be recorded not only in the Electronic Journal but also in the TLog. It will include the existing price and the corrected price. This is supported both online and offline. Reason Codes
Remove the ENTER STORE button on the POS launch page For app builds 9.0.1 and greater, you must enter your login credentials in order to interact with the POS app. After the initial login, you can be logged out if the app timeouts but still have limited access. In order to have full access to the POS app, you'll need to re-login. Activating POS App
Product Cell Configurations - Interstitial, Inventory, and BOPIS Configuring Product Display Labels
Reason Code for Price Correction in json tLog For app builds 9.0.1 and greater, the Price Correction Reason Code will be recorded not only in the Electronic Journal but also in the TLog. It will include the existing price and the corrected price. This is supported both online and offline. Reason Codes
France - Fiscal Certification We are now re-certified for 2023 Fiscalization Requirements for France
Large Cycle Count Greater support for cycle counts with large data sets Cycle Counts Overview
ASN Receiving - Pause and Resume Functionality Enhanced ASN receiving by adding the Pause and Resume functionality. When receiving by ASN, once the pallet ID is scanned and the cartons/cases are displayed on the screen, the associate will have the ability to pause the session on the POS and then continue at a future time. New status introduced for "Partial" Paused state in ASN Report and Inventory Transfers in CMS. Managing Inventory: Advanced Shipping Notice (ASN) Receivings
Corp Transfer Cancellation at Store Point of Sale offers the ability to cancel corporate transfers in two places, CMS and POS app. Managing Inventory: Corporate Transfers (CTS)
Warning for Invalid Carton A warning when an invalid Pallet/ Carton is scanned will now be displayed in App.
Offline Store Level Pricing Feed - flag controlled in CMS New deeplink available in CMS which allows you to check if your feeds are ready for offline mode. Corporate Transfers
Offline - search for Products for Returns A customer can still process a return without their original receipt. For app builds less than 9.0.1, a customer can initiate a return by scanning an item. For app builds 9.0.1 and above, you can now scan, manually enter, and search catalogs as well. Offline Returns
Best Price Promo Enhancement - Online and Offline For app builds 9.0.1 and greater, Point of Sale has enhanced the feature so that the ordering of the promotions and products will not have an impact on applying Best Price Wins. This is supported in both online and offline modes. Promotions
New receipt tags for Ship Method Name and Item Level Ship Method

:ps_p_shipping_method_name

The item-level shipping method name of a product

:ps_p_shipping_method_ETA

The item-level shipping method delivery estimate of a product

Print Tags Configuration

# Media Deep Links Explore a detailed list of Point of Sale media deep links, each with a clear description and supported context. Links include features for Vimeo, YouTube, and other video links. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.
Deep Link Description Supported Context
Video URL

Supported with the following three options:

  • URL
  • mobile-config-setting.png Play In Place
  • Audio Behavior
Layouts
Vimeo

Vimeo settings must be set in your mobile configuration to use Vimeo videos.

Note
Note Please enter the video ID and not the full URL.
Layouts
YouTube For most YouTube links, you can simply paste the link and the video ID will be extracted. Layouts
# Media Library The Media Library allows you to upload images and videos or reference them using a URL, enabling seamless integration into the Modern POS UI for a visually engaging user experience. This feature enhances the layout editor, making it easy to create dynamic and appealing interfaces. ![The Media Library main interface showing a gallery of image thumbnails.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_layouts_settings_media_library.png) #### See Also - [_Salesforce Help:_ Insert a Video Using a URL](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_settings_insert_video.htm&release=264.0.0&type=5 "The Point of Sale Media Library lets you seamlessly integrate externally hosted videos into your POS app layout, enhancing the user experience and providing dynamic content. This feature allows for easy updates and consistent branding across all retail touchpoints.") ## Open the Media Library To use the Media Library in a layout editor, click **Media** in the toolbar. ## Upload Images 1. You can upload assets by dragging and dropping them onto the Media Library, or by clicking **Add Image** to the top right of the screen. 2. If using **Add Image**, you have the option to add it using local upload or by inserting an URL. When using a URL, the CMS will display the image to show the layout, but it doesn't store the image elsewhere (for example, it isn't cached). Additionally, if the URL no longer points to an image, an empty cell will be displayed. ## Select Images 1. When you select an image, the selection is indicated by a checkmark in the upper right of the thumbnail. You will have the option to either **Select Asset** or **Select Deep Link**. 2. **Select Asset** - This will allow you to set the image you've selected. 3. **Select Deep Link** - This will allow you to assign a deep link to the image. For more information on deep links, refer to [Cell Configuration in Layouts](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_manage_cell_config.htm&release=264.0.0&type=5 "Learn about the different ways that cells can be configured in Point of Sale layouts with content and interactive behavior."). ## View Details of an Image Clicking on the information icon by hovering over an image will bring up a pop-up that will display that image’s metadata. Information such as uploaded by, size, and the link to the image can be found here. ## Delete Images 1. Clicking on the blue trash icon to the top right of the screen will delete the selected Images. 2. Alternatively, you can also hover over the image and click the trash icon to delete it. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important You can only delete images that aren't used in a layout or notification. ## Search for Images You can search by entering a search term into the search field. The search will return results by searching by filename, uploader user ID, and folder name. Therefore, naming your files with descriptive names can greatly improve your search results. ## Folders The Media Library supports folders. Folders can help you organize your assets. ## The Special “All” Folder All assets belong to a special folder called “All”. When you first bring up the Media Library, it will display the contents of this folder. If you move an asset to a named folder other than “All” that asset will still appear in the “All” Folder. The “All” folder can't be removed. ## Create Folders To create a folder, click **Create New Folder** and enter a folder name. You can't create a folder if that folder name is in use. Folders aren't case-sensitive, so you can't create the folder “Backup” if “backup” exists. ## Edit a Folder's Name and Delete a Folder 1. Clicking on a Folder’s edit button will allow you to edit the folder’s name. 2. You can save your new folder's name by clicking on the pencil icon to the right or delete it by clicking on the trash icon. All images in the folder will still appear in the renamed folder. ## Move Images to a Folder 1. Select the images. 2. Click on the blue folder icon to the top right of the screen. 3. Select the folder and click **Move**. # Merchant Account Considerations for Adyen and Stripe Before you configure merchant accounts in a B2B Commerce or Pay Now store, understand how your Salesforce org type determines whether you use live or test accounts for Adyen and Stripe. ### Required Editions
View supported editions.
## How Org Type Determines Account Type Production orgs use live merchant accounts, which process real transactions. Use live accounts in production only. Don't use live accounts for testing or development, except for a few final validation transactions just before you go live. Non-production orgs, such as Developer Edition orgs and sandboxes, use test merchant accounts. Test accounts don't process real funds. You can't switch a merchant account between test and live mode, and you can't promote a merchant account from a non-production org to production. Create separate test accounts for your non-production orgs and a live account for your production org. ## Adyen Adyen uses separate infrastructure for test and live merchant accounts, which is why you can't switch an account between modes. ## Stripe Salesforce Payments doesn't support Stripe sandbox accounts. To onboard a live Stripe merchant account, provide accurate business and customer information. Test accounts don't require verification, so you can submit any information during onboarding. #### See Also - [Salesforce Payments Merchant Accounts and Payment Methods](https://help.salesforce.com/s/articleView?id=commerce.payments_merchacct_pms_overview.htm&release=264.0.0&type=5 "To use Salesforce Payments as your payment service, configure a merchant account and add payment methods to that account. If you are using Payments with a B2B, D2C, or Pay Now store, complete these tasks when you configure store checkout. If you are using Payments independent of any store configuration, complete these tasks from the Payments app.") # Merchant Account Record Access and Sharing Maintain strong data access controls by allowing merchant account access to only relevant users. Different merchant accounts can help organize your business by different regions and currencies. Dividing merchant account ownership limits access, which improves security. Ensuring the right people in each geography have necessary account access helps with issues such as regulatory compliance. To distribute responsibilities, merchant account owners can configure sharing on a per-record basis so payment processing runs smoothly. ### Required Editions
View supported editions.
When you set up merchant accounts, the owner of the account automatically gets access to the account’s payment intent records. The owner can share access with other users, who can manage transactions if needed. For example, Sid owns three merchant accounts for the UK, and his two-month leave begins soon. Sid shares the merchant accounts he owns with Ashley. Now, all the payment intent records for those three merchant accounts are automatically shared with Ashley, who can manage them in Sid’s absence. If needed, Ashley can share the records with another colleague. There are two ways to apply sharing—manually or with sharing rules. Manual sharing gives specific users access to certain types of records, and it’s configured at the individual merchant account object record. Sharing rules extend sharing access to users in public groups, roles, or territories, and they give particular users greater access by making automatic exceptions to your org-wide sharing settings. Sharing rules are configured from Setup in **Sharing Settings**. #### See Also - [Sharing Rules](https://help.salesforce.com/s/articleView?id=platform.security_about_sharing_rules.htm&type=5&language=en_US) - [Manual Sharing](https://help.salesforce.com/s/articleView?id=platform.security_about_sharing_rules.htm&type=5&language=en_US) # Merchant Configuration and API Integration Fields Merchants in the CMS have key properties such as their name, locale, region, and currency support. Using Cloud configuration details, Point of Sale connects to the merchant's e-commerce platform. View the merchant's developer credentials, API keys, and related API usage details for efficient API management. You can also determine if the environment is active and if it's a store merchant. ## Merchant Configuration Fields Admins can refer to the Merchant Configuration page in Point of Sale CMS to review general, checkout, and region settings for a merchant. Access Merchant Configuration in CMS by going to Advanced > Merchant Configuration. ### General Settings The General Settings fields define core merchant environment settings, including merchant activation and currency code. | Field | Description | | --- | --- | | Merchant Name | Name of the merchant | | Is Active | Activates the merchant account | | Logo Image URL | URL of the merchant’s logo | | Currency Code | Merchant's currency code | | Deeplink URL Scheme | Merchant's deep link URL scheme | | PS API Key | Point of Sale API key of the merchant | | Default Merchant | Toggle to set current merchant's locale and region as the merchant default. Otherwise, en\_US/US will be used as the default. | | Has Pagerduty Check | Point of Sale backend enables this toggle only if the merchant is going live, sending PageDuty alerts | | Parent Group | Merchant parent name for merchants belonging to a parent group | | APNS\_PRODUCTION\_ARN | Merchant production notification Amazon Resource Name (ARN), used to uniquely identify AWS resources | | FCM\_PRODUCTION\_ARN | Firebase Cloud Management production notification ARN | ### Checkout Settings The Checkout Settings fields cover security settings, API configurations, custom implementations, and the automation of various parameters, including API paths and content types.
Field Description
Add to Cart Request path, toggled on if the path is secure
Add to Cart Request Parameters Cart Request parameters, if applicable, configuration is to be done by Point of Sale backend
Response Cookie List List of cookie names expected in the merchant backend API responses, if applicable, configuration is to be done by Point of Sale backend
Response Header List An array of header keys expected in the merchant backend API responses, if applicable, configuration is to be done by Point of Sale backend
customCartImplClass

The classpath for the merchant custom cart implementation is automatically populated by the Point of Sale backend. If you are integrating with NetSuite, you will need to update the URL accordingly.

Below is an example of the URL format for a NetSuite integration:

NetSuite: com.predictspring.integration.netsuite.NetSuiteCartService

customOrderImplClass

The classpath for the merchant custom order implementation is automatically populated by the Point of Sale backend. If you are integrating with NetSuite, you will need to update the URL accordingly.

Below is an example of the URL format for a NetSuite integration:

NetSuite: com.predictspring.integration.netsuite.NetSuiteOrderService

customAccountDataImplClass

The classpath for the merchant custom account data implementation is automatically populated by the Point of Sale backend. If you are integrating with NetSuite, Salesforce, or SPIs, you will need to update the URL accordingly.

Below are examples:

  • NetSuite: com.predictspring.integration.netsuite.NetSuiteAccountDataService
  • SF OMS: com.predictspring.integration.sf.SalesForceAccountDataService
  • SPI: com.predictspring.integration.spi.service.SpiAccountDataService
customAccountImplClass

The classpath for the merchant custom account implementation is automatically populated by the Point of Sale backend. If you are integrating with NetSuite, Salesforce, or SPIs, you will need to update the URL accordingly.

Below are examples:

  • NetSuite: com.predictspring.integration.netsuite.NetSuiteAccountService
  • SF OMS: com.predictspring.integration.sf.SalesForceAccountService
  • SPI: com.predictspring.integration.spi.service.SpiAccountService
API Root Path API root path, if applicable, Point of Sale backend will auto-populate this field
Request Content Type Request content type, if applicable, Point of Sale backend will auto-populate this field
Referer Referer, if applicable, Point of Sale backend will auto-populate this field
Multi Locale Support Multi-locate support, if applicable, Point of Sale backend will auto-populate this field
Store URL Store's website URL, if applicable, Point of Sale backend will auto-populate this field
oAuth Host oAuth hostname, if applicable, Point of Sale backend will auto-populate this field
Client Secret Client secret, if applicable, Point of Sale backend will auto-populate this field
Partner ID Partner ID, if applicable, Point of Sale backend will auto-populate this field
Custom Attributes Json Custom attributes JSON, if applicable, Point of Sale backend will auto-populate this field
### Merchant Region Configuration The Merchant Region Config settings cover region creation and management, including locale, currency, and language configurations. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Only users with CMS Admin roles can create MLRs. Click +Add New to create a new MLR. | Field | Description | | --- | --- | | Region | For a new MLR, two-letter country code for the region | | Currency | For a new MLR, three-letter currency code for the region | | Default Language | For a new MLR, primary language code for the region | | Multi-Language Support | For a new MLR, enable if the region supports multiple languages | | Additional Language(s) | For a new MLR with multi-language support enabled, list of additional supported language codes | ## API Integration Fields Discover details of the developer credentials and API usage settings for a merchant configuration in the CMS. Access API Integrations in CMS by going to Advanced > API Integrations. ### Developer Credentials The Developer Credentials fields are auto-generated when a merchant is provisioned. They are not editable and are used as part of the [Point of Sale API Developer Guide](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-developer-guide.html). ![A configuration screen shows developer credentials settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_pay_gate_merch_config_api_fields_dev_cred.png) | Field | Description | | --- | --- | | Client ID | Required to generate OAuth tokens for the PredictSpring-Token header | | Client Secret | Required to generate OAuth tokens for the PredictSpring-Token header | | Merchant API Key | Merchant API key | | PredictSpring Secret | Point of Sale API secret | ### API Usage The API Usage Settings fields aren't editable and are used for API management. They encompass the monthly request limit, usage tracking, rate regulation per second, and burst handling for unexpected surges for a merchant environment. ![A configuration screen shows API usage settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_pay_gate_merch_config_api_fields_api_use.png) | Field | Description | | --- | --- | | Quote | Maximum number of permitted API requests per month | | Remaining Quota | Number of API requests remaining for current month | | Rate Limit | Maximum number of API requests allowed per second | | Burst Rate Limit | Maximum number of API requests allowed in a burst that exceeds API rate limit | # Merchants Can Assign Multiple Products to a Category Merchants can assign more than products to a category. Previously, if a merchant used the Edit All option to assign more than ten products to a category, using Finish: Go to Batch Process, only the top ten products were assigned. # Merge Baskets Consistently with One Script Use the same merge script across controller and REST API implementations by invoking the new dw.order.mergeBasket business hook. Invoke the hook by using either the transferBasket endpoint and the merge=true parameter or the HookMgr in a controller. The dw.order.mergeBasket business hook unifies discrepancies between controller and REST API merging strategies. Replace your previous merging methods with the new business hook. **Where:** This change applies to B2C Commerce. #### See Also - [SCAPI Release](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html#09172025) - [transferBasket](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets-v2?meta=transferBasket) - [Hybrid Authentication](https://developer.salesforce.com/docs/commerce/commerce-api/guide/hybrid-authentication.html) # Merge Variation Group Results Use the new merge global display setting in Business Manager to group the results of product variations and search hits as a single product hit. The setting applies to the site search and category level, including category fallback. How: In Business Manager, navigate to **Global Preferences** | **Feature Switches**, and select **Enable merged/individual display setting for Variation Groups**. #### See Also - [Configure Variation Groups Display Mode](https://documentation.b2c.commercecloud.salesforce.com/DOC1/index.jsp?topic=%2Fcom.demandware.dochelp%2Fcontent%2Fb2c_commerce%2Ftopics%2Fproducts%2Fb2c_configure_variation_groups_display_mode.html) - [Managing Variation Groups](https://documentation.b2c.commercecloud.salesforce.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2Fcontent%2Fb2c_commerce%2Ftopics%2Fproducts%2Fb2c_managing_variation_groups.html) # MFA Verifier Allows Non-Ascii Characters You can now use non-Ascii characters, such as ü, in the MFA Verifier display name. Previously, using these characters prevented user updates. # Migrate a B2B Store Configuration After you configure your store, you can migrate its configuration to a new environment, for example, from sandbox to production, by creating a change set. The change set includes the store’s metadata, such as descriptions, localization, pricing, and search settings. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Sending a change set between two orgs requires a deployment connection. You can send sets only between orgs that are affiliated with a production org. For example, a production org and a sandbox, or two sandboxes created from the same org, can send or receive change sets. For more information, see [Deployment Connections for Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets_about_connection.htm&type=5&language=en_US). 1. Export the store that you want to migrate. 1. In the navigation sidebar, select a store from the **Store** dropdown. 2. Select **Settings** | **Store**. 3. In the Store Migration section, under Export Store Configuration, click **Export**. 2. Create an outbound change set. 1. In Setup, in the Quick Find box, enter change sets, and select **Outbound Change Sets**. 2. Click **Continue**, and then click **New**. 3. Add a name and description for your change set, and click **Save**. 4. Under Change Set Components, click **Add**. 5. For Component Type, select **Site.com**. 6. Select the store that you want to migrate, and click **Add to Change Set**. 7. Click **Add**, and for Component Type, select **Store Configuration**. 8. Make sure that your store is still selected, and click **Add Change Set**. 3. Apply the store configuration to a new environment. 1. Go to the environment where you want to migrate the store configuration. 2. In Setup, navigate back to Change Sets, and select **Inbound Change Sets**. 3. Click **Continue**, select the change set that you created, and click **Deploy**. 4. Navigate to the Commerce app navigation menu and select a store from the **Store** dropdown. 5. Select **Settings** | **Store**. 6. Under Apply Store Configuration, click **Apply**. 7. Select the store configuration, and click **Apply**. #### See Also - [Store Management](https://help.salesforce.com/s/articleView?id=commerce.comm_manage_stores.htm&release=264.0.0&type=5 "Manage stores more efficiently using workspaces. Expand the reach of your store by enhancing language and currency support. Create and manage promotions to increase buyer incentive. Migrate store configurations, create custom reports, and manage existing integrations. Set up the emails that shoppers and buyers receive when they place an order, and what they see when your site isn’t available. Review the steps required to use Omnichannel Inventory with B2B stores.") # Migrate a Nonenhanced LWR Commerce Store to a New Salesforce Org Starting in Winter ’24, all new stores are built on enhanced LWR sites. If you have a store built on a nonenhanced LWR site, you can migrate that store to production or to another org. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Deploy a nonenhanced site using MetaData API. See [Deploy Your Experience Cloud Site with the Metadata API](https://developer.salesforce.com/docs/atlas.en-us.communities_dev.meta/communities_dev/networks_migrating_from_sandbox.htm). 2. Create a store on the new site. See [Add a B2B Store to an Existing Experience Cloud Site](https://help.salesforce.com/s/articleView?id=commerce.comm_create_store_on_site.htm&release=264.0.0&type=5 "Reuse your Exprerience Cloud site’s domain, settings, branding, and styling to maintain a consistent look and feel. The site template, pages, components, and navigation stay the same. After you add the store, you can design your commerce experience using your commerce pages and components."). 3. To delete the webstore-to-CMS connection for the new store, contact Salesforce Customer Support. Deleting this connection allows you to import media from a non-enhanced CMS workspace. 4. Create a nonenhanced CMS workspace using the Digital Experiences app. See [Create a CMS Workspace](https://help.salesforce.com/s/articleView?id=xcloud.cms_cmsworkspace-create.htm&type=5&language=en_US). When you create the workspace, select **CMS Workspace**, not **Enhanced CMS Workspace**. 5. Rebuild your store. When you import to the new store, select the nonenhanced CMS workspace that you created. # Migrate Deprecated Custom Jobs to Step-Based Jobs Use the new migration tool to convert your deprecated custom jobs to step-based jobs. Previously, migrating deprecated custom jobs required long development times. The migration tool is available on the Jobs Details page for jobs running on the deprecated framework. #### See Also - [Migrate a Legacy Job](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/jobs/b2c_migrate_legacy_jobs.html?cp=0_6_15_5_4) # Migrate Point of Sale Connected Apps to the Client Credentials Flow Migrate your existing Point of Sale connected app from the OAuth username-password flow, which Salesforce is deprecating, to the client credentials flow. You need admin access to each Salesforce org where Point of Sale uses the flow. 1. In the org that hosts your connected app, turn on **Enable Client Credentials Flow**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note You turn on **Enable Client Credentials Flow** only one time. The change can take a few minutes to propagate before you apply the run-as user. For the detailed Salesforce Platform steps, see [Migrate from OAuth Username-Password to Client Credentials Flow](https://help.salesforce.com/s/articleView?id=000886201&type=1&language=en_US) in Salesforce Help. 2. Apply a run-as user in each org where Point of Sale uses the OAuth username-password flow. The run-as user is the user whose username your client previously used with the OAuth username-password flow. 3. In the Point of Sale CMS, go to **Store Management** | **Store Settings** | **System** | **Rollout**, and turn on the **Enable Connected App client\_credentials OAuth flow** setting. ![The Enable Connected App client\_credentials OAuth flow setting turned on in the Rollout section of the Point of Sale CMS System settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_sf_int_ccf_migrate_rollout_toggle.png) 4. Create or save your OMS and CRM configurations again so that Point of Sale starts using the new flow. # Migrate V1 Zones to V2 Zone Configurations for Enhanced Security and Performance Salesforce B2C Commerce now supports migrating deprecated proxy V1 zones to current V2 zone configurations in Business Manager. This update provides better security and performance, especially for ghost routing and traffic splitting scenarios. **Why:** To avoid potential security vulnerabilities and performance issues, you must migrate to the V2 configuration. This ensures that you properly manage your custom hostnames and efficiently route traffic, enhancing the overall reliability of your setup. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The deadline to migrate deprecated proxy V1 zones to current V2 zone configurations is February 1, 2026. **How:** In Business Manager, select the **Apps Switcher** | **Administration** | **Site** | **Embedded CDN Settings** | **Settings**. initiate the migration process and follow the prompts to migrate from Proxy V1 to V2. Refer to the Business Manager documentation for detailed instructions. #### See Also - [Migrate Deprecated Proxy Zones](https://help.salesforce.com/s/articleView?id=cc.b2c_migrate_deprecated_proxy_zones.htm&type=5&language=en_US) # Migrate Your Zones to eCDN with WAFv2 Salesforce B2C Commerce now uses eCDN with WAFv2. WAFv2 brings advanced security features to safeguard all your zones, both existing and new. You can migrate your existing customer zones from WAFv1 to WAFv2 as a self-service option. You can configure eCDN WAFv2 settings directly through the Business Manager UI or CDN Zones API for new zones. In addition, eCDN with WAFv2 integrates ruleset enhancements that improve firewall security and reduce false positives, improving threat detection accuracy and minimizing disruptions to normal operations. **When:** All zones must be migrated from WAFv1 to WAFv2 by June 15, 2025. **Why:** WAFv2 includes these ruleset enhancements. - OWASP ruleset: The Salesforce eCDN OWASP Core Ruleset is our implementation of the OWASP ModSecurity Core Rule Set (CRS). It’s updated regularly based on the latest version from the official OWASP code repository. - eCDN managed rules: The Salesforce security team continually updates the ruleset to address new vulnerabilities and reduce false positives. - eCDN exposed credentials check: Helps to identify stolen credentials by performing a lookup against a public database of compromised credentials. **How:** To migrate your existing zones to WAFv2, on the Business Manager WAF tab, go to the Business Manager UI and WAFv1 zones section. Click **Start WAFv2 Migration**, and follow the prompts. #### See Also - [Upgrade to eCDN with WAFv2 for Enhanced Security](https://help.salesforce.com/s/articleView?id=commerce.b2c_rn_25_2_upgrade_ecdn_with_wafv2.htm&type=5&language=en_US) # Migrating to Point of Sale Release App Migrate from the UAT app to the Point of Sale (POS) Release app. Confirm that you have received a TestFlight invite to access the new app. ## Access Your Test Flight Invite 1. Search for the TestFlight email invitation to the Release app. The email label reads, "_Salesforce INC has invited you to test POS._" 2. Select View in TestFlight to view your redeem code. Save this code as you need it to download the Release app. ## Release App Download and Setup 1. Open the currently used PS POS app on your device. 2. Sync any offline activity or pending orders, if applicable. 3. Exit the app and go to the home screen of your device. Then, delete the app from your device. For customers using MDM, use it to delete the UAT-specific app and push the new TestFlight invite to the UAT devices. 4. Open the TestFlight app and go to the PS POS app entry details by scrolling to the bottom. Select **Stop Testing** to remove the PS POS app entry from TestFlight. 5. The screen asks you to redeem a code to download the Release app. Tap **Redeem**. 6. Enter your code which was listed in your TestFlight invite email 7. After successful redemption, the app refreshes again and you can access the new Release app. TestFlight labels the app as POS for the release app, but the app icon appears as PS POS. ![The new TestFlight PS POS app screen on your iOS device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_ps_pos_testflight.jpg) 8. Exit this app, tap the newly-download PS POS app on your home screen, and scan the QR code in the CMS (**Store Management > Activate App**). Confirm thatyou've granted camera permissions to this new app in your iOS settings. 9. Enter an app token or select the default app.![The Staging Token dialogue box in the PS POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_enter_ps_pos_token.jpg) 10. On the next next screen, rapidly tap the upper right corner 6–7 times. This displays a window that has your new installation ID. Save this ID and follow the steps in this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_activate_pos_app.htm&release=264.0.0&type=5 "Activate your iOS device and install it as in-store register. First, download the TestFlight and Point of Sale (POS) apps on your iOS device.") to register the new device in CMS. If the register isn't activated in CMS, the app displays the ID on the Welcome to Register screen.![The POS app's Welcome Screen with the ID displayed.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_unactiated_register_pos.jpg) 11. After successful registration, return to the PS POS app and log in. Proceed with testing as usual. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Re-pair all your hardware peripherals with the app, as this is a brand-new installation. ## Frequently Asked Questions (FAQs) Address common questions about POS App migration, including email notifications, testing app versions, and handling old builds. ### Does migration trigger any email notifications besides the invitation to accept the Retail Cloud Release app developer account? The only additional email triggered by migration is the new TestFlight invite from the Point of Sale Release developer account. ### If the change for app version 10.9.1 is made after I’ve started testing, how will that affect me testing 10.9.1? Starting with app version 10.8.1, this is the only TestFlight version available for UAT. We won’t send UAT-specific app TestFlight invites for a version after we begin inviting merchants to the release app TestFlight. ### What happens to old builds post-migration? Old builds remain on devices until manually deleted. See step #3 in [this section](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_migrate_to_release_app.htm&release=264.0.0&type=5) for instructions on how to delete old builds during migration. ### Do I use a new version? For example, if I am on version 9.8.1, do I only test the latest version after migration? Yes, if you are testing version 10.8.1 or later, use the Release TestFlight. As this is not a rolling update, both apps aren’t available on TestFlight at the same time. TestFlight builds are only available for 90 days, so you can’t test version 9.8.1 anymore. ### What if I need an older release version for testing? If you require a version 10.7.1 or earlier, the app team generates a new build within the current release cycle. The new version number will match the upcoming release version, while the build number retains the requested TestFlight version and build number. For example, if you request 10.7.1 26688 during the 10.8.1 release cycle, the new TestFlight entry has Version: 10.8.1 and Build: 10.7.1.26688. If the same request is made again after 90 days during the 10.11.1 release cycle, the updated entry has Version: 10.11.1 and Build: 10.7.1.26688. For versions 10.8.1 or newer, if the build is still available on TestFlight, no action is needed, as TestFlight builds remain accessible for 90 days. However, if the build has expired, the app team generates a new build using the same versioning and build number scheme applied to 10.7.1 or earlier builds. # Miscellaneous Frequently Asked Questions Find answers to questions about the general features and functions of Point of Sale. ## How many times a day can Point of Sale index our feed? Most of our customers send us their product feed once a day, with incremental changes throughout the day via delta feed if needed, but we can import feeds every hour if needed. ## What feeds need to be passed to Point of Sale? See [Required Data Feeds](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_required_feeds.htm&release=264.0.0&type=5 "Point of Sale includes a mobile search engine that is built for speed. To optimize the mobile experience for customers, Point of Sale uses data feeds. Customers benefit from a faster mobile search experience.") ## How can we display the site merch order on the app? See [Display the Site Merch Order](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_site_merch_order.htm&release=264.0.0&type=5 "Point of Sale support two options for adding merchandising sort order to the product feed.") ## How can we ingest the business rules for search defined on the website? See [Search Merchandising Rules and Synonym File Import](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_merchandising_rules.htm&release=264.0.0&type=5 "Import your search merchandising rules and synonym files through the category feed in Point of Sale CMS.") ## What are the supported Apple products and iOS versions? We check by iOS versions and not by the device's model. Point of Sale is supports iOS 17. ## Are IP addresses required for register, terminal, and printer setup? No, this is no longer a required field in the CMS. See [Point of Sale Registers](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_point_of_sale_registers.htm&release=264.0.0&type=5 "Configuring Point of Sale (POS) registers lets you track devices that run the Retail Cloud store app."). ## Is any IP address mandatory in the register setup when the store is operating with Static IP? No, the IP address isn't mandatory. ## Does Point of Sale support backordering capabilities? Yes, to enable backorders on the POS app: 1. In the product API, pass a backorder and its next available date attribute as customStrings and publish on the Product Detail Page (PDP). 2. In the inventory SPI, allow 0 online inventory fulfillment. 3. In the order SPI, process an online order and assign its backorder/fulfillment status based on inventory availability. ## Does Point of Sale support rebate capabilities? While we don't offer an out-of-the-box (OOTB) solution, here are some options: - You can make use of a customString or customText field to seamlessly integrate additional information into the PDP. We don't have the capability to display custom product fields on receipts. - Alternatively, you have the option to set up a URL deep link that directs users to the merchant's rebate website. This allows customers to conveniently access and review available rebates. ## Does Point of Sale provide SOC Reports? Yes. Contact Salesforce Customer Support for more information. ## Can products be returned if they're no longer in the product catalog? Yes, to proceed with the return process lookup to CMS for order history. Return the items via a receipted lookup. The items should still be listed and you should be able to identify them with images. ## How does Point of Sale manage Network Time Protocols (NTP) with orders? Point of Sale ensures accurate timing for order management through the use of Network Time Protocols (NTP). Here's how it works: - Online Orders: The timestamp for each online order is captured as the Coordinated Universal Time (UTC) in milliseconds, directly from our server. This ensures that the timing for these orders is precise and consistent, regardless of the user's local time zone. - Offline Orders: For orders processed offline, such as those made through an iOS device without an immediate internet connection, the timestamp is set at the moment the transaction is completed on the device. It's important to note that if the device's time has been manually adjusted by the user, the timestamp for the order will reflect this changed time. This means the recorded time for offline orders may vary based on the device's settings at the time of the transaction. ## What's the rolling cadence for support of the POS App? The regression testing always occurs with the latest POS version. We don't perform back verification on older POS app versions. Our Backend strives to maintain backward compatibility with older POS app versions and warns if not achievable. ## What are the best practices for managing IP addresses for store devices like POS systems For critical devices such as POS systems, it is recommended to use static IPs to make sure reliable reconnection to peripherals from previous sessions. However, if managing static IPs at scale becomes difficult, DHCP reservation can be used as an alternative, providing fixed IP addresses to devices while simplifying network management. # Missing Attributes Available for Data Product Endpoints The attributes valid\_to (online\_to), valid\_from (online\_from), tax\_class\_id, localized\_tax\_class\_id, primary\_catagory, and classification\_category (category data via categories expansions) are now available from the DATA GET Products OCAPI Endpoint. You can include the attributes in the DATA PUT/PATCH Products OCAPI Endpoints. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note You can't update the Primary\_catagory and the classificaton\_category. These categories are read only via the Products endpoint. #### See Also - [Products resource (Data API 20.4)](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/data/Resources/Products.html) # Modify or Remove Searchable Custom Fields Before renaming or deleting a custom field that is configured as searchable in your B2B store, mark it as not searchable, and remove it from Results Filters, Sort Rules, and Displayable Fields. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Mark the custom field as [not searchable](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_fields.htm&language=en_US) in Searchable Fields. 2. Remove the custom field from [Results Filters](https://help.salesforce.com/s/articleView?id=commerce.comm_search_add_filters.htm&language=en_US). 3. Delete the custom field from [Sort Rules](https://help.salesforce.com/s/articleView?id=commerce.comm_search_sort_rule_edit_delete.htm&language=en_US). 4. Remove the custom field from [Displayable Fields](https://help.salesforce.com/s/articleView?id=commerce.comm_set_up_displayable_fields.htm&language=en_US). 5. [Delete](https://help.salesforce.com/s/articleView?id=platform.deleting_fields.htm&language=en_US) or [modify](https://help.salesforce.com/s/articleView?id=platform.editing_fields.htm&language=en_US) the custom field. 6. Perform a full update of the [search index](https://help.salesforce.com/s/articleView?id=commerce.comm_search_index_build.htm&release=264.0.0&type=5 "Update your search index so that changes to your products appear on your search and category pages. You can manually update the index or turn on automatic system updates."). #### See Also - [How Behaviors Are Controlled](https://help.salesforce.com/s/articleView?id=commerce.comm_search_behavior_how.htm&release=264.0.0&type=5 "Each product in your B2B Commerce store is a record of the Product2 object. Use the Product2 object fields to control the behavior of sort, search, facet, and display. All Product2 standard fields are available to all products in your store. If you add custom fields to the Product2 object, those fields are also available to all store products.") - [Mark Product Fields as Searchable or Not Searchable for a B2B Commerce Store](https://help.salesforce.com/s/articleView?id=commerce.comm_search_mark_fields.htm&release=264.0.0&type=5 "Marking fields as searchable helps the search engine index more content, improving search accuracy and relevance in you B2B Commerce store. Avoid marking fields as searchable if the fields contain sensitive information or provide generic data.") - [Create Custom Fields](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&language=en_US) # Modify Order Management Flows to Include Reservation Tracking The Salesforce Omnichannel Inventory flows perform routing, cancellation, and fulfillment, which are all transactions available in the reservation lifecycle after a reservation has been created. Add the reservation ID to each flow as needed. ### Required Editions
View supported editions.
| Flow Action | Description | | --- | --- | | Get Inventory Availability | Get inventory availability for one or more products at one or more inventory locations or location groups. | | Transfer a Reservation | Transfer one or more inventory reservations between locations or location groups and update inventory availability at the locations or location groups. | | Fulfill a Reservation | Fulfill one or more inventory reservations at a location and update inventory availability at the location. | | Release a Reservation | Release one or more inventory reservations at a location and update inventory availability at the location or location group. | #### See Also - [Reservation Tracking in Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_track_reservation.htm&release=264.0.0&type=5 "Reservation tracking simplifies the process of monitoring all reservation-related activities, from the moment that inventory is placed in a cart through fulfillment or cancellation. Each reservation has a unique ID that’s used to track actions associated with the reservation as it progresses through the fulfillment process.") # Modify Sharing Settings to Resolve Failed Orders for B2B Stores To let a Commerce admin resolve process exceptions for failed orders (PlaceOrderFailed), modify the sharing settings for the Process Exception object. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) These steps assume that you’ve already defined a role for the Commerce admin. 1. Click ![Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/comm/images/comm_setup_icon_no_border.png) at the top of the page, and then select **Setup**. 2. In the Quick Find box, find, and select **Sharing Settings**. 3. Configure the organization-wide sharing settings. 1. In the Organization-Wide Defaults section, click **Edit**. 2. For the Process Exception object, set the default internal access to **Public Read/Write**, and set the default external access to **Private**. 3. Click **Save**. 4. Define a sharing rule for the Process Exception object. It can take a few minutes for the changes made to the Process Exception Object to complete. If you can’t edit the Process Exception Sharing Rules, refresh your browser. 1. In the Process Exception Sharing Rules section, click **New**. 2. Enter a name for the rule. 3. For rule type, select **Based on record owner**. 4. For records to be shared, select **Public Groups** and **All Customer Portal Users**. 5. For users to share, select **Roles** and select the role that you created for the Commerce admin. 6. For access level, select **Read/Write**. 7. Click **Save**. #### See Also - [Modify Sharing Settings to Resolve Failed Orders for B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_async_configure_sharing_settings.htm&release=264.0.0&type=5 "To let a Commerce admin resolve process exceptions for failed orders (PlaceOrderFailed), modify the sharing settings for the Process Exception object.") # Monitor and Log Order Activity in Point of Sale CMS Track user activity, system performance, and potential security threat in your Retail Cloud environment. - **[View External Order Logs with Outbound Logger](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_outbound_logger.htm&release=264.0.0&type=5)** View all logs in Point of Sale CMS related to an order's correlation ID to debug errors when posting an order to an external platform. - **[Policy Management & User Subscription Setting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_policy_management_settings.htm&release=264.0.0&type=5)** Create monitoring policies in Point of Sale CMS to designate email addresses for receiving alerts about subscription or application-based events. - **[Track Changes in Point of Sale CMS with Audit Logs](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_audit_logs.htm&release=264.0.0&type=5)** Track who modified critical configurations in Point of Sale CMS to areas such as app configurations, layouts, and server settings. # Monitor Browser Access Patterns and Unexpected Changes You can use the method `dw.system.Response.addHttpHeader` to specify a response header of Content-Security-Policy-Report-Only for storefront requests. What: The Content-Security-Policy-Report-Only response header instructs browsers to report violations of a policy to a specified URI. Depending on your policy, it's possible to have many violation reports. You must direct the reports to an external system that is not B2C Commerce, typically a third party. Information about policy violations can help you understand browser access patterns and detect unexpected changes that are possibly the result of malicious actors. #### See Also - [Content Security Policy Level 3](https://www.w3.org/TR/CSP3/#cspro-header) - [dw.system.Response](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/DWAPI/scriptapi/html/api/class_dw_system_Response.html) # Monitor Order Management Integration Rejections Detect and troubleshoot your Order Management integration failures by setting up a Log Center alert. When Order Management rejects an order after accepting it for asynchronous processing, B2C Commerce writes a warning entry to Log Center. Use these logs to monitor and troubleshoot order-integration failures. Each entry is a single warning message that includes: - The order number and site identifier - The error code and error message reported by Order Management The log captures only instances where Order Management initially accepts an order for processing but later reports a failure. Orders rejected synchronously during initial processing are logged separately as an error. For complete rejected order visibility, use the **Order Search Rejected** filter or configure the **SOMRejectAlert** notification. 1. In Business Manager, select **Administration > Site Development > Log Center**. 2. On the **Logs** tab, click **Config**. 3. Click **Log Level**. 4. Under **Centralized Log Level Management**, filter by the **Warn log** level, and then filter by the message text **was rejected by Order Management**. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_example.png) Example Log Entry Format: Order '\[ORDER\_NUMBER\]@\[SITE\_ID\]' was rejected by Order Management, because of '\[ERROR\_CODE\]:\[ERROR\_MESSAGE\]' # Monitor Suspicious Access to Sensitive Shopper Data Security logs now capture the source IP address that accesses sensitive shopper data in Business Manager. Use these enhanced logs to investigate suspicious activity and validate authorized access to sensitive customer and order details. **Where:** This change applies to B2C Commerce. **How:** To activate enhanced Personally Identifiable Information (PII) logging, in Business Manager, click App Launcher, and then select **Administration** | **Global Preferences** | **Feature Switches**. Turn on **Enables Security Log on User Access to Customer PII Business Manager Screens**. # More Consistent Error Handling for Shop API DELETE Resources Calling certain Shop API DELETE resources on a nonexistent record ID now returns HTTP 404 (ProductItemNotFoundException) instead of HTTP 204 (Success) with a debug log entry. This behavior is more consistent with the overall pattern. Where: These resources are affected: - `DELETE /baskets/{basket_id}` with unknown basket\_id - `DELETE /baskets/{basket_id}/items/{item_id}` with unknown item\_id - `DELETE /baskets/{basket_id}/payment_instruments/{payment_instrument_id}` with unknown payment\_instrument\_id - `DELETE /orders/{order_id}/payment_instruments/{payment_instrument_id}` with unknown payment\_instrument\_id # Move Components in Page Designer More Easily Dragging components in Page Designer is now more intuitive. Know exactly where you can place a component. And after you drop a component and refresh the page, the component remains in focus and highlighted until another selection is made in the canvas. How: Improvements to the drag functionality improve the Page Designer workflow. - Minimal changes in page structure during the drag function. When You initiate the drag process, you don’t lose the orientation to your starting location and desired drop location. - Clearly identifiable drop zones identify where you can drop a component. After you drop a component and refresh the page, the component remains in focus and highlighted. - After you drop a component and refresh the page, the component remains in focus and highlighted. ![Page Desinger drag experience](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/b2c_commerce_release_notes/images/23_2/b2c_rn_image_page_designer_drag.png) # Multi-Factor Authentication for all Account Manager Users Starting May 1, 2022 and continuing on a rolling basis through the end of May, Salesforce will enable and enforce MFA for all users who login in directly to B2C Commerce applications. Here's what to expect when Salesforce enforces MFA: - To enforce MFA, we’ll remove the option for admins to turn off or modify Account Manager MFA settings for their organizations - All users must use MFA each time they log in. If a user hasn't already registered for MFA, they'll be prompted to do so before they can get access to their account. #### See Also - [Salesforce MFA FAQ](https://help.salesforce.com/apex/HTViewSolution?urlname=Salesforce-Multi-Factor-Authentication-FAQ) - [Multi-Factor Authentication Enforcement Roadmap](https://help.salesforce.com/apex/HTViewSolution?urlname=Multi-Factor-Authentication-MFA-Auto-Enablement-and-Enforcement-Roadmap) # Multi-Factor Authentication Options The option to exclusively use the Salesforce Authenticator is being replaced with the option to select from a number of different multi-factor authentication (MFA) options. The Salesforce Authenticator is still the default form of authentication. **When:** This feature will roll out between October 18 and October 20. **How:** Most users don't need to change their settings for this release. However, if your organization uses Resource Owner Password Grant, follow [these steps](https://help.salesforce.com/s/articleView?id=000363188&type=1&language=en_US) to avoid MFA failures. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Due to the expiration of a CA root certificate on September 30, 2021, some users may experience MFA failure starting on October 18, 2021. The failure is linked to browsers or operating systems that are not set to allow the automatic update of the trusted root certificate. Users can refer to this [knowledge article](https://help.salesforce.com/s/articleView?id=000363319&type=1&language=en_US) for clarification and steps to avoid authentication failure. # Multi-Factor Authentication Warning Message To increase security for our customers, as of February 1, 2022, Salesforce requires all users to use multi-factor authentication (MFA) to access B2C Commerce products, including Account Manager. When logging into Commerce Cloud Account Manager, users who don't use MFA receive a warning message stating that they aren't using MFA. **How**: To learn more about Salesforce B2C Commerce MFA requirements, see [Get Ready for Future Multi-factor Authentication](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_mfa_enforcement_je.htm&type=5&language=en_US). # Multi-Language Support POS supports multiple languages in the same country, which benefits merchants in different locales across the globe. The POS can localize as part of its main platform features. This means you can run multiple languages in the same country. This can be helpful for merchants based in different locales across the globe, allowing languages to be switched within one account. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Multilanguage support is only available to merchants configured for it during their initial setup, a process managed by Salesforce. For more information, contact Salesforce Customer Support. ## Supported Languages The modern POS app supports these languages out of the box: - English (default) - French - Polish - Spanish - Portuguese - Japanese - Dutch - Italian - German - Chinese, Simplified - Catalan - Malay ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Point of Sale leverages machine translation to automatically translate UI text on the POS app. ## Prerequisites - Modern POS App Build: 7.16.5 & later. - Platform Support: iPhone & iPad - Offline Support: yes, but default language only ## Use Cases Supported - Configuring merchants with multiple languages in the same region. - Product feeds for importing into Point of Sale. - Multiple-language localization on the POS app. - Multiple language configurations on the CMS for: - POS app configuration - Email & Print templates - Layouts - Promotions - Reason codes - Tax - Language selection in the POS app user interface. - **[Configuring Merchants with Multiple Languages](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_merchants_multiple_languages.htm&release=264.0.0&type=5)** The Point of Sale platform lets you configure merchants based on MerchantID, Locale, and Region. - **[Product Feeds for Multiple Languages](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_product_feeds.htm&release=264.0.0&type=5)** Use product feeds in Point of Sale CMS to manage products in multiple languages. - **[Languages Localization on the POS App](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_localization_pos_app.htm&release=264.0.0&type=5)** Set up language localization deep links in the POS app through CMS configurations. - **[Multiple Language Configuration on Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_multiple_language_configuration.htm&release=264.0.0&type=5)** Point of Sale lets you set up apps in different languages. You can also set up email and print templates, layouts, promotions, reason codes, and tax. - **[Language Selection and Usage](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_language_selection_and_usage.htm&release=264.0.0&type=5)** The POS app lets users change the language at any time or select a language for a specific operation, such as searching for products or printing receipts. - **[Troubleshooting](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_multilanguage_troubleshooting.htm&release=264.0.0&type=5)** Make sure that your device's region and language settings are correctly configured to avoid errors while loading a specific app configuration in the Point of Sale (POS) App. # Multi-Region Feeds Point of Sale multi-region feeds let merchants with operations in multiple regions run feeds in the master region. Merchants can also configure other regions to perform product searches against the master catalog. By using multi-region feeds, merchants can streamline their operations and ensure that product searches are accurate across all regions. This feature saves time and improves efficiency by centralizing feed management. Get the feed specs required for merchants to create these files. Usually, we will have a full catalog run once a day and delta’s run multiple times. We can support it using delta and full feeds. These feeds can be run manually and also scheduled to run at a fixed interval pulling the file from an FTP location. There is also a CMS configuration involved to run the search from the master region from other regions. ## Feed Specs CSV, PSV, and TSV are all the file formats supported. Field mapping from CMS can be used to map the merchant-defined columns to the feed specs columns on the CMS. The mapped field definition is provided below for each of the feeds. **Feed Frequency** For all feeds mentioned below, the recommended frequency is to run a full load once a month and then load deltas on an ongoing base as per need. **Pricing Feed** As the region changes, the local currency changes, causing prices to be different across regions. This feed will provide the product pricing across the region.
TypeLimitsRequiredExample
product_idThis is the primary product identifier. Max 128 characters. Must match the ID in the Product feedYesABC1234
regionTwo characters and must be an ISO-3166-1 Alpha 2 country code.YesUS
priceNumberYes100.00. This is the list price.
sales_priceNumberOptional90.00
Example field mapping:![A screenshot shows an example price feed field mapping.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_multi_region_pricing_example.png) **Sizing Feed** This feed will provide the product sizes across the region.
TypeLimitsRequiredExample
product_idThis is the primary product identifier. Max 128 characters. Must match the ID in the Product feed.YesABC1234
regionTwo characters and must be an ISO-3166-1 Alpha 2 country code.YesUS
sizeMax 128 characters.YesLarge
Example field mapping:![A screenshot shows an example sizing feed field mapping.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_multi_region_size_example.png) **Inventory Feed** Different regions will have different fulfillment centers causing the inventory to be different across the regions. This file will ingest region-specific inventory.
TypeLimitsRequiredExample
product_idThis is the primary product identifier. Max 128 characters. Must match the ID in the Product feed.YesABC1234
regionTwo characters and must be an ISO-3166-1 Alpha 2 country code.YesUS
online_inventoryNumberYes100
Example field mapping:![A screenshot shows an example inventory feed field mapping.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_multi_region_inventory_example.png) ## Field Mapping Three new field mapping are available in CMS: Pricing, Sizing, and Inventory. Use the field mapping to map the columns specified in the feed specs. ![A screenshot of the CMS shows feed mapping options.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_multi_region_field_mapping.png) ## Feed Types Based on whether we are uploading a full vs a delta product feed. Feeds can be run in two modes. When we ingest the feeds there is no business logic change in the way they are ingested. These feeds are tied to the master product catalog. Full and Delta are two types of feed. This mainly helps in scheduling them to run automatically by having two different schedules for full and delta. ## Uploading Feeds **Scheduled Upload** A scheduled feed is run at a fixed interval and loads the file from the FTP location. A sample scheduled feed is shown below. Click on the + tile and select the appropriate feed type from the dropdown. ![A screenshot chose various scheduled feed uploads.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_multi_region_schedules.png) **Manual Upload** You can manually upload the file from CMS. ## Feed Pipeline Running feeds in the pipeline are used to run these feeds in conjunction with other feeds. Usually, you will be looking at running the product feed first, followed by the pricing, sizing, and inventory feed. This is an example pipeline with Pricing and Product Sizing feed shown:![A screenshot shows an example pipeline with Pricing and Product Sizing feed.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_multi_region_feed_source.png) Navigate to Product and to the search config in the regions where the search has to run from the master region and update the master region. ![A screenshot shows the editor for a search configuration.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_data_feeds_manage_multi_region_search_config.png) ## Multi-Region Feed Strategy This is a recommended feed strategy for merchants with significant volume.
Feed Strategy
Store Feeds
  • All stores need to be uploaded in the master region.
  • Other countries can have the same file or just stores specific to the region.
Multi-Region Feeds
  • For the Product Feed, all product catalog information must be included with the price for the master region.
  • For the Pricing Feed, it must include pricing per country (list price and sale price per region). Then run in the master region with data for all countries including the master region.
  • Sizing Feed must be run in the master region with data for all countries.
Store Inventory Delta will run only in the master region and will serve two purposes
  • Seed initial data per country (x amount of records multiplied by x amount of stores in the master region); or this can be run incrementally per store during rollout (x amount of records per store) run x amount of stores in the master region with every store before rollout.
  • Run daily to overwrite the inventory and store price per store.
    • Delta Inventory (overwrite mode) is run in the master region only and all fields are mandatory for the product IDs included in the file:
      • Country Code
      • Store ID
      • Product ID
      • Inventory
      • Store Price
Taxes
  • In each country separately
  • One-time load per country
Associates
  • API
  • In each region separately
Register Feed Each country separately, store by store during rollout
Pipeline

Pipeline to be run in the master region to include:

  • Product Feed
  • Pricing Feed
  • Sizing Feed
  • Store Inventory Delta
## Known Issues & Restrictions - As a common feed is used across the regions deleting a product in the master region will delete it from other regions too. - Ensure values for the master region are also present in the feeds above. - There always has to be a merchant available in the other region for the search to run against the master region. - Only one language is supported on the product catalog for all regions. ## Frequently Asked Questions **Can Multi-Region Feeds Be Managed Through the Product API?** Our platform supports Multi-Region Feeds, allowing the master region to run the product feed while enabling other countries to inherit the product metadata, with specific pricing and sizing data provided for each country. However, this capability does not extend directly through the Product API. - For Multi-Region Pricing Updates: Currently, we do not offer a dedicated pricing API. For multi-region operations, pricing updates must be conducted through the CMS feed mechanism, allowing for regional-level adjustments. - For Single-Region Pricing Updates: In a single-region setup, the Product API can be utilized to update pricing information. However, for multi-region scenarios, the Product API lacks a "region" field in its specifications (as observed in the [Product Management API](https://developer.salesforce.com/docs/commerce/retail-cloud/references/product-management-api?meta=Summary) reference). - Workaround for Pricing Updates: Given the absence of a pricing API, pricing information must be included within POST and PUT calls when managing product data. If operating with a single instance per region, the Product API can facilitate pricing updates effectively. # Multiple Language Configuration on Point of Sale CMS Point of Sale lets you set up apps in different languages. You can also set up email and print templates, layouts, promotions, reason codes, and tax. ## POS App Configuration The sections that are supported with the multilanguage feature are pos app configs, email & print templates, layouts, promotions, reason codes, and tax. Products are also supported, however, the multilanguage feature is configured through the feed. To view a list of POS app configurations that are configured to a specific language: 1. Go to **CMS > Apps > All**. 2. Select the language using the Language dropdown in the upper left of the screen. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Currently, changing the language of a specific app configuration has been disabled. ## Email & Print Templates To view a list of email & print templates that are configured to a specific language: 1. Go to **CMS > Store Management > Email & Print Templates.** 2. Select the language using the **Language** dropdown. To change the language of an email & print template: 1. Go to **CMS > Store Management > Email & Print Templates > your template > Edit**. 2. Select the language using the **Language** dropdown. 3. Click **PUBLISH**. ## Layouts To view a list of layouts that are configured for a specific language: 1. Go to **CMS > Layouts > All Layouts**. 2. Select the language using the **Language** dropdown. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Currently, changing the language of a specific layout has been disabled. ## Promotions When you create a promotion, it is applicable across all languages within the same region. This means that there's one promotion with a single promo code, but it can have separate names, titles, and descriptions for each language. If you need different promo codes for different regions, create separate promotions for each region. Always configure the promotion in the default language (also known as the base language) otherwise, you receive an error indicating so. Additionally, the redemption rate will be shared across as the promotion is essentially the same but associated with a different language. To view a list of promotions that are configured for a specific language: 1. Go to **CMS > Promotions**. 2. Select the language using the **Language** dropdown. To change the language of a promotion: 1. Go to **CMS > Promotions**. 2. Select a promotion by clicking on the pencil icon to the right of it. 3. Select the language using the **Language** dropdown in the upper left of the screen. 4. Select **PUBLISH NOW** or **Schedule**. ## Reason Codes To view a list of reason codes that are configured for a specific language: 1. Go to **CMS > Store Management > Reason Codes**. 2. Select the language using the **Language** dropdown. ## Tax The tax rates behave similarly to the products in which it uses a feed to show the information for a certain locale. For more information, see [Product Feeds for Multiple Languages](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_product_feeds.htm&release=264.0.0&type=5 "Use product feeds in Point of Sale CMS to manage products in multiple languages."). To view a list of tax rates that are configured to a specific language: 1. Go to **CMS > Store Management > Tax > View Tax Rates**. 2. Select the language using the **Language** dropdown. To view a list of tax exemptions that are configured to a specific language: 1. Go to **CMS > Store Management > Tax > Tax Exemption Configuration**. 2. Select the language using the **Language** dropdown. # Negative Allocation Amounts in PUT/PATCH /inventory\_lists/{}/product\_inventory\_records/{} Are Disallowed With the OCAPI 22.10 release, the `PUT /inventory_lists/{}/product_inventory_records/{}` and `PATCH /inventory_lists/{}/product_inventory_records/{}` resources no longer allow a negative allocation amount to be passed in. A constraint has been added to the ProductInventoryRecordAllocation. How: If you call these resources with a negative allocation amount, this error response is returned: ``` status code: 400 "type": "PropertyConstraintViolationException" "message": "An error occurred while decoding the request. There's a value constraint violation of property '$.allocation.amount' in document 'product_inventory_record'." ``` # NetSuite Integration Guide Integrate your Point of Sale brand with NetSuite, streamlining data and workflows across platforms. Configuring both NetSuite and your content management system (CMS) ensures a seamless connection. This integration helps to maintain consistent branding and product information, and enables efficient order and inventory management. With connected systems, you reduce manual data entry and improve overall operational efficiency. This article outlines the process to set up a Point of Sale brand to integrate with NetSuite. It is assumed that the brand already has the necessary sandbox and production accounts available. The setup consists of configuration on the NetSuite side (through the NetSuite web console) as explained in this article, followed by configuration on the Point of Sale side (through the CMS). Refer to [NetSuite CMS Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite.htm&release=264.0.0&type=5 "Enable order management by integrating your NetSuite ERP with Point of Sale CMS. Begin with an initial configuration on your NetSuite account. Then, complete the setup in the CMS.") for the CMS configuration portion. ## NetSuite POS Architecture ![A block diagram shows the NetSuite POS Architecture.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_architecture.png) ## Configure NetSuite Setup Complete the NetSuite-side configuration including account setup, authentication, roles, and custom fields required for Point of Sale integration. ### Configure Account Settings 1. Log in to the NetSuite UI as an Administrator. 2. Navigate to **Setup** | **Company** | **Company Information**. 3. Make a note of the **Account ID** shown on the Company Information UI. 4. Navigate to **Setup** | **Company** | **Enable Features**. 5. Click on the **SuiteCloud** tab. 6. Scroll to **SuiteTalk (Web Services)**. 7. Enable **SOAP WEB SERVICES**. This will allow the use of the SOAP (Simple Object Access Protocol)-based method for integration. ![Screen shows the option to enable SOAP web services.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_suitetalk.png) 8. Navigate to **Setup** | **Integration** | **Manage Integrations**. 9. Create a new integration by clicking on the **New** button. 10. Fill out the required fields including **Name** and **State**. By default, the State is Enabled. 11. Under **Authentication**, enable the following options: 1. **TOKEN-BASED AUTHENTICATION** - A security technique that authenticates the users who attempt to log in. 2. **TBA: ISSUETOKEN ENDPOINT** - A programmatic method for creating the tokens, which will reduce compromising a user's credentials. 3. **USER CREDENTIALS** - An additional method for authentication. 12. Click **Save**. ![A screen displays options for SuiteTalk Web Services.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_integration.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important This sets up token-based authentication for API access. Please make a note of the **Consumer Key** and the **Consumer Secret**. ### Create Web Services Role Create a new role for web service access with appropriate permissions. 1. Navigate to **Setup** | **Users/Roles** | **Manage Roles**. 2. Click on the **New Role** button. 3. Fill out the required fields including **Name**. 4. Under **Subsidiary Restrictions**, enable **USER SUBSIDIARY**. This will restrict the role's access to the user's subsidiary only. 5. Under **Authentication**, enable **WEB SERVICES ONLY ROLE**. This will prohibit the user from accessing NetSuite through the user interface, enhancing the security of the integrations. 6. Under **Permissions**, add relevant permissions with their levels. See [Configure Role Permissions](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite_guide.htm&release=264.0.0&type=5) ![A configuration screen includes options for token-based authentication, OAuth 2.0, and user credentials.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_role.png) 7. Click **Save**. #### Configure Role Permissions The recommended permissions for the web services role are: 1. **Transactions**: | **Permission** | **Level** | | --- | --- | | Adjust Inventory | Full | | Cash Sale | Full | | Cash Sale Refund | Full | | Check | Full | | Credit Card | Full | | Credit Card Refund | Full | | Credit Memo | Full | | Credit Returns | Full | | Customer Deposit | Full | | Customer Payment | Full | | Customer Refund | Full | | Find Transaction | Full | | Invoice | Full | | Item Receipt | Full | | Make Journal Entry | Full | | Receive Order | Full | | Receive Returns | Full | | Refund Returns | Full | | Return Auth. Approval | Full | | Return Authorization | Full | | Sales Order | Full | | Quote | Full | | View Payment Events | Full | 2. **Lists**: | **Permission** | **Level** | | --- | --- | | Custom Record Entries | Full | | Customer Profile | Full | | Customers | Full | | Documents and Files | Full | | Email Template | Full | | Items | Full | | Perform Search | Full | | Promotion | Full | | Publish Search | Full | | Website (External) publisher | Full | | Locations | Full | | Payment Methods | Full | | Product Lines | Full | | Record Custom Field | Full | | Shipping Items | Full | | Subsidiaries | Full | | Tax Records | Full | 3. **Setup**: | **Permission** | **Level** | | --- | --- | | Access Token Management | Full | | Accounting Lists | Full | | Integration Application | Full | | Log in using Access Tokens | Full | | Manage Accounting Periods | Full | | SOAP Web Services | Full | | User Access Tokens | Full | ### Create Web Services User Create a new user that will have the web services role created above. 1. Navigate to **Setup** | **Users/Roles** | **Manage Users**. 2. Click on the **New User** button. 3. Under **Access**, enable **GIVE ACCESS**. ![A screen lists employee information.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_employee.png) 4. On the **Access** | **Roles** tab, assign the web services role created above to the new user. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Be sure to assign the web services role created above to the new user on the **Access > Roles** tab. ### Create Access Tokens Create a web services access token for the web services user. 1. Navigate to **Setup** | **Users/Roles** | **Access Tokens** | **New**. 2. Under **Application Name**, select your integration which you've named in the previous steps. 3. Under **User**, select the user you've created. 4. Under **Role**, select the role you've created. 5. Under **Token Name**, enter a name for your tokens that will be generated. 6. Click **Save**. ![A screen shows access token settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_token_access.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Please make a note of the generated **Token ID** and **Token Secret**. ### Configure Custom Fields Create custom fields required for data synchronization between Point of Sale and NetSuite. #### Create Entity Fields 1. Navigate to **Customization** | **List, Records, & Fields** | **Entity Fields**. 2. Create the following entity fields: | **Attribute ID** | **Type** | **Description** | | --- | --- | --- | | \_remaining\_balance\_credit | Currency | Customer store credit (optional) | | \_discount\_group | List/Record | Customer group for promotion (optional) | | \_email\_acquisition | List/Record | Email acquisition type - GIVEN, REFUSED, UNAVAILABLE (optional) | | \_phone\_type | List/Record | Customer phone type - LANDLINE, CELL (optional) | ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note NetSuite will automatically prepend `custentity` to the beginning of the ID. #### Create Transaction Body Fields 1. Navigate to **Customization** | **List, Records, & Fields** | **Transaction Body Fields**. 2. Create the following transaction body fields:
Attribute ID Type Description
_tax_amount Decimal Number Order-level tax amount as calculated by Point of Sale
_discount_amount Decimal Number Order-level discount as calculated by Point of Sale
_external_customer_id Free-Form Text References to a customer ID existing in an external system, if required for clienteling
_pos_order_id Free-Form Text POS order ID
_pos_transaction_id Free-Form Text POS transaction ID
_customer_credit Currency Customer credit amount applied to order (optional)
_layaway Check Box Marks order as layaway order (optional)
_ship_method List/Record Shipping method internal ID (optional)
_cc_last_4_digits Integer Number

Last four digits of the credit card, if available (optional)

Tip: For details on the support capability for BORIS returns to credit card payments, refer to this Buy Online, Return In-Store (BORIS) Payment Refunds via Credit Card.

_finance_account_number Free-Form Text Financing account number (optional)
_finance_auth_number Free-Form Text Financing authorization code (optional)
_finance_message Free-Form Text Financing instruction text (optional)
_finance_order_number Free-Form Text Financing order number (optional)
_finance_primary_buyer Free-Form Text Financing primary buyer (optional)
_finance_total_amount Currency Total amount financed (optional)
_finance_payment_type_code List/Record Financing payment type code internal ID (optional)
_finance_buyer_id Integer Number Financing buyer ID (optional)
_finance_last_four_ssn Free-Form Text Financing last four digits of social security number (optional)
_finance_message_code List/Record Financing message code (optional)
_finance_order_type List/Record Financing order type (optional)
_finance_state_id List/Record Financing ID state issued (optional)
_finance_buyer_verified Free-Form Text Financing buyer is verified (optional)
_tax_exempt_card_number Free-Form Text Masked tax exempt card number (optional)
_tax_exempt_code Free-Form Text Tax exempt code (optional)
_tax_exempt_customer_name Free-Form Text Tax exempt customer name (optional)
_tax_exempt_name Free-Form Text Tax exemption name (optional)
_tax_exempt_notes Free-Form Text Tax exempt notes (optional)
_tax_exempt_rate Decimal Number Tax exempt percentage rate (optional)
_is_exchange_order Check Box Indicates that the order is part of an exchange
_promotion_code Free-Form Text A comma-separated list of merchant promotion codes applied to the order
_logged_in_associate_id Free-Form Text Internal ID of associate logged into POS at order time
_store_credit Decimal Number Store credit used by customer for order
_total_credit_used Decimal Number Total credit used by customer for order
_total_assembled Decimal Number Total assembled quantity
_total_boxed Decimal Number Total boxed quantity
_delivery_date Date Selected delivery date for delivery orders
_coupon_code Free-Form Text A comma-separated list of merchant coupon codes applied to the order
_order_discount_reason_codes Free-Form Text A comma-separated list of PS reason codes for discounts applied to order
_quote_id Free-Form Text Point of Sale quote ID
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note NetSuite will automatically prepend `custbody` to the beginning of the ID. #### Create Transaction Line Fields 1. Navigate to **Customization** | **List, Records, & Fields** | **Transaction Line Fields**. 2. Create the following transaction line fields: | **Attribute ID** | **Type** | **Description** | | --- | --- | --- | | \_item\_discount\_amount | Decimal Number | Item level discount as calculated by Point of Sale | | \_item\_pos\_order\_item\_id | Free-Form Text | Order item ID as determined by Point of Sale | | \_item\_upc | Free-Form Text | Item UPC code | | \_delivery\_type | List/Record | Order item delivery type (if supported, set up as a select form field within NetSuite) | | \_delivery\_date | Date | For line level fulfillment, the delivery date for the line | | \_pickup\_date | Date | For line level fulfillment, the pickup date for the line | | \_available\_date | Date | For line level fulfillment, the available date for the line | | \_item\_notes | Free-Form Text | Notes applied to the line | | \_line\_unique\_key | Free-Form Text | Applies a unique key to be associated with the line | | \_item\_discount\_reason\_codes | Free-Form Text | A comma-separated list of PS reason codes for discounts applied to the line | ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note NetSuite will automatically prepend `custcol` to the beginning of the ID. #### Custom Field Naming Convention Custom field attribute IDs listed in the tables above are suggested naming conventions. Attribute IDs can be named in any way by merchants, but if so the attribute IDs must be entered into CMS (through ERP configuration UI) as named by the brand. ### Create NetSuite Customers (if necessary) If using an external system for clienteling, create one or more Customers in NetSuite for use by Point of Sale when creating transactions within NetSuite. Navigate to **Lists** | **Relationships** | **Customers** and click **New**. ### Collect Parameters for Point of Sale Once the above setup is complete, the following parameters will need to be provided to Point of Sale in order to allow Point of Sale servers to invoke web services on NetSuite. 1. Collect the following **Authentication Parameters**: | **Parameter** | **Location in NetSuite** | | --- | --- | | Account ID | **Setup** | **Company** | **Company Information** | | SuiteTalk URL | **Setup** | **Company** | **Company Information** | **Company URLs tab** | | Consumer Key | Integration | | Consumer Secret | Integration | | Token ID | Access Token | | Token Secret | Access Token | 2. Collect the following **Object References**: | **Reference** | **Location in NetSuite** | | --- | --- | | Payment Method Names/Internal IDs | **Setup** | **Accounting** | **Accounting Lists** | **Payment Method list** | | Subsidiary Internal ID\* | **Setup** | **Company** | **Subsidiaries** | | Location Internal IDs\* | **Setup** | **Company** | **Locations** | | Department Internal IDs\* | **Setup** | **Company** | **Departments** | | Class Internal IDs\* | **Setup** | **Company** | **Classes** | | Customer Internal IDs\*\* | **Lists** | **Relationships** | **Customers** | \* These references are only required depending on required fields in the transaction records that need to be created within NetSuite. \*\* These references are only required if the customer accounts are referenced from an external system as NetSuite requires a customer entity to be set in transactions based on a NetSuite customer. ## NetSuite Transaction Postings Understand the NetSuite records created by POS for different order flows and transaction types. ### Overview The following is a summary of NetSuite records created by POS in NetSuite for different order flows. POS orders can be searched within NetSuite by POS Order ID and/or POS transaction ID. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For a list of events that Point of Sale can stream, refer to [Data Exports](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_events_streamed.htm&language=en_US). ### Quotes (Estimates) - Quotes (estimate records in NetSuite) can be generated from the POS Suspended Carts page when a cart is saved. Only active quotes will be shown on the Suspended Carts page as the app filters out any expired quotes. - Quotes in POS have a reference to the NetSuite quote via the quote ID. - Quotes can be resumed in POS, which will generate a cart from the quote. The cart can be updated as needed. When the order is submitted, the NetSuite quote is updated with any additional changes, and a sales order or invoice is initialized from the quote in NetSuite and then persisted. ### Sale Transactions For standard sale transactions, the following records are created: - Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - Customer Payment(s) - multiple records if a multi tender order ### Return Transactions For return transactions, the following records are created: - Return Authorization - Item Receipt - Credit Memo - Customer Refund(s) - multiple records if a multi tender return ### Exchange Transactions Exchange transactions create records for both the original order and the new order components. ### Exchange - Even **Original Order:** - Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - Customer Payment(s) - multiple records if a multi tender order - Return Authorization - for item(s) being returned - Item Receipt - for item(s) being returned - Credit Memo - for item(s) being returned - Customer Refund(s) - multiple records if a multi tender return - for item(s) being returned **New Order:** - Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - for item(s) being purchased in exchange - Customer Payment(s) - multiple records if a multi tender order - for item(s) being purchased in exchange ### Exchange - Customer Gets Refund **Original Order:** - Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - Customer Payment(s) - multiple records if a multi tender order - Return Authorization - for item(s) being returned - Item Receipt - for item(s) being returned - Credit Memo - for item(s) being returned - Customer Refund(s) - multiple records if a multi tender return - for item(s) being returned **New Order:** - Sales Order, Invoice or Cash Sale (depending on chosen transaction type in CMS) - for item(s) being purchased in exchange - Customer Payment(s) - multiple records if a multi tender order - for item(s) being purchased in exchange ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The sum of refunds on the original order will be greater than the sum of payments in exchange. ### Exchange - Customer Pays Additional **Original Order:** - Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - Customer Payment(s) - multiple records if a multi tender order - Return Authorization - for item(s) being returned - Item Receipt - for item(s) being returned - Credit Memo - for item(s) being returned - Customer Refund(s) - multiple records if a multi tender return - for item(s) being returned **New Order:** - Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - for item(s) being purchased in exchange - Customer Payment(s) - multiple records if a multi tender order - for item(s) being purchased in exchange ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The sum of refunds on the original order will be less than the sum of payments in exchange. ### No Receipt Return For returns without a receipt, the following records are created: - Return Authorization - Item Receipt - Credit Memo - Customer Refund(s) - multiple records if a multi tender return ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The return authorization will not be linked to any existing invoice within NetSuite. ### No Receipt Exchange **No Receipt Return:** - Return Authorization - for item(s) being returned - Item Receipt - for item(s) being returned - Credit Memo - for item(s) being returned - Customer Refund(s) - multiple records if a multi tender return - for item(s) being returned ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The return authorization will not be linked to any existing invoice within NetSuite. **New Order:** - Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - for item(s) being purchased in exchange - Customer Payment(s) - multiple records if a multi tender order - for item(s) being purchased in exchange ## NetSuite Integration FAQ Frequently asked questions about NetSuite integration with Point of Sale. ### Frequently Asked Questions Do you support NetSuite's "BIN management" feature? No, we do not support this feature at this time. # NetSuite Postings in Point of Sale From Point of Sale CMS, resend data about invoices, payments, and refunds to NetSuite, if the original posting failed. Use the Successful Orders report to open a webhook, which posts the order to NetSuite and creates the required artifacts. The Point of Sale (POS) app creates records for invoices, payments, return authorizations, item receipts, credit memos, customer refunds, and so on in NetSuite as part of order processing flows. The [Successful Order report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_successful_orders.htm&release=264.0.0&type=5 "View key sales transaction data such as order date, store ID, gross sales, and external order references in Point of Sale CMS. Monitor and analyze your sales operations.") in Point of Sale CMS shows the names of these external NetSuite items for reference. It also has an option to trigger the webhook, which posts the successful order to NetSuite. This in turn creates required artifacts if the external order posting to NetSuite had failed or not been triggered initially after the order was placed. To see a report of successful orders in Point of Sale CMS: 1. In Point of Sale CMS, go to **ORDERS > Successful Orders**. 2. Configure the search filter and select **SEARCH**. Under the column titled "**External Order**", it can show two possible CTA options:![The search filter in Point of Sale CMS that shows the possible CTA options.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_netsuite_postings_cms.png) 1. **View References** — Displays all external or NetSuite artifacts that are created for this order. This option is only available if the order is posted to NetSuite and an External Order ID is available. 1. **External Order ID** — This refers to NetSuite's internal record identifier for **SALES\_ORDER** or **INVOICE**. 2. **Record Identifier** — This refers to NetSuite's internal record identifiers for various documents created in relation to Sales Order or Invoice. 3. **Record Type** — The data under this column gives you the NetSuite's internal record identifiers for documents like **CUSTOMER\_PAYMENT**, **CREDIT\_MEMO**, and so on![The external reference details for an order in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_record_type.png) 3. **Repost**—If an External Order ID isn't available (that is, the order isn't created in the merchant's system), a Repost CTA shows instead. If selected, it launches the webhook, which posts the order to NetSuite. After launching, External or NetSuite artifact references are shown in the successful order report if the report is rerun.![A window asking you if you're sure you want to repost an order.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_reports_repost.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important NetSuite's internal record identifiers aren't the same as the ‌Sales Invoice number or Customer Deposit numbers. # Network Tethering Using Epson Printers Use network tethering to connect your register to a network via an Epson printer if Wi-Fi is unstable or there are limited ethernet ports. Connect the register to the printer using a USB cable for a stable and reliable Point of Sale (POS) system, while also charging the iOS device. ## Epson Printers and Network Tethering Epson printers provide another alternative for Ethernet connection. The network tethering offers a network connection to the register that is connected to the printer using a Lightning (or USB-C) to USB-A cable. This enables a stable and reliable operation of the POS system. In addition, the iOS device can be charged at the same time. ## Using Network Tethering - If the stores have unstable Wi-Fi and seek a stable ethernet connection. - If the stores have a shortage of ethernet ports and want to use a common ethernet port for both printer and register. Epson Printer Models supported are TM-m30II, TM-m30II-H or TM-m30II-NT The speed of the wired network communication using network tethering is about five Mbps or lower. Depending on the environment, the speed is slower than Wi-Fi communication. ## Prerequisites - Epson Printer firmware: 3.03A ESC/POS or later, or 3.03B ESC/POS or later - Install Epson TM Utility app from the App Store ## Check and Enable Network Tethering - Open the Epson TM Utility app on your register and check if your printer is selected at the top. If not, select through to find your printer and select it. - After selection, select "**Change Printer Settings" > "Interface"**. - Find "**Network Tethering**" and check if you see Enabled or Disabled. - If turned off, select **Network Tethering** and an option to select **Enabled** or **Disabled** appears. - Select "**Set to printer**" button at the bottom right. ## Printer to iOS Device Connection - Connect the printer to a wired network. - Turn on the printer, and then wait until the Ethernet LED stops flashing and stays on. - On the iOS device, tap **Settings > Wi-Fi > Disable Wi-Fi**. - Connect the iOS device to the printer using a Lightning (or USB-C) to USB-A cable. Make sure to connect the cable to the USB-A Device Charging connector that is marked iPad. - On the iOS device, tap **Settings > Ethernet**, and then check that an IP address has been set. - If a DHCP server isn't used on the network, set the IP address and subnet mask manually. ## Troubleshooting If the Orange Warning LED stays on the printer after connecting to the iPad, follow these instructions: - Check the TM Utility app to make sure the printer is on the latest firmware. - If the firmware is the latest, power cycle the printer by powering it off and powering it back on again. # Network Topology for POS and Hardware Integrate Point of Sale with supported peripherals by understanding the necessary network calls and communication protocols. Ensures communication among your iPad, iPhone, and devices like card readers, printers, scanners, and cash drawers. ## Network Protocol Table
Vendor Protocol Port Notes
Card Reader      
Adyen TCP 8443 Terminals and iPads should be in the same subnet
Elavon TCP 6000  
Verifone TCP 5015, 5016, 5020 For the Payment SDK, the default primary port number is 5015, and the secondary port number is 5016. 5020 is used for "unsolicited" notifications from Payment SDK.
Printer      
Epson UDP 3289

Discovery by ENPC Broadcast Service

  • UDP Multicast should be allowed on the subnet
  • Turn off ARP Broadcast Filtering
Epson Fiscal TCP 9100  
Star TCP 9100  
Scanner      
Star Accessory TCP 9100 Uses the established network channel between the POS and Printer. No new communication channel is needed.
Cash Drawer      
APG Net Pro - Discovery UDP 10004  
APG Net Pro - Commands TCP 30998  
## Example This example diagram shows the protocols and ports used among an iPad, card reader, printer, and cash drawer. That this diagram is specific to Adyen terminals and Epson printers.![An example network configuration for the POS App and hardware.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_hardware_network_protocol_example.png) # New Account Manager Password Requirements For stronger passwords and better security, we're revising password requirements in Account Manager. **When:** These upcoming changes aren't part of this release. We're announcing this change in advance so that you're aware of these changes. New password requirements are as follows: - Must be at least X characters long. (X can be configured on organization level and must always be equal to or greater than 12) - Must not reuse any of the Y previous passwords. (Y can be configured on organization level and must always be equal to or greater than 4) - Minimum complexity must include three out of four - numbers, symbols, lower case, upper case - Must not include part of your name or username or UUID Existing or unexpired, passwords aren't impacted with above new password requirements. The new password requirements are enforced when a password is reset or changed. # New Account Manager Password Requirements For stronger passwords and better security, The password requirements for Account Manager are changing. **When:** These upcoming changes aren't part of this release. We're announcing this change in advance so that you're aware of these changes. **How:** New password requirements will be as follows: - Must be at least 12 characters long. (The number of characters can be configured on the organization level and must always be equal to or greater than 12) - Must not reuse any of the 4 previous passwords. (The number of previous passwords can be configured on organization level and must always be equal to or greater than 4) - Minimum complexity must include three out of four - numbers, symbols, lower case, upper case - Must not include part of your name or username or UUID Existing and unexpired, passwords are not impacted with above new password requirements. This change will be enforced when a password is reset or changed. # New Account Manager Password Requirements For stronger passwords and better security, we're revising password requirements in Account Manager. The new password requirements are as follows: - Must be at least 12 characters long. (You can configure the number on the organization level. The number must always be equal to or greater than 12) - Must not reuse any of the 4 previous passwords. (You can configure the number on the organization level. The number must always be equal to or greater than 4) - Minimum complexity must include three out of four - numbers, symbols, lower case, upper case - Must not include part of your name or username or UUID ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note The 12 character requirement is enforced for all users with a shorter minimum password length. Existing or unexpired, passwords aren't impacted with above new password requirements. The new password requirements are enforced when a password is reset or changed. # New Account Manager Password Requirements for API Client For stronger passwords and better security, new password requirements are now enforced for Account Manager API Clients. The new password requirements are: - Must be at least 12 characters long. (You can configure the number on the organization level. The number must always be equal to or greater than 12) - Minimum complexity must include three out of four - numbers, symbols, lower case, upper case. - Must not include part of your name or username or UUID. Existing passwords aren't impacted. The new password requirements are enforced when a password is changed. # New Account Manager Warning Message During Account Manager log in, administrators now receive a warning message when their organization has users who have been in a deleted state for 90 days or more. The message includes a reminded to purge those users. To maintain security and compliance, Account Manager users that are in a deleted state are automatically removed after 180 days. **How:** Account Manager administrators can display a list of users who have been in a deleted state for 90 days or more. After a user is removed, their user record and history of activities is removed from Account Manager. To save a user’s history, copy it from Account Manager before the user is purged. Use the commands in the Working With Audit Logs open-source tool to export it. See Also: [Working With Audit Logs](https://github.com/SalesforceCommerceCloud/sfcc-ci/wiki/Cheatsheet-and-Examples#working-with-audit-logs) [Automatic Removal of Commerce Cloud Account Manager Users in Deleted State](https://help.salesforce.com/s/articleView?id=000394858&type=1&language=en_US) # New Accounts That Remain Inactive Are Purged After 90 days New accounts that remain in the status Waiting for Activation for over 90 days are automatically purged. A job runs once a day remove these accounts. # New Customer Metrics in the Traffic Dashboard We added new customer metrics to the Commerce Cloud Reports and Dashboards Traffic dashboard Number of New Customers (Registration) and Total Number of Customers. The new metrics provide details about initiatives to drive storefront customer registration and the total number of customer registrations by site or across all sites. You can filter both metrics by site and date. # New File Retention Rules Enabled for POD Sandbox and Primary Instances As previously announced, updated file retention rules are applied to files in the /Logs, /Securitylogs, /Impex, and /Temp folders. Previously, different folders, instances, and environments used different file retention periods or no retention period at all. With the 21.1 release, the new retention logic is enabled for POD Sandbox and primary instances. Download and save files you want to retain for longer than the new retention period. What: During the transition to the new retention logic, some instances have /Impex/\_trash and /Temp/\_trash folders that contain the files to be deleted for 30 days. You can recover files from the \_trash folders during that 30 days. Adjust your configuration so that you don't depend on the files in the \_trash folders. Beginning with Release 21.2, the files are deleted immediately and not moved into \_trash folders. The new retention periods are as follows: - /Logs: Files are compressed and moved into subfolder log\_archive after three days. Files are deleted after 30 days. - /Securitylogs: Files are deleted after 90 days. - /Impex and /Temp: Files are deleted after 30 days. Use the space in these folders carefully. Delete unnecessary files as soon as possible. To avoid performance and stability problems, you can’t store more than 100,000 files in a folder. If there are more than 100,000 files in a folder, files are deleted starting with the oldest first even if the files are newer than the retention period for the folder. The 100,000 limit applies to files in one specific folder, not across subfolders. #### See Also - [Test Promotions Using the Promotions Tracing](https://documentation.b2c.commercecloud.salesforce.com/DOC3/index.jsp?topic=%2Fcom.demandware.dochelp%2Fcontent%2Fb2c_commerce%2Ftopics%2Fpricebooks%2Fb2c_optimized_price_books.html) # New Headers Allowed in dw.system.Response Class New header options are available for `dw.system.Response`. How: You can use these additional headers in the class: - Cross-Origin-Opener-Policy - Cross-Origin-Embedder-Policy - Cross-Origin-Resource-Policy - Cross-Origin-Opener-Policy-Report-Only - Cross-Origin-Embedder-Policy-Report-Only The headers Cross-Origin-Opener-Policy-Report-Only and Cross-Origin-Embedder-Policy-Report-Only are allowed only in a storefront response. The report recipient can't be a B2C Commerce system. If you write custom code that sets these headers, make sure all applicable resources are loaded for the storefront site. # New High Scale Price Book Limit on Number of Prices To maintain peak performance for high scale price books, each price book is capped at 300 million prices. #### See Also - [Log File Types](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/site_development/b2c_understanding_log_files.html) # New Jobs for Search Index Rebuild New jobs trigger the rebuild of search indexes. As a developer, you can now trigger a search index rebuild via OCAPI to easily set up and test new instances. How: You can trigger Incremental or full index rebuilds by calling the following jobs: - sfdc-search-index-product-incremental-update - sfdc-search-index-product-full-update - sfdc-search-index-content-incremental-update - sfdc-search-index-content-full-update - sfdc-search-index-active-data-incremental-update - sfdc-search-index-active-data-full-update # New Location for Job Files Starting with 21.10 log files of custom and system jobs are created in WebDAV path `/Sites/LOGS/jobs//.log`. The old location `/Sites/IMPEX/log` continues to contain log files created before 21.10. Log files from Import, Export, and Batch processes continue to be created in `/Sites/IMPEX/log`. How: For most use cases no immediate action is required: - A new WebDAV permission for the path `/Sites/LOGS/jobs` is introduced. All user roles and client IDs that were configured to have access to /Sites/IMPEX/log in 21.9 will gain access to the new folder after migration to 21.10. - Users of the Folder Browser in Business Manager are guided to the new path. - Custom-built automation that relies on the log\_file\_name property of the JobExecution document from the Data API 21.8 or lower, to download log files, continues to work. Before switching to Data API 21.10 adjust automation to use the log\_file\_path property newly introduced in the JobExecution document instead of log\_file\_name. # New Multi-Factor Authentication Error Message During multi-factor authentication (MFA), when a user tries to Log in with an insecure Device, Account Manager displays the following prescriptive error message: Your log in request can't be completed. Set PIN, pattern or passcode to secure your mobile device and try again. # New Multi-Factor Authentication Methods We've added two new multi-factor authentication methods: Webauthn Cross Platform (FIDO2) and TOTP. Account administrators can decide which Multi-Factor Authentication methods they want for their organization. **Why:** Verification as a service (VaaS) provides users with more flexibility when securing their organizations. # New On-Site Search Report The On-Site Search report shows search metrics across all sites. Track KPIs over time, such as total number of searches, number of searches with or without results, number of searches per visit, and revenue per search. The report also includes a list of search phrases that returned results and search phrases that did not return results. You can filter by site, locale, device type, and customer registration. # New Override Price Books Preference Merchandisers can now define a hierarchical override model that lets store-level prices override parent price book prices. The feature is controlled by a new preference, Enable Price Books Override, which can be found in the new Pricing Preferences module. This feature is helpful for merchants with repeated price entries in store-level price books because reducing the total price entries can optimize storefront lookup prices. Where: To access the global admin preference, go to Administration > Global Preferences > Pricing Preferences > Enable Price Books Override. How: Define a parent-child relationship by setting one price book to be based on another. Define this relationship on either the Price Book screen or via XML imports. If you disable the preference, the cheapest price is returned rather than the price from the child price book. Prices defined in the child price book override prices in the parent price book. If the prices in the child price book are empty, the engine inherits the prices from the parent price book for the product. # New Page Designer Default Page The Default-Start and Home-Show endpoints now utilize Page Designer if the page is available. **Why:** This change improves page designer workflow by establishing the homepage template as the default starting point. #### See Also - [Developing for Page Designer](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-dev-for-page-designer.html#developing-for-page-designer) # New Product Attributes for Price Per Unit Feature You can now display two new product attributes for shoppers on the product display and product list pages: unit quantity and unit of measurement. These attributes let shoppers compare the value between similar products of varying quantities. How: You can import these two product attributes. The pricing engine then calculates and returns the price per unit (PPU) via the following APIs: - OCAPI - Shop API - GET /products - GET /product\_search - Data API - GET /products - POST /product\_search - Script API - dw/catalog/ProductPriceModel - dw/catalog/ProductSearchHit We don’t currently support the ability for the merchant to directly input the PPU from an external source. Although PPU can be shown as a product attribute in search results or on product list page (PLP), sorting and filtering by PPU is not currently supported. This functionality will be available in the Commerce API in a future release. For more information, see [Pricing and Price Books](https://help.salesforce.com/s/articleView?id=cc.b2c_pricing_and_price_books.htm&language=en_US). Detailed list of APIs updated: - Shop Resources (OCAPI) - products\_{} with expand=prices - GET /products/{id} - New fields: "price\_per\_unit", "price\_per\_unit\_max" - products\_({}) with expand=prices - GET /products/({id}) - New fields: "price\_per\_unit", "price\_per\_unit\_max" - product\_{}\_pricesGET /products/{id}/prices - New fields: "price\_per\_unit", "price\_per\_unit\_max" - product\_search with expand=prices - GET /product\_search with expand=prices - New fields: "price\_per\_unit", "price\_per\_unit\_max" - product\_search\_prices - GET /product\_search/prices - New fields: "price\_per\_unit", "price\_per\_unit\_max" - Data Resources (OCAPI) - products\_{} with expand=prices - GET /products/{id} - New fields: "price\_per\_unit" - product\_search with expand=prices - POST /product\_search - New fields: "price\_per\_unit" - dw/catalog/ProductPriceModel (Script API) - getPricePerUnit() : Money - getPricePerUnit( quantity:Quantity ) : Money - getMinPricePerUnit() : Money - getMaxPricePerUnit() : Money - getPriceBookPrice(priceBookID : String) : Money (TODO in W-7655829) - getPriceBookPrice(priceBookID : String, quantity : Quantity) : Money (TODO in W-7655829) - getMinPriceBookPrice(priceBookID : String) : Money (TODO in W-7655829) - getMaxPriceBookPrice(priceBookID : String) : Money (TODO in W-7655829) - dw/catalog/ProductSearchHit (Script API) - getMinPricePerUnit() : Money - getMaxPricePerUnit() : Money # New Promotion Limits To ensure that promotions are evaluated efficiently, limits for the number of promotion tiers, product options, categories, and other attributes are now enforced. All defined limits are per promotion. - Tiers: 50 - CombinablePromotions: 200 - MutuallyExclusivePromotions: 200 - QualifyingValues: 10,000 - Categories: 500 - PriceBookIds: 200 - Product Attribute Values: 100 - Product Sets: 100 - Product Options: 100 - Conditions (Product Specifications): 100 - Rules: 20 - Shipping Methods: 200 - Payment Methods: 100 - Bonus Products: 20 - Bonus Choice Products:50 - Discount Constraint: 100 - Product Shipping Method Names: 20 200 - Line Item Constraints: 100 # New Reminder to Remove Role-Tenant Filters When you remove an organization from a user detail page, a warning is now displayed as a reminder to remove all role-tenant filters belonging to the organization. If the role-tenant filters are note removed, the user retains access to them. # New Total Price Entries Quota We're enforcing a new quota on total price entries. Customers now receive a WARN error when they reach 290 million price entries and an ERROR when they reach 300 million price entries. # No Profile, No Card, No Receipt Returns (NRR) in POS Allow returns for customers who don’t have a purchase receipt or a customer profile. No Profile, No Card, No Receipt Returns (NRR) in Point of Sale are performed at the lowest historical price and only if the returning item is still available in the system. These returns and exchanges are supported as part of NRR: - Returning an item or multiple items - Returning item(s) along with a purchase where a customer still gets a refund - Returning item(s) along with a purchase where a customer makes a payment - Even exchanges for an item or multiple items - Even exchanges for item(s) with purchase For receipted returns, see [Set Up and Configure Returns Policy](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_set_up_and_configure_returns_policy.htm&release=264.0.0&type=5 "Configure store return policies for online and offline support in the Point of Sale app. You can create a policy for outlet stores and regular stores."). ## Known Issues & Restrictions **Tax Displayed on ‘Return Selected Product’ Page and on Return Cart Page Are Different** If a customer returns a product that was part of an order taxed at a specific rate based on a taxable amount threshold, and the product price doesn't surpass this threshold, the originally applied tax can't be added and needs to be part of the product price override. For example, let’s say you have a specific tax that is only applied if the total order amount is greater than $200. If you want to return one of the $50 items, we can't tell you the tax on that item because we don't have the total order amount. **TLog Displays Incorrect Tender Information in Successful Orders** For exchanges without a receipt, a proxy order (placeholder order) is created with a placeholder tender, and then the proxy order is exchanged. Hence, the placeholder tender is carried forward to an exchanged order. Depending on the order of Tender Types in your CMS’s Return Policy Configuration, the first tender under the No Receipt Return configuration is used as a placeholder tender during an exchange. - **[Configure No Profile, No Card, No Receipt Returns (NRR) in Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_nrr_configure.htm&release=264.0.0&type=5)** Enable a flexible return process in CMS without requiring a physical receipt or customer profile. Customers can return products based on a simple search, and you can set preferred refund methods and customize the NRR layout for efficient handling. - **[NRR POS App Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_nrr_pos_flow.htm&release=264.0.0&type=5)** Conduct returns for customers with no profile or no receipts in the POS app app. - **[Get to Know No Profile, No Card, No Receipt (NRR) Returns](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_nrr_faq.htm&release=264.0.0&type=5)** No Profile, No Card, No Receipt (NRR) returns allow retailers to process returns without the original order details. Point of Sale creates a new staged order with the items for return, which enables processing returns or exchanges, even without a receipt. Refunds for NRR returns are issued using the tender configured in the NRR policy. # No Restrictions for CONTENT\_SECURITY\_POLICY Set the `CONTENT_SECURITY_POLICY` in B2C Script class `dw.system.Response` to any string value. Previously, the only directive allowed was `frame-ancestors`. #### See Also - [Class Response](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/DWAPI/scriptapi/html/api/class_dw_system_Response.html) # No-Cost Shipping Promotion Create promotions in Point of Sale CMS that automatically apply no-cost shipping to eligible orders at checkout on the Point of Sale (POS) app. Offer customers no-cost or discounted shipping with Point of Sale's No-Cost shipping [promotion](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_promotions.htm&release=264.0.0&type=5 "Create promotions and automatically validate those promotions in the Point of Sale (POS) app."). You can set up rules to automatically apply no-cost shipping to eligible orders at checkout on the POS app. As of March 2025, Point of Sale offers two types of no-cost shipping (V1 and V2). Each version has different features. ## Support Capabilities
No cost Shipping V1 No cost Shipping V2

App build prerequisite: 10.7.1 or earlier

  • Apply a shipping discount for all promotions that qualify for no-cost shipping

  • Record shipping charges and discounts in TLogs and JSON

  • Print shipping charges on receipts

App build prerequisite: 10.8.1 or greater

  • Apply a shipping discount for all promotions that qualify for no-cost shipping

  • Record shipping charges and discounts in TLogs and JSON

  • Compatibility with delivery groupings

  • Print shipping charges and discounts on receipts

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note To use V2, update your app builds to 10.8.1 or higher. Support is still available for V1, but use app builds 10.7.1 or lower to successfully apply V1 no-cost shipping. Only one type of no-cost shipping (V1 or V2) will be allowed to use and apply on the POS app. To show shipping discounts at the line-item level at checkout and on receipts, first delete or deactivate any No-cost Shipping promotions you’ve configured in CMS. Because the No-Cost Shipping promotion applies at the delivery-group level, it overrides item-level shipping discounts sent using the Delivery Group SPI. ## Configure Point of Sale CMS for No Cost Shipping Setup Point of Sale CMS to let merchants create no-cost shipping promotions. ### Create V1 No-Cost Shipping Promotions 1. Go to **Promotions > Free Shipping.** 2. Configure the [promotion](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&release=264.0.0&type=5 "Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes."). ### Create V1 No-Cost Shipping Promotions 1. Go to **Promotions > Free Shipping**(in v10.8.1 or later). 2. Configure the [promotion](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&release=264.0.0&type=5 "Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes."). ### Configure Print Receipts 1. In Point of Sale, create or edit a [print receipt layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_receipt.htm&release=264.0.0&type=5 "Customize Point of Sale receipts to enhance customer experiences. Configure store-level print receipts and use templates for order returns. The Receipt Layout editor allows you to tailor headers, footers, and item details. Understand common challenges and best practices for clear and readable receipts, including managing returns and exchanges."). 2. To print shipping charges at the order level, add the PS Tag :ps\_o\_shipping\_charges. 3. To print shipping discounts at the order level, add the PS Tag :ps\_o\_shipping\_discount\* . 4. To print the shipping method at the product level, add the PS Tag :ps\_p\_shipping\_method\_name. 5. To print the shipping method charges at the product level, add the PS Tag :ps\_p\_shipping\_method\_charges\*. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: \* - This tag is only supported for V2 and app builds 10.8.1 or greater. ## View No Cost Shipping in the Point of Sale App View how no-cost shipping is applied in the Point of Sale (POS) app. For V1 promotions, after adding a valid promotion to the cart, the **Shipping Options** window will display all shipping methods as no-cost (for example $0). After selection, the cart summary will note the shipping charges as no cost. For V2 promotions, the **Shipping Options** window will display all shipping methods in the Shipping Options modal will appear as no cost (for example, $0). Once a method is selected, the cart summary will display individual shipping discounts. These discounts will apply to each eligible item (for example, -$5.00). Shipping discounts are shown in the quote summary, order history, and virtual receipt on the terminal. However, these views show only the total shipping discount, not item-level breakdowns. The cart summary is the only place where individual item shipping discounts are detailed. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note For this feature, you need to enable Allow Multiple Shipping Addresses Per Order in the Omnichannel settings and be on app version 11.1.1 or later.  ## View Electronic No Cost Shipping in Point of Sale CMS Observe shipping records in JSON or in an Electronic Journal. ### JSON Both V1 and V2 at no-cost shipping promotions are recorded in the JSON (XML coming soon), but they are reported differently. For example, consider an original shipping cost of $10 with a no-cost shipping promotion of $10, resulting in no-cost shipping ($0). In V1, the `shippingDiscount` field doesn't exist, while in V2, the field records the applied discount as 10.00. Additionally, for V2 no-cost shipping promotions, the `priceAdjustment` list under the selected shipping method of the cart or `DeliveryGroup` (`deliveryGroups.shippingMethod.priceAdjustments`) will display promotion details. This isn't applicable for V1. ### Electronic Journal The Electronic Journal will display shipping discounts in the “Total Discounts” column. This will show you the total value of all your shipping discount groups combined, rather than separating them individually. ## Understand Known Issues with No Cost Shipping Create promotions in Point of Sale CMS that automatically apply no-cost shipping to eligible orders at checkout on the Point of Sale (POS) app. Point of Sale's [Promotion](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&release=264.0.0&type=5 "Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes.")configuration lets you offer customers no-cost or discounted shipping. You can set up rules to automatically apply no cost shipping to eligible orders at checkout on the POS app. As of March 2025, Point of Sale offers two types of no cost shipping (V1 and V2). Each version has different features. ### Support Capabilities
No cost Shipping V1 No cost Shipping V2

App build prerequisite: 10.7.1 or earlier

  • Apply a shipping discount for all promotions that qualify for no-cost shipping

  • Record shipping charges and discounts in TLogs and JSON

  • Print shipping charges on receipts

App build prerequisite: 10.8.1 or greater

  • Apply a shipping discount for all promotions that qualify for no-cost shipping

  • Record shipping charges and discounts in TLogs and JSON

  • Compatibility with delivery groupings

  • Print shipping charges and discounts on receipts

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: To use V2, update your app builds to 10.8.1 or higher. Support will still be available for V1, but use app builds 10.7.1 or lower to successfully apply V1 no-cost shipping. Only one type of no-cost shipping (V1 or V2) will be allowed to use and apply on the POS app. # Node.js 18 Upgrade SFRA now uses Node.js 18. Node.js is used during the SFRA build process. The upgrade improves security, enhances UI tests, and updates several plugins and cartridges. The updated cartridges include: - sgmf-scripts - plugin-applepay - plugin\_giftregistry - plugin\_instorepickup - plugin\_ordermanagement - plugin\_productcompare - app\_storefront\_base - lib\_productlist - plugin\_cartridge\_merge - plugin\_datadownload - plugin\_sitemap - plugin\_wishlists - plugin\_slas #### See Also - [Get Started with Storefront Reference Architecture](https://developer.salesforce.com/docs/commerce/sfra/guide) # Notify Shoppers When a PayPal Order Needs Reapproval Create a localized, personalized message to inform shoppers when an approved PayPal order amount increases and requires reapproval. Previously, a default message appeared if a payment amount needed reapproval. **Where:** This change applies to Salesforce Payments for B2C Commerce. **How:** In the `salesforcepayments.properties` property file in any cartridge, add `paypal.error.PAYER_ACTION_REQUIRED` with your custom message. For example, `paypal.error.PAYER_ACTION_REQUIRED=We’re sorry to inform you that the payment amount has increased. Please return to PayPal if you would like to reapprove the order.` #### See Also - [Class Resource](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/scriptapi/html/index.html?target=class_dw_web_Resource.html) # November 2023 PWA Kit and Managed Runtime PWA Kit - Improve Customer Engagement with Active Data - Use Active Data in your PWA Kit site to observe product performance metrics and set automated rules for merchandising. See [Active Data](http://review-app-sdb2c-com-pr-1078.herokuapp.com/docs/commerce/pwa-kit-managed-runtime/guide/active-data.html). - Validate Upcoming Site Changes with Storefront Preview - Use the Storefront Preview feature to see how your PWA Kit site will look in different contexts such as specified source code, customer groups, or a particular date or time. For example, preview your site changes in a staging environment before deploying them to production. See [Storefront Preview](http://review-app-sdb2c-com-pr-1078.herokuapp.com/docs/commerce/pwa-kit-managed-runtime/guide/storefront-preview.html). Managed Runtime - Enhanced Integration with Commerce Cloud - When you create an environment in Runtime Admin, you can now select a Commerce Cloud instance and sites to connect to the environment. This allows for deeper integration between your Managed Runtime environments and the Commerce Cloud platform. You can also use new Managed Runtime API endpoints to manage and track your environments’ connections to Commerce Cloud instances. For more information, see this documentation: - [Create an Environment](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/managed-runtime-administration.html#create-an-environment) - [Managed Runtime API Tutorial](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/using-the-managed-runtime-api.html#tutorial) - [cc\_b2c\_organization\_info\_retrieve](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/mrt-b2c-config?meta=cc_b2c_organization_info_retrieve) (can be outdated or unavailable before 11/8/2023) - [cc\_b2c\_target\_info\_retrieve](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/mrt-b2c-config?meta=cc_b2c_target_info_retrieve) (can be outdated or unavailable before 11/8/2023) - [cc\_b2c\_target\_info\_partial\_update](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/references/mrt-b2c-config?meta=cc_b2c_target_info_partial_update) (can be outdated or unavailable before 11/8/2023) # NRR Lowest Price Calculation in Point of Sale Point of Sale calculates the lowest price based on these criteria: Store Historical Prices, Product Multi-Region Historical Prices, and Product Historical Prices. When the lowest price is found for a given number of days, that price is returned as the NRR lowest price. After an API call, Point of Sale calculates the lowest price in the this order: Store Historical Prices, Product Multi-Region Historical Prices, Product Historical Prices. Step 1: The system looks at all the prices in the Store Inventory history for a product. It compares the list price, sales price, and price of the product for the last set number of days. The comparison searches for the lowest price. If the lowest price is found, then no further comparison is done. However, if it's not found, then the system proceeds to the next step. Step 2: The system searches for the sales price in the Product Multi-Region history and provides the lowest price for the last set number of days. If the lowest price is found, then no further comparison is done. However, if it's not found, then the system proceeds to the next step. Step 3: The system looks for the prices in the Product history. The system provides the lowest price for the last set number of days. However, if it's not found in this last step then no NRR price is returned. ## Known Issues & Restrictions - In order to update the NRR price, the store price needs to be active for at least 90 minutes. - **[Configure NRR Lowest Price Calculation](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_low_price_calculation_configure.htm&release=264.0.0&type=5)** To populate lowest prices, a Point of Sale account (Merchant, Region, Locale) must set value types for tender types for returns without receipts. - **[POS App Flow for NRR Lowest Pice](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_low_price_pos_flow.htm&release=264.0.0&type=5)** Lookup a lowest price for a product in the POS app. - **[Validate Lowest Price Offline in POS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_low_price_offline.htm&release=264.0.0&type=5)** Test and validate NRR's lowest price while in offline mode in the POS app. # NRR POS App Flow Conduct returns for customers with no profile or no receipts in the POS app app. ## Initiating NRR Tap the **Returns and Exchanges** deeplink in the POS app. Then select **No Receipt** and perform a return by searching by customer, order, credit card, or product. If searching by product, there are options to manually enter or scan the barcode. Optionally, you can look up the product. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If No Receipt Returns - Search by Product is turned off, users see the error message, "_Returns without receipt records are not allowed_," which prevents them from processing an NRR via product search. ## Product Price Correction Once the product has been found, the app prompts the store associate to correct the price. If no price correction is needed, the app performs the lowest price of the returning item (depending on the time frame preset in CMS). If a price correction is needed, the store associate can enter the price and select a reason code. Tap **Return Selected Product** to the product to the cart to initiate the refund process. Tap **Return** to select the type of refund tender. If the manager approval required setting is turned on and the logged-in associate's role isn't a manager, then the POS app prompts for a manager login. Once the associate enters the manager's credentials, the return is completed. ## Completing Returns Tap **Return Selected Product** to the cart to initiate the refund process. Tap **Return** to select the type of refund tender. If the manager approval required setting is turned on and the logged-in associate's role isn't a manager, then the POS app prompts for a manager login. Once the associate enters the manager's credentials, the return is completed. # Objects Used by Order Management Order Management objects, together with existing objects, represent the elements of an order as it progresses through its lifecycle. ### Required Editions
View supported editions.
Order Management uses these object types to represent data in the order workflow. Some of them are standard Salesforce objects, and some are available only in orgs with an Order Management license.
Object Requires Order Management License Description
Account (Person Account)   When using Person Accounts, an account of the Person Account record type represents an individual shopper. When not using Person Accounts, a standard account and contact together represent an individual shopper. A business account buyer or shopper always has a standard account and a contact.
Card Payment Method Checkmark A credit card or debit card.
Contact   When not using Person Accounts, a standard account and contact together represent an individual shopper. When using Person Accounts, contacts aren’t used for individual shoppers. A business account buyer or shopper always has a standard account and a contact.
Credit Memo Checkmark An amount to be refunded after an invoice has been generated. Associated with one or more change orders.
Credit Memo Line Checkmark A portion of the amount of a credit memo. One credit memo line can represent the full amount of a credit memo.
Digital Wallet Checkmark A digital payment method.
Fulfillment Order Checkmark A fulfillment request or shipper’s instruction that can be sent to a fulfillment location. Represents a group of products and delivery charges on a single order that have the same fulfillment location, delivery method, and recipient. They can be included in one shipment or split into multiple shipments. A fulfillment order is associated with one order summary.
Fulfillment Order Product Checkmark A product or delivery charge associated with a fulfillment order. Associated with one order product summary.
Fulfillment Order Product Adjustment Checkmark A price adjustment on a fulfillment order product, usually a discount. Associated with one order product adjustment summary.
Fulfillment Order Product Tax Checkmark The tax on a fulfillment order product or fulfillment order product adjustment. Associated with an order product tax summary.
Invoice Checkmark An amount to be paid. Associated with one fulfillment order.
Invoice Line Checkmark A portion of the amount of an invoice. One invoice line can represent the full amount of an invoice.
Location Checkmark A location that fulfills orders, such as a warehouse or retail store.
Location Group Checkmark A group of inventory locations. You can define location groups according to the logic of your business needs. For example, a location group can represent the warehouses in a geographic region, or it can include the fulfillment centers associated with a particular online storefront.
Location Group Assignment Checkmark Represents the relationship between a location and a location group that includes it. You can assign a location to multiple location groups, in which case there’s one location group assignment for each location group that it’s assigned to.
Order   An original order or a change to an order, such as a return or cancellation. It’s associated with one order summary, which represents the current state of an order. The values on order records don’t usually change. In Order Management, you usually interact with order summaries instead of orders.
Order Adjustment Group Checkmark Defines a related set of price adjustments to order products on one order. In Order Management, you usually interact with order adjustment group summaries instead of order adjustment groups.
Order Adjustment Group Summary Checkmark Defines a related set of price adjustments on order product summaries belonging to one order summary. The integration with Salesforce B2C Commerce assigns an order adjustment group summary for each storefront promotion to the adjustments that belong to that promotion.
Order Delivery Group Checkmark Defines a group of order products belonging to one order to be fulfilled using the same delivery method and delivered to the same recipient. In Order Management, you usually interact with order delivery group summaries instead of order delivery groups.
Order Delivery Group Summary Checkmark Defines a group of order product summaries belonging to one order summary to be fulfilled using the same delivery method and delivered to the same recipient. An order delivery group summary is used to create one or more fulfillment orders.
Order Delivery Method Checkmark Order Management uses an order delivery method record together with a product record to represent a delivery method. The product record is added to an order to represent a charge for that delivery method.
Order Payment Summary Checkmark Represents one or more payments that use the same payment method and are associated with the same order summary. The order payment summary’s values are the sums of the values of the included payments. Unlike most summary objects, there’s no corresponding Order Payment object.
Order Product   An original product on an order. It can also represent a charge, such as a delivery charge. With an order product summary change, it can also represent a change to a product on an order, such as a return or cancellation. In Order Management, you usually interact with order product summaries instead of order products.
Order Product Adjustment Checkmark An adjustment to the price of an order product, usually a discount. However, in Order Management, you typically interact with order product adjustment summaries instead of order product adjustments.
Order Product Adjustment Summary Checkmark An adjustment to the price of an order product summary, usually a discount.
Order Product Summary Checkmark The current state of a product in an order summary. The summary tracks status by quantity. For example, the summary could show an ordered quantity of 3, canceled quantity of 1, and fulfilled quantity of 2. The summary is associated with an original order product and any order product summary changes that apply to it, such as returns or cancellations.
Order Product Summary Change Checkmark Data related to a change to an order product summary, such as a return or cancellation. It’s associated with an order product summary and an order product.
Order Product Tax   The tax on an order product. However, in Order Management, you usually interact with order product tax summaries instead of order product taxes.
Order Product Tax Summary Checkmark The current state of tax on an order product summary or order product adjustment summary. Multiple order product tax summaries can apply to one order product summary or order product adjustment summary.
Order Summary Checkmark Represents the current properties and state of an order, including fulfillment information. The summary is associated with one order that represents the original order. The order summary’s values are the sums of the values in the original order and any subsequent orders representing changes, such as returns or cancellations.
Order Summary Routing Schedule Checkmark Represents an attempt to route an order summary to one or more inventory locations for fulfillment. You can use it to schedule future attempts and to record completed attempts.
Payment Checkmark A single payment capture or sale.
Payment Authorization Checkmark A single payment authorization.
Payment Credit Checkmark Tracks the amount of money returned to the customer. The return can be a store credit, a gift card, or another type of credit. It's linked to the original payment record and includes the total credit amount issued.
Payment Credit Line Payment Checkmark A payment credit line payment.
Payment Credit Transaction Checkmark A payment credit transaction.
Payment Gateway Checkmark A connection to an external payment gateway.
Payment Gateway Log Checkmark A record of information exchanged between the Salesforce payments platform and an external payment gateway. It can also store data from external payment entities.
Payment Gateway Provider Checkmark Used internally by the payment gateway connection.
Payment Group Checkmark A group of payment transactions that have been processed for an order.
Payment Line Invoice Checkmark A payment allocated to or unallocated from an invoice.
Payment Method Checkmark A payment method, such as credit card, cash, or digital wallet.
Pending Order Summary Checkmark An intermediate storage for B2C order details that are being processed by High Scale Orders. Order details are then processed and converted into an OrderSummary object and related entities.
Person Account   An individual shopper account.
Price Book Entry  

The price of a product in a price book. Order Management doesn’t use this object, but because order products require them, it creates dummy price book entry records. When you create products to represent delivery methods, you must also add dummy price book entry records.

If the Optional Price Books feature is enabled, Order Management doesn’t create price book entry records, and delivery method products don’t require them.

Process Exception Checkmark Represents an unexpected problem with a business process, such as payment capture.
Product   A product that a merchant sells or has sold. A product is also used to represent delivery charges for one or more order delivery methods.
Refund Checkmark A single refund transaction.
Refund Line Checkmark A portion of a refund that has been applied to or unapplied from a payment. One refund line can represent the full amount of a refund.
Return Order Checkmark The return of order products. It’s associated with one order summary.
Return Order Line Item Checkmark A specific order product that is associated with a return order.
Return Order Item Adjustment Checkmark A price adjustment on a return order line item.
Return Order Item Tax Checkmark The tax on a return order line item or a return order item adjustment.
Sales Channel Checkmark A source of orders, such as a web storefront, physical store, marketplace, or mobile app. If you use Salesforce B2C Commerce, we recommend creating a sales channel record for each site in your B2C Commerce implementation.
Shipment Checkmark

A single package that is associated with one fulfillment order.

The Shipment object is also available with Field Service. However, it’s associated only with a fulfillment order in Order Management orgs.

Shipment Item Checkmark A product included in a shipment that is associated with one fulfillment order product.
Web Store Requires the B2B Commerce license A source of orders, usually for B2B orders.
# OCAPI Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.1 release. The OCAPI version remains 19.10. - **[OCAPI: Product Search Handles Commas](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_w6869118_ocapi_product_search_comma_fix_as.htm&release=264.0.0&type=5)** You can now use commas in product search refinement strings. Previously, including a comma caused product searches to fail and return no results. The fix is also implemented in prior versions. # OCAPI Review the B2C Commerce OCAPI update in the 20.10 release. - **[getCustomersProductList Returns a Pageable Response](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_10_w7930991_get_customers_products_list_je.htm&release=264.0.0&type=5)** The Response to getCustomersProductsList now returns a pageable list of all customer's product lists. The default page size is 100. - **[OCAPI Cross Device Activity Tracking](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_10_w_7925659_cross_device_activity_je.htm&release=264.0.0&type=5)** OCAPI supports correlating data across devices for guests and logged in customers, which applies to both client and server side activities. # OCAPI Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.2 release. The OCAPI version is now 20.2. - **[Improved Validation for OCAPI Settings](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_w6999002_ocapi_settings_validation_as.htm&release=264.0.0&type=5)** Validation now checks for duplicate settings, and when you include multiple JSON configuration documents, it validates the settings in all documents instead of only the first. - **[Data API Endpoints for Updating Orders](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_w6833203_ocapi_order_update_endpoints_as.htm&release=264.0.0&type=5)** You can now use Data API endpoints to update orders in server-to-server use cases, such as when an order management system or payment provider initiates a change. # OCAPI Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.3 release. The OCAPI version is now 20.3. - **[More Consistent Error Handling for Shop API DELETE Resources](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_w7025748_ocapi_delete_resource_behavior_as.htm&release=264.0.0&type=5)** Calling certain Shop API DELETE resources on a nonexistent record ID now returns HTTP 404 (ProductItemNotFoundException) instead of HTTP 204 (Success) with a debug log entry. This behavior is more consistent with the overall pattern. - **[Track Customers Across Clouds with OCAPI and Customer 360 Data Manager](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_w7141904_ocapi_new_c360_property_as.htm&release=264.0.0&type=5)** The new read-only property on the Data API Customers resource, global\_party\_id, stores the Global Party ID generated by Customer 360 Data Manager. Use it to track unique customers across clouds. # OCAPI Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.4 release. The OCAPI version is now 20.4. - **[Support Ending for All OCAPI Versions Earlier Than 17.1](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_w7305890_ocapi_versions_eos_as.htm&release=264.0.0&type=5)** Support for all OCAPI versions 13.x, 14.x, 15.x, and 16.x will end on July 1, 2020. If you use any of these versions, you must take action before July 1. - **[Rebuild Search Indexes with the Data API](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_w7211932_ocapi_search_index_jobs.htm&release=264.0.0&type=5)** You can use the Data API to call new system jobs for rebuilding search indexes. # OCAPI Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.8 release. The current OCAPI version is now 20.8. - **[Improve Performance with the parentCategoryTree Element](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_w7758054_ocapi_parent_category_tree_je.htm&release=264.0.0&type=5)** The get category API now has the parentCategoryTree element. The element returns the entire parent category tree. With the parentCategoryTree element, you can improve performance by retrieving the category tree path on the breadcrumb instead of making recursive calls to get the tree. - **[Work with Per-Unit Product Pricing](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_w7757456_ocapi_price_per_unit_as.htm&release=264.0.0&type=5)** Several OCAPI documents now include properties related to per-unit product pricing. The Data API and Shop API `products` and `product_search` resources consume and return these documents. # OCAPI Review the new B2C Commerce OCAPI updates in the B2C Commerce 20.9 release. The current OCAPI version is now 20.9. - **[Retrieve Cart Information and Order History Data for Externally Authenticated Shoppers](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_w7876054_ocapi_external_profile_endpoint_as.htm&release=264.0.0&type=5)** The Shop API Customers resource now has the `ext_profile` endpoint for creating an external profile. # OCAPI 22.6 - Manage Access Keys with Data API With the release of OCAPI 22.6, Business Manager users with the Manage\_Users\_Access\_Key permission can generate, delete, and rotate access keys for other users via a Data API call. The API automates access key generation and rotation for users who primarily use in-store apps to log in to the B2C platform. By using this API, these Business Manager users are no longer required to log in to Business Manager to generate or rotate access keys manually. #### See Also - [Create an Access Key for Logins](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_access_keys_for_business_manager.html) # OCAPI 23.1 - Basket Flash Validation Update With the release of OCAPI 23.1, The property selection mechanism now works with all Shop API resources that return a basket or create an order. Previously, validation returned an error in most instances. # OCAPI 23.1 - Property Selector Key Error Identifier Beginning with OCAPI Version 23.1 a `MalformedSelectorException` is thrown if the selector key is incorrect. Previously, the property selection didn't work when the "`select=` key was incorrectly defined. For example, `select%20=(price)`, resulted in the selector being skipped without any error message, and the normal response was returned. # OCAPI 23.1 - Use Selectors with Expressions Selectors with expressions now work correctly when objects contain a property with markup text. Previously, when an object contained a property with markup text, selectors with expressions didn't work correctly. # OCAPI Caching on eCDN OCAPI caching is now supported on eCDN for the `GET products` API. OCAPI caching decreases the load of API requests to the origin, and improves the API response time by 50% or more - improving performance and load times. When: OCAPI caching enablement begins in early April 2022. How: To see cached responses, set up cache-controls. If you’ve already set up a cache-control header for OCAPI `GET products` calls, no additional changes are needed. To clear cache, use the CDN-API. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note Caching supports customers using the client ID format, `x-dw-client-id`. OCAPI calls that use an authentication header, are excluded from caching. See Also: - [OCAPI Caching 21.10](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/usage/Caching.html) - [Invalidate a Page Cache Partition](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-content-cache.html) - [API: CDN Zones - Commerce Cloud Developer Center](https://developer.commercecloud.com/s/api-details/a003k00000UIKk2AAH/commerce-cloud-developer-centercdnzones) #### See Also - [OCAPI Caching 21.10](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/usage/Caching.html) - [Invalidate a Page Cache Partition](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_invalidating_a_page_cache_partition.html) - [API: CDN Zones - Commerce Cloud Developer Center](https://developer.commercecloud.com/s/api-details/a003k00000UIKk2AAH/commerce-cloud-developer-centercdnzones) # OCAPI Cross Device Activity Tracking OCAPI supports correlating data across devices for guests and logged in customers, which applies to both client and server side activities. How: Client side activities use the `visit_id` as an identifier for guest users. After the user logs in, use a combination of `hashed_login + visit_id`. Server side activities Use the `visit_id` as an identifier for guest users. After the user logs in, use a combination of `hashed_login + visit_id`. # OCAPI JWT Response to Updated Passwords Is Changed To enhance security and align with the SLAS JWT session handling, we updated how the OCAPI JWT handles password changes. Now, if your customer changes their password, all previously issued active OCAPI JWTs are invalidated. The OCAPI client receives an HTTP 401 response, accompanied by a body message that indicates an invalid access token. Previously, the JWT remained valid until its normal timeout. ``` “fault”: { “arguments”: { “accessToken”: “Customer credentials changed after token was issued. Please Login again.” }, “type”: “InvalidAccessTokenException”, “message”: “The request is unauthorized, the access token is invalid.” } ``` # OCAPI: Product Search Handles Commas You can now use commas in product search refinement strings. Previously, including a comma caused product searches to fail and return no results. The fix is also implemented in prior versions. # October 2024 SCAPI release, SCAPI fixes, and SLAS Release with the B2C Commerce 24.10 release: For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SLAS: - With B2C Commerce version 24.10, the SLAS 4xx error logs are available in Log Center, which provides multiple benefits, including a single URL for all realms, up to 14 days of log data, and improved search capabilities. For details, see \[View SLAS Error Logs in Log Center\](https://help.salesforce.com/guides/slas.md#view-slas-error-logs-in-log-center). - [Trusted Agent on Behalf (TAOB) authorization](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-trusted-agent.html): - By default, shopper tracking preferences are disabled, which means the Do Not Track `dnt` parameter is set to `true`. This differs from other SLAS token requests, for which the default `dnt` value is `false`. - Now allows an agent to perform actions on behalf of guest shoppers. - SLAS Service Protection: - Additional service protection has been implemented for the upcoming holiday season. - To enhance security for the Shopper Login API Access Service (SLAS), a channel\_id (site) parameter is now required when requesting a guest access token with a grant\_type of client\_credentials. - Refined documentation, including best practices and sample code for [validating SLAS JWTs with JWKS](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-validate-jwt-with-jwks.html), to simplify key management and enhance security. Server-Side Web-Tier Caching has been enabled for a select few realms where it was previously disabled. For the list of cached APIs and other details, see [Server-Side Web-Tier Caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html). # October 2024 PWA Kit and Managed Runtime **PWA Kit** **Hybrid Storefront Stability Improvements** Improve stability and performance for [hybrid storefronts](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/hybrid-implementation.html) and ensure optimal shopper experience. See [Hybrid Stability Upgrade for PWA Kit Version 3.8.0](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/hybrid-upgrade-v3.x.html) or [Hybrid Stability Upgrade for PWA Kit Version 2.x](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/hybrid-upgrade-v2.x.html). **Personalization with Shopper Context** Personalization with Shopper Context is now pre-integrated into Retail React App version 5.0.0 or later. Support personalized shopping experiences and reduce implementation costs. With Shopper Context, you can use features such as tailored promotions, pricing, and product recommendations to increase conversion and shopper loyalty. See [Personalize with Shopper Context](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/personalize-with-shopper-context.html). # October 2025 SCAPI and SLAS For more detailed release information, see [B2C Commerce API Release Notes](https://developer.salesforce.com/docs/commerce/commerce-api/references/about-commerce-api/about.html). SCAPI: - With B2C Commerce version 25.10, you can use the [Replications API](https://developer.salesforce.com/docs/commerce/commerce-api/references/replications?meta=Summary) to publish a product, price table, and content asset. Publishing an item is only available from STG to PRD and isn't testable on sandboxes. You will be able to use this API when B2C Commerce version 25.10 is rolled out on PIG instances. - Improved Hybrid login support for the SameSite cookie parameter: - Consistently verifies that the SameSite attribute for the dwsid cookie returned during token calls for Hybrid Auth matches the SameSite attribute for dwsid cookies set in Controller calls. - Added preference-based response timeout settings for Sandbox instances types: - A new [Timeouts API](https://developer.salesforce.com/docs/commerce/commerce-api/references/timeouts?meta=Summary) provides customer self-service timeout configuration. This is only available for B2C Commerce Sandbox instances, but will be rolled out to all instance types in the future. SLAS: - To enhance security and align with OAuth 2.1 specifications, reuse of the same `refresh_token` for public clients is now prohibited. Implement one-time usage for the `refresh_token`, using the new `refresh_token` issued by SLAS on each `/token` call. For details, see [Access Tokens and Refresh Tokens](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas.html#access-tokens-and-refresh-tokens). - Enhanced validation for passwordless login to ensure the provided login ID matches the one used for time-based one-time password (TOTP). # October Build Summary (11.5.1) Build summary for Modern POS version 11.5.1, including what new features and changes it contains.
Section Feature
Discounts
Quotes
## Discounts ## Clarify Savings Information for Shoppers on Receipts What it does: Inform shoppers of savings details on print and email receipts. The new Order Total Discount tag summarizes item-level, transaction-level, and promotion discounts applied to an order. The new Product Net Price (Multiquantity) tag shows shoppers how much they paid for an item after discounts. This information helps associates and shoppers understand the value of a purchase and the impact of discounts. How: Add the ps\_o\_totaldiscount and the ps\_p\_netprice\_multiqty tags to any section of your print receipt template. Add the {order\_total\_discount} and {product\_total\_netprice} tags to any section of your email receipt template. ![The Order Total Discount PS Tag in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_total_discount_pstag.png)![The Net Price PS Tag in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_netprice_pstag.png) Learn more: [Comprehensive Print Tags List](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_list.htm&release=264.0.0&type=5 "Show dynamic data in your layouts by using Point of Sale print tags as placeholders. Each tag includes its description, location, receipt components, group list, and data mapping. Grouped lists output multiple data points for each tag.") ## Quotes ## Send Quotes from Your Own Email System What it does: Use the Quote SPI to send customers quotes from your email address rather than from Point of Sale. By using your own email system, you can better manage quote communications, track engagement, and maintain real-time visibility into quote activity. How: In CMS, go to **Integrations |****Customer Connectors**. To send quote emails, select **ERECEIPT\_QUOTE**. To export quote details, select **QUOTE\_EXPORT**. ![The Quote Customer Connectors in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_releases_bfs_send_quotes.png) Learn more: [Create and Manage Customer Quotes](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_create_manage_customer_quotes.htm&release=264.0.0&type=5 "Merchants can create and track customer quotes on the POS app. Each quote has a unique number and includes customer information. Store associates can work with customers on merchandise and pricing, either in-store or over the phone, and then email the quote for review or print it on A4 paper. Customers can save the quote, delete it, or complete the checkout process.") # Offer AfterPay as a BuyNow, Pay Later Payment Service Let your shoppers pay in interest-free installments with AfterPay. Salesforce Payments offers AfterPay through your Stripe Merchant account. When AfterPay is active on your storefront, the product details page and checkout cart list it as a payment option. How: Manage checkout settings for AfterPay in Business Manager. Go to **Ordering** | **Salesforce Payments**. # Offer Contract-Based Pricing to a B2B Buyer Create a contract to define negotiated prices for a specific buyer account. Contracts override standard price book prices, ensuring buyers see their negotiated prices across store pages. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) 1. Turn on and configure Advanced Pricing for Commerce Powered by Revenue Cloud. For details, see [Configure Advanced Pricing for Commerce Powered by Revenue Cloud](https://help.salesforce.com/s/articleView?id=commerce.comm_advanced_pricing_for_commerce_stores.htm&language=en_US&type=5). 2. From your store, go to **Settings** | **Store**. 3. Go to the Pricing tab. 4. Turn on **Contract Pricing**. 5. To create a contract, from the App Launcher, search and select **Contracts**. 6. Click **New**. 7. Enter the contract details. 1. For Account Name, select the buyer account that receives the negotiated pricing. 2. Specify a start date for the contract. The contract becomes effective on this date. 3. Enter the duration of the contract in months. The contract end date is calculated automatically. 8. Save your changes. 9. On the contract record page, go to the Related tab. 10. In **Application User Assignments**, click **New**. 11. Set the application usage type to **B2B\_Commerce** and save the record. This assignment links the contract to your B2B store. 12. In the Related tab, go to **Contract Item Prices** and click **New**. 13. Configure the pricing: 1. For **Item**, select **Product** and select the product for which you want to set a contract price. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Pricing for categories isn't supported. 2. For subscription products, select a product selling model. Define a separate contract item price for each product selling model. If you don't select a product selling model, the contract item price applies only to non-subscription purchases. 3. Enter the negotiated price per unit. For a multi-currency org, select a currency. The org's default currency is selected by default. 4. For Start Date, specify when this price becomes effective. Make sure that the date falls within the contract period. 5. If pricing applies to only part of the contract period, specify an end date. 14. Save your changes. 15. Repeat the previous steps to add more products as needed. 16. After adding the contract item prices, return to the contract record and click **Edit**. 17. Set the status to **Activated**. Prices take effect when you set the status to Activated. Save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note You can't change the contract status after activation. 18. Refresh the decision tables to ensure the latest contract pricing data is available. 1. In Setup, in the Quick Find box, enter `Decision Tables`, and select **Decision Tables**. 2. Select **Contract Pricing Entries** and click **Refresh**. Similarly, refresh **Contract Pricing Adjustment Tiers** and **Contract Pricing Volume Tiers**. Buyers assigned to the contract see their negotiated prices instead of the standard prices when browsing and purchasing in your store. #### See Also - [Configure Advanced Pricing for Commerce Powered by Revenue Cloud](https://help.salesforce.com/s/articleView?id=commerce.comm_advanced_pricing_for_commerce_stores.htm&language=en_US&type=5) - [Configure Volume-Based Adjustments for Contract Pricing](https://help.salesforce.com/s/articleView?id=commerce.comm_configure_volume_adjustments_contract_pricing.htm&release=264.0.0&type=5 "Offer more savings by applying volume-based discounts on top of contract prices when B2B buyers purchase in larger quantities. Volume-based adjustments apply to both subscription and non-subscription products.") - [Considerations for Contract-Based Pricing](https://help.salesforce.com/s/articleView?id=commerce.comm_contract_pricing_considerations.htm&release=264.0.0&type=5 "Review these considerations before you offer contract-based pricing to B2B buyers.") - [Contract-Based Pricing](https://help.salesforce.com/s/articleView?id=ind.pricing_contract_based_pricing.htm&language=en_US) # Offer Venmo as a Payment Service Salesforce Payments supports Venmo as an express and multi-step payment service for U.S.-based merchants and shoppers using U.S. currency. Shoppers can use Venmo from your mobile or desktop Storefront Reference Architecture (SFRA) sites. Using Venmo on your SFRA storefront requires a PayPal integration with Salesforce Payments and a payment zone configured for the Venmo U.S.-based criteria. How: Manage checkout settings for Venmo in Business Manager. Go to **Ordering** | **Salesforce Payments**. # Offline Behavior - Portugal Due to Portuguese regulations, printing receipts in offline mode is unavailable. Transactions are fiscalized when the system is online. Store associates enter the paper receipt number from the preprinted receipt given to the customer into the Point of Sale (POS) app. Printing receipts in offline mode isn't allowed in Portugal, as transactions are only fiscalized when the system is online and synchronized. After synchronization, receipts can be printed from the Order History. To comply with this requirement, the store must issue paper receipts that are preprinted with receipt information. In offline mode, store associates must enter the paper receipt number given to the customer on the app. This manual receipt number, derived from the handwritten preprinted receipt book, will be recorded in the Order tLog and the SAFT file under the label 'manualReceiptId.' This receipt will include a reference to the paper receipt provided to the customer. Customers can request this receipt after the system is back online. However, during offline mode, the store will issue one of the handwritten preprinted receipts with a receipt number on it. ATCUD will display as zero in the staging environment but will show an actual alphanumeric code in the production environment. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Manual receipts are preprinted with the receipt ID, and item details and totals are handwritten. For a detailed comparison of offline and online capabilities, refer to this [link](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_fiscalization_online_and_offline_capabilities.htm&release=264.0.0&type=5 "Quickly learn which fiscalization methods countries support in online and offline mode. Use this when configuring fiscalization in Point of Sale."). # Offline Checklist Playbook The Offline Checklist Playbook ensures the Point of Sale (POS) app continues to function smoothly during network outages. ## CMS Turn on Offline Support and set up the offline configuration. Check [here](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_pos_offline_support_configuration_and_setup.htm&release=264.0.0&type=5 "Turn on and configure offline mode for your POS to confirm continuous operation during network outages.") for details on how to configure CMS. ## Card Reader (Adyen) Make sure all the necessary settings for offline activity are enabled on the Adyen console. Check [Offline Payment Configurations section](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_pos_offline_support_offline_payment_configuration.htm&release=264.0.0&type=5 "Configure your POS to support offline transactions with Adyen terminals by specifying the types of offline transactions, card types, and transaction limits.") for the various settings and how to set them up. The Adyen card readers must have a daily configuration sync set up so they can pull in the latest configuration. Have one or more separate terminals ready and set up so you can use them if the regular Adyen terminals can't connect to a network. Learn more about standalone terminals [here](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_configure_standalone_mode.htm&release=264.0.0&type=5 "Configure Adyen terminals to accept payments via Point of Sale without a store associate Point of Sale (POS) app connection during an outage."). Credit card transactions completed in offline mode won't have the PSP reference as Adyen terminal can't return this value back for offline transactions. When the POS Backend receives the Adyen webhook callback, it will have the PSP reference and the order will then be updated with the value. ## Current Behavior Offline Order with Adyen Fails Order is accepted offline, and Adyen accepts credit card payments (offline). The app goes back online and syncs the order with the Point of Sale system. The order is listed as successful. Adyen goes back online and syncs with Adyen Cloud. However, Adyen declines the credit card payment, causing a webhook to fire to Point of Sale with the updated status. Point of Sale creates an entry in the Failed Order Report for the declined order, indicating that further review is required (CTA "Requires Review") due to the Adyen credit card decline. SPI sends the transaction log (TLog) again. The customer reconciles the order in the backend systems. Inventory is still decremented in Point of Sale, as the customer left the store with the product. ## Current Behavior Offline Order with Giro Payments (Austria/Germany) Order is accepted offline, and Adyen accepts the credit card payment (offline). The app goes back online and syncs the order with the system. The order is listed as successful. Adyen goes back online and syncs with Adyen Cloud. Adyen processes the Giro payment and triggers a webhook to update the order status in Point of Sale. Point of Sale updates the order with the PSP reference. SPI fires with the updated TLog, now including the PSP reference. ## Store Team Make sure the iPads are ready to function in offline mode (details [here](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_switching_between_online_and_offline_mode_in_the_pos_app.htm&release=264.0.0&type=5 "Use automatic or manual methods to change the Point of Sale (POS) app to online or offline mode.")). Have a strategy in place to make sure you can bring the iPad and the card readers back online so all the offline activities can be synced with the platform. This step is essential for capturing the transactions from the offline mode for future refunds/reconciliations. The POS app will sync all the offline orders and till activity to the Point of Sale Platform. Adyen card readers will sync all the transactions to the Adyen console. [Check](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_offline_sending_information_back_to_platform.htm&release=264.0.0&type=5 "The Point Of Sale (POS) app syncs offline orders to the platform after a network connection is established, allowing you to maintain accurate order records.") if all offline orders have been synced. # Offline Data Security Understand how Point of Sale (POS) secures your data when processing orders offline. POS stores data for processing offline orders. | Entity | Storage | Lifecycle | | --- | --- | --- | | Orders | Encrypted\* | Deleted after Server Sync | | Product | Plain Text | Refreshes periodically based on configuration | | Taxes | Plain Text | Refreshes periodically based on configuration | | Promotions | Plain Text | Refreshes periodically based on configuration | | Offline Activity | Plain Text | Deleted after server sync | | Cash Drawer Activity | Plain Text | Deleted after server sync | | Fiscal Data | Plain Text | Deleted after server sync | | Mobile Configuration | Encrypted\* | Refreshes periodically based on configuration | | Store Configuration | Encrypted\* | Refreshes periodically based on configuration | | Store Associate Credentials | Hashed (Hashed passwords are from server response) | Refreshes periodically based on configuration | ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note \*Encrypted: AES 256 Encryption using RNCryptor library v 5.1.0. This library's last update was in 2019, when Swift 5 was introduced (last major version upgrade for the language). # Offline Feed File Configuration Testing Steps Make sure of accurate product pricing in your Point of Sale (POS) app by following a series of validation steps. These steps list how to validate the feature in your POS app. ## Detailed Validation 1. Load a Product file. 2. Download the offline files in your POS app and check the product prices while offline (by turning off the Wi-Fi) after 10 minutes. 3. Create a Delta Product file for a couple of products with different prices and load it after one hour. 4. Download the offline files in your app and check the product prices while offline after 10 minutes. 5. Load a Store Pricing file with different store-level prices for the product in different stores. 6. Wait for the offline job to complete. 7. Download offline files in your app and check the product prices while offline after 10 minutes. ## Lowest Price Validation 1. Load a product file. 2. Load a Store Pricing file with different store-level prices for the product in different stores. 3. Load another Store Pricing file with different store-level prices for the product in the same stores as previously. Vary some prices higher and some lower. Repeat this step three to four times with different values. 4. Wait for the offline job to complete (or load a Product Delta with the same products to manually trigger offline). 5. Download offline files in your app and check the product prices while offline after 10 minutes. 6. While still offline, the lowest price will be shown if scanning a product for [NRR (No Receipt Return).](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_checkout_low_price_calculation.htm&release=264.0.0&type=5 "Point of Sale calculates the lowest price based on these criteria: Store Historical Prices, Product Multi-Region Historical Prices, and Product Historical Prices. When the lowest price is found for a given number of days, that price is returned as the NRR lowest price.") # Offline Feed File Extracts Offline feed files help the Point of Sale (POS) app function properly, where at least one online session is needed to download the required files. Offline feed files help confirm the proper functioning of the POS app. To turn on offline capabilities, the POS app requires at least one online session to download the necessary files. Point of Sale generates these file extracts for the app upon the completion of a Full and Delta Product feed load. This process has now evolved to accommodate the inclusion of store prices in ‌offline functionality. ## Prerequisites - Modern POS App Build: 9.0.1 or greater - Platform Support: iPad - Offline Support: Yes - **[Scheduled Feed File Imports](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_scheduled_offline_feed_file_imports.htm&release=264.0.0&type=5)** Scheduled feed file imports automatically generate offline extracts on a set schedule in Point of Sale CMS after product pricing changes. - **[Offline Feed Files Configuration and Setup](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_offline_feed_file_configuration_and_setup.htm&release=264.0.0&type=5)** Enable store pricing and schedule jobs and logs to your offline product feeds so that you can access them later in Point of Sale CMS. - **[Offline Feed File Configuration Testing Steps](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_offline_feed_file_configuration_testing_steps.htm&release=264.0.0&type=5)** Make sure of accurate product pricing in your Point of Sale (POS) app by following a series of validation steps. - **[Frequently Asked Questions (FAQs)](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_offline_feed_file_frequently_asked_questions.htm&release=264.0.0&type=5)** Get answers to common questions about offline extract and files in Point of Sale CMS # Offline Feed Files Configuration and Setup Enable store pricing and schedule jobs and logs to your offline product feeds so that you can access them later in Point of Sale CMS. ## Enabling Store Pricing Offline Feeds 1. In CMS, go to **Store Management \\> Offline Configuration**. 2. Turn on **Enable Store Pricing** in Offline Product Feeds. 3. Save your changes. ## Job Scheduler After you've enabled store pricing offline feeds, [Export Jobs](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_export_jobs.htm&release=264.0.0&type=5 "Use export jobs to extract data from Point of Sale by using Secure File Transfer Protocol (SFTP). Configure and schedule these jobs in CMS to automate data extraction, and monitor their progress in the Export Logs for timely, efficient data retrieval.") will be automatically created for both Full Product and Delta Product. To access them: 1. In CMS, go to **Feeds \\> Export Jobs**. 2. Jobs for **Offline Full Product** and **Offline Delta Product** will appear. 3. To change their scheduled time, hover over them, and select **Edit**. ## Logs After an Export Job has run, you can view their logs, which include the number of exports and status. To access them: 1. In CMS, go to **Feeds \\> Export Logs**. 2. Under **Export Type**, select either **Offline Full Product** or **Offline Full Delta** to view their respective logs. ## Historical Offline Pricing For app builds 9.0.1 and later, an additional price will be available in the offline file, which will be the lowest price for that store in the last \*X\* days. This will be a single value for each SKU at the specified store. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The lowest price in the last \*X\* days is for a given store and not across all stores of a given merchant. # Offline Payment Configurations Configure your POS to support offline transactions with Adyen terminals by specifying the types of offline transactions, card types, and transaction limits. ## Prerequisites - The POS is set up to interact with Adyen via Local Terminal API. - The Adyen terminal and POS are on the same network. The local network is up even though the external carrier network is down. ## Configuration ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip These configurations can be set up by contacting Salesforce Customer Support. - **Type of Offline Transactions:** Offline EMV or Store and Forward (SAF). - **Card Types**: List of credit/debit cards that you have configured for your account. You can request to restrict some of these for offline transactions. - **Transaction limit**: Max number of transactions you can perform on a terminal per offline session. It resets after the terminal is back online. - **Offline swipe limit**: Max amount that can be charged on a card per swipe. - **Floor limit**: Max value of an SAF transaction that can be approved while your integration is offline. Transactions more than this amount will be declined. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Turning on SAF comes with a risk of online payment failures after offline approvals. Carefully decide on the limits you want to comfortably set on SAF transactions. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_hardware_verifone_saf.htm&release=264.0.0&type=5 "Configure Verifone Store and Forward (SAF) so the Point of Sale (POS) app keeps processing credit card transactions if the network isn't working.") # Offline Promotion Logs Set up promotions in Point of Sale CMS so that your point of sale (POS) app can download the latest promotions in offline mode. With the Offline Promotion feature, Point of Sale will generate an updated active promotion list file every hour. This will allow the POS app to download the file in offline mode. ## Set Up an Offline Promotion Job - Go to **Store Management > Offline Configuration**. - Turn on **Enable offline promotions active**. - Select **Save**. This will turn on the Offline Promotion updating request, which runs every hour. However, there's no way to check the request running status in CMS. ## Create, Update, or Delete a Promotion After creating, updating, or deleting a promotion, a new promotion list regenerates every hour starting at 00:00 (12 AM). ## Upload a Promotion File 1. Go to **Promotions**. 2. ‌Select **Import Promotion**. This will upload the promotion in a JSON file. ``` [ { "promotionId": "test2712", "name": "Test Promotion Import", "title": " 20% off Cushions RegKidsbabyOutdoor Reg Mkd June 1 - June14", "description": "Sample Percentage Off Promotion for promotion import CMS", "inStorePromoCode": "", "appPromoCode": "", "onlinePromoCode": "", "outletPromoCode": "", "startTimeStamp": 1644271566000, "endTimeStamp": 1645049166000, "channel": [ "STORE", "APP" ], "priorityOrder": 0, "active": true, "auto": true, "redemptionLimit": 5, "redeems": 0, "barCodeType": "", "promotionType": "ORDER_PERCENT_OFF", "percentOff": 20, "hasSingleUsePromoCodes": false, "imageUrl": "https://dt5p5q8z0lfzy.cloudfront.net/promo_default_image.png", "merchantPromotionId": "", "discountedGroupProration": false, "productRules": [ { "operator": "CONTAINS", "value": [ "9390941" ], "valueType": "ProductID" } ] } ] ``` ## Download an Offline Promotion 1. In the app, select the **Offline Logs** deep link (will typically be configured in **Hamburger Menu > More > Offline Logs or Hamburger Menu > Offline Logs**). 2. Select "**Download All**" to trigger download of Offline Promotions. Promotions aren't automatically downloaded after Modern POS is relaunched. Only at the time of relaunch does Modern POS automatically refresh if the created date and time is greater than the current date and time. Automatic refresh promotions (provided in CMS: **Store Management -> Offline Configuration -> General Settings -> Offline Database Refresh Time**) and select "**Download All**" forces Modern POS to ignore the created date and time. ## Check an Offline Promotion 1. Download the most recent offline promotion list in the app. 2. Add a product to the cart and apply a promotion to it. 3. Verify the updated promotion file by going to **Offline Logs** in the app. # Offline Returns in the POS App The POS app allows orders to be returned in offline mode. An order can be returned by scanning the order receipt or if the user doesn't have the receipt for the order, the return can be started by scanning the item directly. ## Prerequisites - Modern POS App Build: - Receipt Return - 5.12.2 or above - No Receipt Return - 6.5.4 or above - Platform Support: iPhone & iPad - Offline Mode should be enabled and supported. See [POS Offline Support](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_settings_pos_offline_support.htm&release=264.0.0&type=5 "Continue operating the POS app if the device isn't connected to WiFi or Ethernet, or your internet service is down. Sync the POS app data after you're back online."). - Integration Prerequisites: Return Policy must be configured in CMS. See [Returns Policy Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_returns_policy_configuration.htm&release=264.0.0&type=5 "The Point of Sale (POS) app lets store associates perform returns on purchased items based on configured policies."). ## Known Issues & Restrictions - Adyen terminals are needed for credit card refunds offline. - Refund fees aren’t supported offline. - Products not on file can't be returned offline. - You won't be able to return an order that hasn't synced with the backend yet. - You won't be able to apply the order's tax-exempt status in an offline return. The exempted amount can be applied as a part of the product price override. - Cash and Referenced Credit Card are the only refund options available offline today. - If returning a product that was part of an order taxed at a specific rate based on a taxable amount threshold, and the product price doesn't surpass this threshold, the originally applied tax can't be added, and needs to be part of the product price override. - **[Configure Offline Returns for CMS and Adyen](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_offline_configure.htm&release=264.0.0&type=5)** Enable returns and exchanges in the POS app using app configurations. Use app settings to control return reasons, supported exchanges, and determine default item selection on the refund screen. To allow unreferenced refunds and offline credit card refunds, configure Adyen with maximum offline refund amounts. - **[Offline Returns POS App Flow](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_returns_offline_pos_flow.htm&release=264.0.0&type=5)** This feature is used by a store associate when a customer wants to return products. The associate launches the Return deeplink and initiates a return by scanning the barcode on the receipt provided by the customer or scanning the item directly if no receipt is provided. # Offline Returns POS App Flow This feature is used by a store associate when a customer wants to return products. The associate launches the Return deeplink and initiates a return by scanning the barcode on the receipt provided by the customer or scanning the item directly if no receipt is provided. ## Receipt Return The associate scans the barcode on the receipt and the app navigates to the return screen. The associate can click on the scan icon on the top right to scan the item(s) that needs to be returned for the order. They have the option to correct the price with a reason code. ## No Receipt Return A customer can still process a return without their original receipt. For app builds less than 9.0.1, a customer can initiate a return by scanning an item. For app builds 9.0.1 and above, you can now scan, manually enter, and search catalogs as well. ## Scanning / Manual Entry After tapping **Add Product**, you’re given three options to search for a product. For looking up a product by scanning its barcode, click on the barcode icon. In case the barcode can't be scanned for whatever reason, you can also manually enter the product ID to the left of the barcode icon. ## Catalog Search If scanning or manual entry isn't an option, you can look up a product by searching for it in the catalog. Tap **Search Products**. After an item is selected, you'll need to select a reason for the return. The app then navigates to the return screen. Items can always be added at any time by returning to the initial screen. # Offline Support Frequently Asked Questions Get answers to frequently asked questions about Point of Sale (POS) offline support. ## If using both Wi-Fi and cellular connections, are there any steps needed to avoid issues? Yes, customers using both Wi-Fi and cellular connections should make sure that their Cellular iPad can still connect to their Store LAN peripherals. ## Is LTE backup or 3G recommended for the device? We suggest using LTE backup for better reliability. Setting up a Cellular HotSpot with an LAN cable connection to the Wi-Fi router can establish continuous connectivity. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_warning.png) Warning This process isn't an easy switch over and can cause a temporary glitch for the POS system. ## When discussing LAN components, do users need to use all physically connected or Bluetooth devices for dual connectivity? Bluetooth connectivity isn't affected if the network goes down. However, if many peripherals use Bluetooth, it increases the failure rate due to interference. Moreover, relying solely on Bluetooth limits mobility, especially for nonfixed registers. ## How is the associate able to log in to the register while it is in offline mode? Associates can log in to the register in offline mode because their credentials are stored in the register's offline database. Since store associate credentials are not retrieved through a feed, the synchronization of the register's offline database occurs when an associate logs in while the register is online. ## Is there a configuration to trigger offline mode based on poor network performance, aside from a complete WAN/LAN outage? Currently, there is no automated configuration to trigger offline mode based on low or poor network performance. We recommend training associates to manually switch to offline mode if they notice slow performance or unexpected behavior in the system. This allows them to continue processing transactions without disruption. # Omni V1 vs Omni V2 Settings Understand the differences between Point of Sale Omni v1 and v2 settings. ## Feature Summary | Feature | V1 | V2 | | --- | --- | --- | | Mixed Cart | Supported | Supported | | Default Order Type | Supported | Enhanced | | Default In-Store Fulfillment Type | Supported | Enhanced | | Online Order Fulfillment Modes | Supported | Not Supported | | Delivery Date | Supported | Supported | | Fulfillment Type Switch | Supported | Supported | | Fulfillment Type at Item Level | Supported | Supported | | Setting Transaction Order Type | Supported | Supported | | Changing Order Type | Supported | Supported | | Scanning Items Automation | Supported | Supported | ## Mixed Cart V1 Setup Details: **Apps > Modules > POS > Cart > Mixed Cart** This setting enables mixed fulfillment types in the same cart. V2 Setup Details: **Store Management > Store Settings > Store Fulfillment > Omni Settings > Enable Mixed Cart Mode** If this setting is enabled, the store associate can select multiple fulfillment types (that are enabled) for a single order. If it is disabled, then the default fulfillment type will take precedence. ## Default Order Type V1 Setup Details: **Apps > Modules > POS > Cart > Default Order Type** This setting specifies whether the default order type is online or in-store. V2 Setup Details: **Store Management > Store Settings > Store Fulfillment > Omni Settings > Is Default** This setting allows you to select which fulfillment type is the default when processing orders. ## Default In-Store Fulfillment Type V1 Setup Details: **Modules > POS > Cart > Default In-Store Fulfillment Type** This setting sets the default in-store fulfillment type. V2 Setup Details: **Store Management > Store Settings > Store Fulfillment > Omni Settings > Is Default** This setting allows you to select which fulfillment type is the default when processing orders. ## Online Order Fulfillment Modes V1 Setup Details: **Modules > POS > Cart > OnlineOrderFulfillmentModes** This setting allows you to select supported fulfillment methods for online orders and a default fulfillment mode. V2 Setup Details: This option doesn't exist in Omni V2. ## Delivery Date V1 Setup Details: **Modules > POS > Cart > HasDeliveryDateForOnlineOrder** When enabled, the app will ask the user to select a date and time for the delivery of the online order. V2 Setup Details: **Store Management > Store Settings > Store Fulfillment > Omni Settings > Ask for delivery date** If this option is checked, the customer will have the option to select a delivery date for their order. ## Fulfillment Type Switch V1 Setup Details: **Modules > POS > Cart > EnableFulfillmentTypeSwitch** When enabled, a product's fulfillment type can be switched from in-store to online and vice versa on the cart screen. V2 Setup Details: **Store Management > Store Settings > Store Fulfillment > Omni Settings > Fulfillment type picker on app** This setting will allow the user to switch the type of fulfillment for a mixed cart. ## Fulfillment Type at Item Level V1 Setup Details: **Modules > POS > Cart > CartItemFulFillmentOptions** This setting allows the user to select a fulfillment channel and method on the item level. For each item in the cart, the user can select from a dropdown of fulfillment options. V2 Setup Details: **Store Management > Store Settings > Store Fulfillment > Omni Settings > Enable Mixed Cart Mode** When this is enabled, the store associate can select multiple fulfillment types (that are enabled) in a single order. If it is disabled, then the default fulfillment type will take precedence. ## Setting Transaction Order Type V1 Setup Details: **Deep Link > Store Associate > Set Transaction Order Type** This deep link sets the online transaction order type. V2 Setup Details: **Deep Link > Store Associate > Select Fulfillment Type (Order Type)** This deep link is used to select a fulfillment type when mixed cart is disabled. ## Changing Order Type V1 Setup Details: **Deep Link > Store Associate > Change Order Type** This deep link sets the order type as either in-store or online. V2 Setup Details: **Deep Link > Store Associate > Select Fulfillment Type (Order Type)** This deep link is used to select a fulfillment type when mixed cart is disabled. ## Scanning Items Automation V1 Setup Details: **Deep Link > Store Associate > Express Checkout** This will bring the user to a page where they can scan products to be checked out at the counter (store associate app only). V2 Setup Details: This feature is available in Omni V2 and uses the same deep link configuration as Omni V1. # Omnichannel (v2) Overview Integrate shopping experiences across channels with Point of Sale's Omnichannel. Point of Sale's Omnichannel solution allows merchants to seamlessly integrate shopping experiences across various channels. Whether shoppers start their shopping online or in-store, Point of Sale lets stores use the POS to take orders for items that aren't available. They can also use fulfillment modules to fulfill orders from items that are available in-store. This creates a unified and efficient retail experience. ## Prerequisites - Modern POS App Build: 8.4.0 or later. - Platform Support: iPad and iPhone - Offline Support: no #### See Also - [_Salesforce Help:_ Payment Providers: Feature Comparison Matrix](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate_feature_comp.htm&release=264.0.0&type=5 "Learn which payment providers, such as Adyen, Elavon, and Verifone, are supported in Point of Sale. Each payment processor provides unique support for omni-channel and POS implementations. Knowing which provider best suits your business needs helps you deliver exceptional customer experiences.") ## Supported Fulfillment Types for In-Store Orders Set how your store can fill customer orders in the Point of Sale (POS) app. ### In-store orders In-store orders are traditional cash-and-carry orders where customers take the items they purchase home from the store ### Pickup Later (In-Store + Online Fulfillment Type) Pickup Later orders are if customers place an order and select a specific date and time in the future for picking up their items from a store. This option provides customers with flexibility in scheduling their pick-up according to their convenience. There are two options for this fulfillment type: - Auto Route—Item isn't available and will be shipped to the store where the customer will pick it up (online fulfillment type) - Current store—Item is available and the customer will come back at a given time to pick it up (in-store fulfillment type) ### Pickup from Nearby Store Pickup from Nearby Store orders offer two options: - Customers can place an online order and select to pick it up at a nearby store. - Customers who are in a store that doesn't have the item they want can place an order in-store, make payment, and then pick up the order. ## Supported Fulfillment Types for Online Orders Set how your store can fill customer orders placed online in the Point of Sale (POS) app. ### Ship-to-Home orders Ship-to-Home orders are shipped directly to the customer's home address. Additional configurations can be set, such as selecting the fulfillment location and selecting a delivery date. This method is convenient for customers who prefer their purchases delivered to their doorstep. ### Ship to Home from Current Store Ship to Home from Current Store orders are where customers make in-store purchases but prefer not to carry their items around. There are two options for handling this: - An associate takes the shipment information, sets it aside, and ships the items to the address on the receipt. - The items are placed into fulfillment, packed, and then shipped. In both cases, customers receive a receipt for the items they take with them and a separate receipt containing shipment information for the items being sent to another location. ### Try at Store Try at Store orders lets customers order products online and select a particular physical store. They then visit the chosen store to personally experience the products, touching, trying on, or testing them before deciding on a purchase. This approach recognizes that many customers like the ease of shopping online, but they also value the feeling of touching products in a physical setting. ## Omni Cart Settings Configure Omni settings to customize product displays and fulfillment options for your Point of Sale (POS) app. ### Enabling Omni For detailed instructions on enabling this feature, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_enabling_omni_settings.htm&release=264.0.0&type=5 "Set up Omnichannel fulfillment options in CMS so that your store associates can fulfill orders from the Point of Sale (POS) app."). ### Omni Customization Product Display Page (PDP) After turning on and configuring the Omni settings, you will have to configure a PDP layout with the fulfillment type UI component. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_single_fulfillment_type_per_cart.htm&release=264.0.0&type=5 "Set the default fulfillment type in Point of Sale CMS to make sure orders work if a merchant can't support different fulfillment types in one cart."). Mixed Cart You can permit multiple delivery methods in one order. You can order from stores or ship the product to the customer's home if the product isn't available. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_multiple_fulfillment_types.htm&release=264.0.0&type=5 "Allows items in the cart to have multiple fulfillment types in a single order with Point of Sale's Omnichannel solution."). You can also configure fulfillment combination rules, allowing you to block certain Omni-type combinations in the POS cart. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_fulfillment_type_combination_rules.htm&release=264.0.0&type=5 "Configure fulfillment combination rules in Point of Sale CMS to prevent incompatible order types."). Single Fulfillment If you'd rather have a single fulfillment type in a single order but still have the option to select in the POS app, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_single_fulfillment_type_per_cart.htm&release=264.0.0&type=5 "Set the default fulfillment type in Point of Sale CMS to make sure orders work if a merchant can't support different fulfillment types in one cart."). External Shipping You can retrieve shipping methods by using an API. This feature is not supported if the multiple shipping method is enabled. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_shipping_methods_on_pos_app.htm&release=264.0.0&type=5 "Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls."). ### Shipping Methods You can set up available shipping methods within the CMS or through an API. You can also decide whether different shipping methods are allowed or not for a single order. ### Omni POS App Flow For a visual representation and detailed insights into the appearance and functionality of the Omni feature on the POS app, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_single_fulfillment_type_per_cart.htm&release=264.0.0&type=5 "Set the default fulfillment type in Point of Sale CMS to make sure orders work if a merchant can't support different fulfillment types in one cart."). ## Supported OmniChannel Attributes Set OmniChannel attributes in Point of Sale CMS to provide details for fulfilling orders. Addition As part of the Omni feature, the attributes are newly added, and they’ll be supported only if the OMNI flag is enabled.
   
Attributes Descriptions
Fulfillment subtypes (order.productList.fulfillmentSubType) - SHIP\\\_TO\\\_STORE - PICKUP\\\_NEARBY - SHIP\\\_TO\\\_HOME
  • SHIP\\\_TO\\\_STORE: An item will be delivered to a store from where it can be picked up. Another store or warehouse will complete the fulfillment. Instead of BOSS, this new subtype will be used.
  • PICKUP\\\_NEARBY: An item will be available for pick-up in a nearby store. Instead of BOPIS, this new subtype will be used.
  • SHIP\\\_TO\\\_HOME: An item will be delivered to the provided shipping address. The current store or another store will complete the fulfillment.
pickupLocation (order.productList.pickupLocation) Store details of where the item will be picked up. It’s mandatory if an item is for SHIP\_TO\_STORE.
fulfillmentLocation (order.productList.fulfillmentLocation) Fulfillment Location - Store details from where the item will be fulfilled. It’s mandatory if an item is for SHIP\_TO\_HOME or SHIP\_TO\_STORE.
omniFulfillmentType (order.productList.omniFulfillmentType) Omni fulfillment options. This isn’t mandatory, but nice to have.
omniFulfillmentLocationType: (order.productList.omniFulfillmentType) Omni fulfillment location options. This is not mandatory, but nice to have.
Deprecation As part of the Omni feature, the attributes in the table are deprecated. These attributes won’t be supported if the Omni flag is enabled. Fulfillment subtypes (order.productList.fulfillmentSubType): The subtypes won’t be supported. Hence, merchants will have to update their order posting and order retrieval endpoints accordingly. |   | Deprecated Fulfillment Sub-Type | New Fulfillment Sub-Type | | --- | --- | --- | | 1 | Buy Online, Ship to Store (BOSS) | SHIP\\\_TO\\\_STORE (and Fulfillment Type: ONLINE) | | 2 | Buy Online, Pick up in Store (BOPIS) | PICKUP\\\_NEARBY (and Fulfillment Type: IN\\\_STORE) | The fulfillment subtypes have been deprecated to streamline the Omni flow. Refer to the API spec on the [Order SPI.](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#order-spis) For more information, refer to the API spec on the [Order SPI.](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html#order-spis) For product details, there are two fields: **orderProductList** and **productList**. orderProductList has a list of products sold. productList is a subset (if there have been any returns or exchanges) and it has a list of products sold with returned products/quantities removed/adjusted. For example, productList gives you the remaining products in the order which aren’t returned. If mapping to an ERP system, use orderProductList and returnProductList instead of productList to simplify the ingestion logic. For fulfillment details, there are two fields: **omniFulfillmentType** and **fulfillmentType**. If mapping to an ERP system for cash/carry/charge, use fulfillmentType, and fulfillmentSubType instead of omniFulfillmentType. ## Known Issues and Restrictions Familiarize yourself with the limitations of Point of Sale's Omnichannel. ### Fulfillment Type Configuration - In-Store fulfillment type must be configured in Omni's settings for in-store exchanges or no-receipt returns (NRR). - Ship to Home fulfillment type must be configured in Omni settings for online exchanges or NRR. ### Fulfillment Type Behavior on App - Not on File and Alteration flows on the app will always add the item as In Store, regardless of other settings. - Special Item and Custom Made Items flows on the app will always add the item as Ship to Home with an autoroute option, and the fulfillment type can’t be changed for these items. - Products added with serial numbers won't have the option to change the fulfillment type on the cart screen. - The delivery date section is only available for items shipped to home and fulfilled with the auto route option. It doesn't apply to ship-to-home items fulfilled from a store. - If an item in the cart has the fulfillment type as Pickup from Nearby Store or Ship to Home From Current Store, the fulfillment location at the item level ccan't be edited. - The app will throw an error message if a particular store doesn't use the Try at Store option for Try at Store items. - Custom-made items' fulfillment type can’t be changed to Try at Store on the cart screen. - Customer-made or special items' fulfillment type can’t be changed to In Store on the cart screen. - CMS will throw an error message if both the fulfillment type of Ship to Home From Current Store and Ship to Home with default fulfillment from Current Store are selected, as this is redundant. - External Shipping Method: Selected Shipping method will reset if a customer is logged in and another item with a different fulfillment type is added to the cart. - Nonmerchandise items (for example cash tips, bag fees) will have fulfillment options on the POS app. Currently, there's no option to remove these fulfillment choices. It’s the store's responsibility to oversee and manage the fulfillment options for nonmerchandise items (In-Store, Ship to Home, and so on). ### Fulfillment Type Changes and Pricing - If an item is shipped from a store to a website, the price overrides or discounts at the item level will be taken out and you will need to add it back. This doesn't apply to cart overrides or discounts. ### Fulfillment Type Limitations in Express Checkout - Pickup Near-By Store and Try At Store options are not supported in Express's checkout flow when set as default fulfillment with the mixed cart flag off. # Omnichannel Inventory Omnichannel Inventory is a scalable inventory solution that delivers near real-time inventory availability at the location level across all your fulfillment channels. ## Learn More - **[Introduction to Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_basics.htm&release=264.0.0&type=5)** Omnichannel Inventory is a scalable inventory solution that shows you near real-time inventory availability at the location level across all your fulfillment channels. Omnichannel Inventory combines the power of headless APIs and the flexibility of the Salesforce Platform to provide merchants and shoppers with a single source of truth for inventory availability. It integrates seamlessly with Salesforce B2C Commerce, B2B Commerce, D2C Commerce, and Salesforce Order Management, so you can deliver a true end-to-end shopping experience on your ecommerce storefront. - **[Omnichannel Inventory Implementation Guides](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_implementation_guide.htm&release=264.0.0&type=5)** These guides outline the necessary steps for Salesforce Administrators to understand, set up, and use Salesforce Omnichannel Inventory. - **[Omnichannel Inventory Service](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_service.htm&release=264.0.0&type=5)** The Omnichannel Inventory service is a collection of APIs that you can use to get inventory availability data and manage reservations across all your fulfillment channels. Retrieve inventory updates from your back-office systems, such as WMS, ERP, and POS. Provide near real-time inventory availability to shoppers, and reserve inventory when shoppers submit orders. You can also share inventory availability by location and location group for order fulfillment. - **[Omnichannel Inventory App](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_app.htm&release=264.0.0&type=5)** Use the Omnichannel Inventory app to view, add, and edit inventory SKU counts and manage locations, location groups, and location group assignments. # Omnichannel Inventory Omnichannel Inventory delivers real-time inventory availability at the location level across all your fulfillment channels. If you’re using Omnichannel Inventory with Order Management, you can get inventory availability data from the Omnichannel Inventory service and use APIs to transfer, fulfill, and release reservations. You can also manage fulfillment locations and location groups using the Omnichannel Inventory app. ### Required Editions
View supported editions.
With Omnichannel Inventory, you can: - Get inventory availability data for SKUs, locations, and location groups - Transfer reservations from a location group to a location or from one location to another location - Release reservations from a location group and its locations during cancellations - Fulfill reservations from a location group and its locations - Unlock distributed order management tools for enhanced order management functionality To access the Omnichannel Inventory app from within Order Management, use the Navigation bar dropdown in the Order Management Console. #### See Also - [Omnichannel Inventory](https://help.salesforce.com/articleView?id=inv_omnichannel_inventory.htm&language=en_US) # Omnichannel Inventory APIs for B2B and D2C Commerce Get near real-time inventory availability, streamlined reservation processing, and location-based order fulfillment with Salesforce APIs and Omnichannel Inventory. Provide customers with accurate inventory information and efficient order management. ### Required Editions
View supported editions.
Two collections of APIs are available. Which API collection you use depends on your implementation details and your inventory use cases. - Salesforce Commerce APIs—If you’re integrating with B2C Commerce, use these headless APIs to customize the inventory experience beyond the native integrations with B2C Commerce and Salesforce Order Management. - Salesforce Connect REST APIs—If you’re integrating with a Salesforce Platform app, use these REST APIs for distributed order management functionality. You can use your Salesforce credentials to access both API collections. If you’re using B2C Commerce, you can also use Account Manager with your B2C Commerce credentials to access the Omnichannel Inventory headless APIs. This table lists endpoints that are used for specific use cases, regardless of your integration scenario. | Endpoint | Description | | --- | --- | | Import Availability | The import API in the Salesforce Commerce API collection supports a much higher volume of records. Use this API whenever possible to import inventory data. | | Import Location Graph | The API for importing a location graph is available only in the Connect REST API collection. Use this API to import a location graph and show group and location information in the Omnichannel Inventory app. | #### See Also - [Omnichannel Inventory Connect REST APIs](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_connect_rest_apis.htm&release=264.0.0&type=5 "Connect your inventory management process by connecting your Omnichannel Inventory service to Salesforce Platform apps. Use the Connect REST APIs to import and upload inventory files, access real-time inventory availability, and manage reservations.") - [Omnichannel Inventory Headless API Endpoints](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_headless_apis.htm&release=264.0.0&type=5 "Connect your Omnichannel Inventory service to your storefront and order management systems using Salesforce Commerce API endpoints. Import and upload inventory files, retrieve inventory updates from your back-office system, provide real-time availability data, and manage reservations. Maintain accurate inventory levels and ensure product availability across multiple channels.") - [Omnichannel Inventory Integrations](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_integrations.htm&release=264.0.0&type=5 "Connect Omnichannel Inventory with B2C Commerce, B2B Commerce, Salesforce Order Management, and your back-office systems to optimize fulfillment across your network of stores and distribution centers.") # Omnichannel Inventory App Use the Omnichannel Inventory app to view, add, and edit inventory SKU counts and manage locations, location groups, and location group assignments. - **[Get Started with the Omnichannel Inventory Console](https://help.salesforce.com/s/articleView?id=commerce.inv_get_to_know_the_omnichannel_inventory_console.htm&release=264.0.0&type=5)** The Omnichannel Inventory console is the first thing you see when you open the Omnichannel Inventory app. Use to look up inventory availability, add and edit SKU counts, and manage locations, location groups, and location group assignments. - **[Customize the Omnichannel Inventory Console](https://help.salesforce.com/s/articleView?id=commerce.inv_customize_the_omnichannel_inventory_console.htm&release=264.0.0&type=5)** While the standard Omnichannel Inventory console is fully functional right away, you can customize it for your team. Add custom tabs and fields, modify page layouts and components, and assign the app to particular user profiles. - **[Use Case: Maintain Accurate Inventory Counts to Improve Sales and Customer Satisfaction](https://help.salesforce.com/s/articleView?id=commerce.inv_use_case_maintain_counts.htm&release=264.0.0&type=5)** Use the Inventory app to keep your inventory counts accurate. Quickly and efficiently add or update individual records or import multiple records using a CSV or JSON file. - **[Search, Add, and Edit SKUs in the Omnichannel Inventory Console](https://help.salesforce.com/s/articleView?id=commerce.inv_lookup_inventory.htm&release=264.0.0&type=5)** Search inventory availability for a location group. Add inventory SKUs or edit existing inventory information. - **[Import and Delete Inventory in Bulk Using Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_import_bulk_inventory.htm&release=264.0.0&type=5)** Add inventory, update existing records, and delete records in bulk instead of using APIs or adding records individually. Modify records using either a CSV or JSON file. - **[Locations and Location Groups](https://help.salesforce.com/s/articleView?id=commerce.inv_locations_and_location_groups.htm&release=264.0.0&type=5)** Omnichannel Inventory aggregates inventory availability information across locations and location groups. Use the Omnichannel Inventory Console to add, edit, and delete locations, location groups, and location group assignments. Search, sort, and filter data in the list views, or customize the list views to show only the records or data that you want. - **[Share Data Using Omnichannel Inventory File-Based Data Kits](https://help.salesforce.com/s/articleView?id=commerce.inv_share_data_using_oci_data_kits.htm&release=264.0.0&type=5)** File-based data kits simplify and streamline the deployment and management of data streams between Omnichannel Inventory (OCI) and Data 360. Using data kits makes integrating data efficient and automatic. #### See Also - [Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory.htm&release=264.0.0&type=5 "Omnichannel Inventory is a scalable inventory solution that delivers near real-time inventory availability at the location level across all your fulfillment channels.") # Omnichannel Inventory Basics Familiarize yourself with basic Omnichannel Inventory concepts to help you plan your implementation. For information on terminology, see the [Omnichannel Inventory Glossary](https://help.salesforce.com/articleView?id=commerce.inv_omnichannel_inventory_glossary.htm&language=en_US) in Salesforce Help. - **[The Inventory Lifecycle](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_inventory_lifecycle.htm&release=264.0.0&type=5)** This example illustrates the process of setting up and maintaining a system using Omnichannel Inventory with Salesforce Order Management and B2C Commerce. - **[Inventory Fulfillment Locations](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_inventory_fulfillment_locations.htm&release=264.0.0&type=5)** Omnichannel Inventory uses three objects to represent the facilities that fulfill orders: Location, Location Group, and Location Group Assignment. - **[Inventory Reservations](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_inventory_reservations.htm&release=264.0.0&type=5)** When an order is placed, the system reserves inventory to fulfill that order. A reserved quantity of a specific product at a location or location group is called a reservation. When a reservation is assigned to a location group, you can implement business rules to transfer it to a specific location for fulfillment. - **[Configuring Locations for Order Shipping and Pickup](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_config_locations_order_ship_pickup.htm&release=264.0.0&type=5)** You can configure a fulfillment location to ship order products or provide Buy Online, Pick Up In Store (BOPIS) service. # Omnichannel Inventory Basics To help you plan your implementation, familiarize yourself with Omnichannel Inventory concepts. - **[How Omnichannel Inventory Works](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_how_oci_works_b2b_d2c.htm&release=264.0.0&type=5)** Review the typical flow when using Omnichannel Inventory with Salesforce Order Management and B2B Commerce and D2C Commerce. - **[Fulfillment Locations in Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_inventory_fulfillment_locations_b2b_d2c.htm&release=264.0.0&type=5)** Omnichannel Inventory uses three objects to represent the facilities that fulfill orders: Location, Location Group, and Location Group Assignment. The complete set of locations, groups, and assignments is called a location graph. When using D2C Commerce, your location graph is limited to one location and one location group. - **[Omnichannel Inventory Reservations](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_inventory_reservations_b2b_d2c.htm&release=264.0.0&type=5)** When a customer places an order, the system reserves inventory to fulfill the order and a reservation is created. When a reservation is assigned to a location group, you can implement business rules to transfer it to a specific location for fulfillment. - **[Configuring Locations for Order Shipping](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_config_locations_order_shipping_b2b_d2c.htm&release=264.0.0&type=5)** You can configure a fulfillment location to ship ordered products. # Omnichannel Inventory Connect REST APIs Connect your inventory management process by connecting your Omnichannel Inventory service to Salesforce Platform apps. Use the Connect REST APIs to import and upload inventory files, access real-time inventory availability, and manage reservations. ### Required Editions
View supported editions.
This table lists the Connect REST APIs for Omnichannel Inventory.
API Description Resource
Availability Records, Batch Update

Update a batch of inventory records to Omnichannel Inventory. Add a new inventory record or update on hand, future quantity, future date, safety stock count, and shipping eligibility to an existing inventory record.

Supports partial success. For example, when 10 items are sent and two fail, the failed items show in the error section.

/commerce/oci/availability-records/actions/batch-update
Availability Records, Get Availability Retrieve inventory availability data for one or more products at one or more inventory locations or location groups. /commerce/oci/availability/availability-records/actions/get-availability
Availability Records, Upload Upload an inventory availability data file to Omnichannel Inventory. /commerce/oci/availability-records/uploads
Inventory, Check Availability Get information about inventory availability for products in locations or location groups in your commerce inventory system. Provides available to fulfill, available to order, and on hand quantity information. /commerce/inventory/check-availability
Inventory, Levels Get information about inventory levels for products in locations and location groups in your commerce inventory system. /commerce/inventory/levels
Location Graph, Upload Asynchronously publish information about your inventory locations and location groups to Omnichannel Inventory. The publish includes records whose IsEnabled and ShouldSyncWithOci fields are both true. This method returns an ID that you can use to retrieve the status of the publish job. /commerce/oci/location-graph/uploads
Reservations, Create Create an inventory reservation in Omnichannel Inventory. /commerce/oci/reservation/actions/reservations
Reservations, Fulfill Fulfill one or more inventory reservations. /commerce/oci/reservation/actions/fulfillments
Reservations, Release Release one or more existing inventory reservations to free up that inventory. /commerce/oci/reservation/actions/releases
Reservations, Transfer Transfer one or more inventory reservations between locations or location groups. This API doesn’t change physical quantities, but reduces the reserved quantity at the source and increases it at the destination. /commerce/oci/reservation/actions/transfers
Reservations, Update Update an existing reservation in Omnichannel Inventory. Add, remove, and update quantities for existing SKUs in the reservation. /commerce/oci/reservation/actions/update
#### See Also - [Omnichannel Inventory APIs for B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_apis.htm&release=264.0.0&type=5 "Get near real-time inventory availability, streamlined reservation processing, and location-based order fulfillment with Salesforce APIs and Omnichannel Inventory. Provide customers with accurate inventory information and efficient order management.") - [Omnichannel Inventory Headless API Endpoints](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_headless_apis.htm&release=264.0.0&type=5 "Connect your Omnichannel Inventory service to your storefront and order management systems using Salesforce Commerce API endpoints. Import and upload inventory files, retrieve inventory updates from your back-office system, provide real-time availability data, and manage reservations. Maintain accurate inventory levels and ensure product availability across multiple channels.") - [Omnichannel Inventory Integrations](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_integrations.htm&release=264.0.0&type=5 "Connect Omnichannel Inventory with B2C Commerce, B2B Commerce, Salesforce Order Management, and your back-office systems to optimize fulfillment across your network of stores and distribution centers.") - [Salesforce Omnichannel Inventory Resources](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_omnichannel_inventory_resources.htm) # Omnichannel Inventory Editions Learn about the editions and user interfaces that support Omnichannel Inventory. ## User Interface Omnichannel Inventory is available only in Lightning Experience. ## Editions Omnichannel Inventory is available in Enterprise, Unlimited, and Developer editions. #### See Also - [Introduction to Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_basics.htm&release=264.0.0&type=5 "Omnichannel Inventory is a scalable inventory solution that shows you near real-time inventory availability at the location level across all your fulfillment channels. Omnichannel Inventory combines the power of headless APIs and the flexibility of the Salesforce Platform to provide merchants and shoppers with a single source of truth for inventory availability. It integrates seamlessly with Salesforce B2C Commerce, B2B Commerce, D2C Commerce, and Salesforce Order Management, so you can deliver a true end-to-end shopping experience on your ecommerce storefront.") # Omnichannel Inventory Headless API Endpoints Connect your Omnichannel Inventory service to your storefront and order management systems using Salesforce Commerce API endpoints. Import and upload inventory files, retrieve inventory updates from your back-office system, provide real-time availability data, and manage reservations. Maintain accurate inventory levels and ensure product availability across multiple channels. ### Required Editions
View supported editions.
Omnichannel Inventory headless APIs use the Tenant Group ID instead of the Organization ID and are grouped into categories. For more information, see their entries in the [B2C Commerce API Reference](https://developer.salesforce.com/docs/commerce/commerce-api/references?meta=inventory-availability:Summary).
Category Function API Description Resource
Inventory Impex Import Inventory Data submitInventory​Import

Prepare to import an inventory data file, usually from an external system, such as WMS, ERP, or POS.

Used in the following sequence to complete an import: submitInventoryImport, postUploadImportFile, getAvailabilityImportStatus.

To send large datasets into the service at high speed, use the import process as a bulk option. For smaller datasets with less than 1000 records, evaluate using batch inventory updates instead.

Use case: Create jobs and specify what files to look for as part of your import strategy. Control which files and how frequently the files are imported.

/inventory/impex/v1/​organizations/{organizationId}/​availability-records/imports
postUploadImport​File

Upload an inventory data file using the ID returned by the submitInventoryImport call.

Used in the following sequence to complete an import: submitInventoryImport, postUploadImportFile, getAvailabilityImportStatus.

Records received in the inventory import process overwrite existing values for SKUs already in the service. New records are created in the service if an imported SKU doesn't exist.

Use case: Run previously created jobs after viewing the specified import file. Inventory records in the file upload to the inventory service.

/inventory/impex/v1/​organizations/{organizationId}/​availability-records/imports/​uploadlink/{uploadLinkId}
getInventory​Import

Get the IDs of current inventory import jobs.

Use case: Check and validate which import jobs are currently in place.

/inventory/impex/v1/​organizations/{organizationId}/​availability-records/imports
getAvailability​ImportStatus

Get the status of an inventory data upload.

Used in the following sequence to complete an import: submitInventoryImport, postUploadImportFile, getAvailabilityImportStatus.

Use case: View the status or progress of submitted inventory files and check for overall completion or issues. Display completion status, record success counts, record failure counts, and errors.

/inventory/impex/v1/​organizations/{organizationId}/​availability-records/imports/​{importId}/status
downloadAvailability​Import​ResultsFile

Get the results of a completed inventory data upload, including any errors.

Use case: View the results of specific import files to understand completion status, record success counts, record failure counts, and errors.

/inventory/impex/v1/​organizations/{organizationId}/​availability-records/imports/​{importId}/file-content
deleteInventory​Import

Delete an inventory import job.

Use case: Delete a scheduled import job as part of changing or managing your overall import strategy and frequency.

/inventory/impex/v1/​organizations/{organizationId}/​availability-records/imports/​{importId}
Export Inventory Data initiateAvailability​Export

Prepare to export inventory data to a file.

Generally, exports are used to send inventory data to other systems for awareness or reporting purposes.

For B2C integration, this endpoint is used in the native integration of inventory in B2C Commerce. Upon enabling the integration in cache mode, this endpoint provides a full export from the inventory service to build the B2C availability cache.

Use case: Begin exporting all inventory records from the service.

/inventory/impex/v1/​organizations/{organizationId}/​availability-records/exports
retrieveGroup​ExportStatus Get the status of an inventory data export that’s being created. /inventory/impex/v1/​organizations/{organizationId}/​availability-records/exports/​{exportId}/status
downloadAvailability​​ExportFile Download exported inventory data to a file. /inventory/impex/v1/​organizations/{organizationId}/​availability-records/exports/​{exportId}/file-content
deleteAvailability​Export

Delete an inventory export job.

Use case: Delete a scheduled export job as part of changing or managing the frequency or overall export strategy.

/inventory/impex/v1/​organizations/{organizationId}/​availability-records/exports/​{exportId}
Export Location Graph Data getLocationGraph​Export

Export the entire location graph for the org.

Used by merchants to validate that their location graph aligns with their physical locations and storefront segmentation in their fulfillment and shopping experiences.

Use case: Export an existing location graph.

/inventory/impex/v1/​organizations/{organizationId}/​location-graph/exports
getLocationGraph​​ExportStatus Get the status of a location graph export. /inventory/impex/v1/​organizations/{organizationId}/​location-graph/exports/​{exportId}/status
downloadLocation​Graph​ExportFile Download exported data about the location graph to a file. /inventory/impex/v1/​organizations/{organizationId}/​location-graph/exports/​{exportId}/file-content
deleteLocationGraph​Exports Delete a location graph export job as part of changing or managing the frequency or overall export strategy. /inventory/impex/v1/​organizations/{organizationId}/​location-graph/exports/​{exportId}
Export Event Log submitEventsActivity​Export

Export an event log.

Use case: Generate an event log of all activities for a set of SKUs that have occurred within the inventory service. Assists with record tracking and troubleshooting.

/inventory/impex/v1/​organizations/{organizationId}/​event-log/exports
retrieveEventLog​​ExportStatus Get the status of an event log export. /inventory/impex/v1/​organizations/{organizationId}/​event-log/exports/​{exportId}/status
downloadEvents​Activity​ExportFile Download an exported event log to a file. /inventory/impex/v1/​organizations/{organizationId}/​event-log/exports/​{exportId}/file-content
Inventory Availability Create or Update Inventory Data replaceSkuLocation​ and ​updateSkuLocation

Create or update inventory data for a SKU at a location.

Used for quick changes due to an issue in a store or warehouse that impacts availability, like damaged or lost items.

The batchInventoryUpdate API can also be used to update between 1-100 records at once.

Use case: Send updates for individual records to adjust a SKU at a specific location.

/inventory/availability/v1/​organizations/{organizationId}/​locations/{locationId}/​availability-records/skus/​{sku}/{requestId}
batchInventory​Update

Create or update inventory data for a batch of items.

Works best when paired with file imports. For example, use file import to update all records nightly or weekly and use batch updates regularly throughout the day to send updates only for records with changes.

Use case: Send updates in batches as part of a delta update strategy where only recent inventory changes are sent to update the service.

/inventory/availability/v1/​organizations/{organizationId}/​availability-records/​actions/batch-update
Get Inventory Data getAvailabilityDeltas

Get availability data changes that happened since a given delta token. Tokens are used to track the last time availability was checked. Tokens are returned by this API and by the downloadAvailabilityExportFile API.

Used to stream inventory changes into caches for storefront shopping experiences.

For B2C integration, the endpoint is used in the native integration of inventory in B2C Commerce. The endpoint provides delta changes from the inventory service to the B2C availability cache for any record that has received changes. If no changes have been received, the record receives an update every 60 seconds.

Use case: Receive only the changes that have occurred to SKU availability at locations and groups since the last time availability was checked.

/inventory/availability/v1/​organizations/{organizationId}/​availability-records/​actions/get-deltas
skuAvailabilityBy​Location​AndOrGroup

Get inventory availability data for SKUs at locations, location groups, or the set of ungrouped locations.

Used to feed inventory availability counts into storefront shopping experiences like product description and list pages.

Use case: Check SKU availability at locations and groups. Use for fulfillment experiences where routing engines call to understand availability at groups and locations to inform their routing and allocation decisions.

/inventory/availability/v1/​organizations/{organizationId}/​availability-records/​actions/get-availability
Inventory Reservation Manage Inventory Reservations createReservations or cancelReservation

Create, update, or cancel inventory reservations at locations or location groups.

Reservations must be made either directly against a location for in-store pickup experiences or against a group to reserve against the aggregated availability of several locations grouped together.

Use for canceling reservations across location and group experiences.

Used in native integrations with B2C Commerce and in headless implementations for third-party selling channels like marketplaces and social media platforms.

For B2C integrations, this endpoint is used in the native integration of inventory in B2C Commerce. This endpoint is used to reserve and cancel items directly in Omnichannel Inventory resulting from B2C storefront shopping experiences.

Similar to unreserve​Reservations.

Use case: Create, update, or cancel reservations for shopping experiences.

/inventory/reservation/v1/​organizations/{organizationId}/​reservation-documents/​{reservationId}
moveReservation​Quantity

Move a reserved quantity from a location group to a location or from a location to a location group.

Used as part of the routing and allocation process. Reservations occurring in a storefront against an Omnichannel Inventory group can be moved to a specific Omnichannel Inventory location determined by an Order Management System routing engine. This allows for reservations to belong to a location for fulfillment to occur.

Supports moving reservations from a location to an associated group if a merchant needs these reservations to go back through the routing process to be fulfilled.

Supports moving reservations between two locations if a merchant can’t fulfill from the assigned location or would like to fulfill from a different location for any reason.

Use case: Move a reserved quantity from a location group to a location or from a location to a location group.

/inventory/reservation/v1/​organizations/{organizationId}/​transfers
unreserve​Reservations

Reduce (unreserve) a reserved quantity at a location or location group.

Similar to cancelReservation, except a reservation ID isn’t required. Enables a merchant to execute a cancel call to remove a reservation for any reason without knowing the reservation ID.

Use case: Unreserve a reservation without a reservation ID.

/inventory/reservation/v1/​organizations/{organizationId}/​releases
fulfillQuantity

Remove a fulfilled quantity from both the reserved and on-hand quantities at one or more locations.

Assists in keeping Omnichannel Inventory counts for reservation and on-hand as close to real-time as possible instead of waiting for the next scheduled import or update.

When the order completes, the reservation lifecycle also completes and on-hand quantities can be adjusted to reflect the new state.

Use case: Inform Omnichannel Inventory that a location has fulfilled an order.

/inventory/reservation/v1/​organizations/{organizationId}/​fulfillments
#### See Also - [Omnichannel Inventory Connect REST APIs](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_connect_rest_apis.htm&release=264.0.0&type=5 "Connect your inventory management process by connecting your Omnichannel Inventory service to Salesforce Platform apps. Use the Connect REST APIs to import and upload inventory files, access real-time inventory availability, and manage reservations.") - [Omnichannel Inventory APIs for B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_apis.htm&release=264.0.0&type=5 "Get near real-time inventory availability, streamlined reservation processing, and location-based order fulfillment with Salesforce APIs and Omnichannel Inventory. Provide customers with accurate inventory information and efficient order management.") - [Omnichannel Inventory Integrations](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_integrations.htm&release=264.0.0&type=5 "Connect Omnichannel Inventory with B2C Commerce, B2B Commerce, Salesforce Order Management, and your back-office systems to optimize fulfillment across your network of stores and distribution centers.") - [B2C Commerce API Reference](https://developer.salesforce.com/docs/commerce/commerce-api/references?meta=inventory-availability:Summary) - [Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory.htm&release=264.0.0&type=5 "Omnichannel Inventory is a scalable inventory solution that delivers near real-time inventory availability at the location level across all your fulfillment channels.") # Omnichannel Inventory Implementation Guides These guides outline the necessary steps for Salesforce Administrators to understand, set up, and use Salesforce Omnichannel Inventory. - **[Salesforce Omnichannel Inventory Implementation for B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_intro_b2b_d2c.htm&release=264.0.0&type=5)** Omnichannel Inventory is a scalable inventory solution that delivers near real-time inventory availability at the location level across all your fulfillment channels. It integrates with Salesforce B2B and D2C Commerce and Salesforce Order Management, so you can deliver a true end-to-end shopping experience on your ecommerce storefront. - **[Salesforce Omnichannel Inventory Implementation for B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_intro.htm&release=264.0.0&type=5)** This guide outlines the necessary steps for Salesforce Administrators to understand, set up, and use Salesforce Omnichannel Inventory. # Omnichannel Inventory Integrations Connect Omnichannel Inventory with B2C Commerce, B2B Commerce, Salesforce Order Management, and your back-office systems to optimize fulfillment across your network of stores and distribution centers. ### Required Editions
View supported editions.
## B2C Commerce When you integrate Omnichannel Inventory with B2C Commerce, your shoppers can rely on an accurate view of what inventory is available for purchase across all your digital channels. With the B2C Commerce native integration, you can: - Import inventory data into Omnichannel Inventory from external sources - Connect Omnichannel Inventory to external sales channels and customize inventory experiences - Get near real-time inventory availability data across all your digital channels - Segment inventory for specific storefronts using location groups - Set up inventory sharing from multiple locations, stores, and distribution centers - Enable ship from store, curbside pickup, and buy online, pick up in store Keep these considerations in mind when integrating Omnichannel Inventory with B2C Commerce. - Omnichannel Inventory doesn’t support perpetual availability for individual inventory records. However, you can implement similar functionality in these ways. - Use a B2C Commerce inventory list’s Default In-Stock setting. When an order uses an inventory list with Default In-Stock turned on, products not on the list are available. However, those products aren’t included in reservation requests. If you use Default In-Stock this way, customize your order workflow to create and manage reservations for those products. - In Omnichannel Inventory, set a product’s available inventory at one or more locations to 999999999. In B2C Commerce, handle that product normally. In this case, customize your order workflow to fulfill orders for that product at an appropriate location. - Before refreshing a Salesforce sandbox org that’s integrated with a B2C Commerce instance, log a case with Salesforce Customer Support. Support reconnects the refreshed org to your B2C Commerce instance. - If you experience issues with the integration, or want to disconnect your B2C Commerce instance from Omnichannel Inventory, log a case with Salesforce Customer Support. Before doing so, consider these recommendations: - Identify which inventory reservations are made in each system and handle them appropriately. - If you plan to turn on the integration again, maintain the Omnichannel Inventory data import processes. By keeping them active, the data cache is up to date when you turn the integration back on. ## B2B and D2C Commerce If you’re using B2B Commerce with Salesforce Order Management and Omnichannel Inventory, you can access all the Salesforce Commerce APIs and Connect REST APIs for Omnichannel Inventory. However, if your B2B or D2C store integrates Omnichannel Inventory and you offer express payment options at checkout, then orders placed using those methods fail. Express checkout payment options don’t support inventory checks. Use the APIs to: - Create integrations in your B2B storefront using Omnichannel Inventory functionality to power custom-built experiences for inventory - Execute and manage inventory allocation flows using Connect REST APIs with Salesforce Order Management ## Salesforce Order Management With the Order Management native integration with Omnichannel Inventory, you can: - Import inventory data into Omnichannel Inventory from external sources - Connect Omnichannel Inventory to external sales channels and customize inventory experiences - Get inventory availability data for SKUs, locations, and location groups - Transfer reservations from a location group to a location or from one location to another location - Release reservations from a location group and its locations during cancellations - Fulfill reservations from a location group and its locations - Unlock distributed order management tools for enhanced order management functionality ## External Systems Omnichannel Inventory uses headless APIs to retrieve inventory updates from your back-office system and provide real-time availability on your storefront. When shoppers add items to their online shopping carts and submit their orders, Omnichannel Inventory reserves inventory items and updates the inventory counts in your back-office system. To import inventory from an external source into Omnichannel Inventory, use the Omnichannel Inventory headless API for imports. #### See Also - [Omnichannel Inventory Headless API Endpoints](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_headless_apis.htm&release=264.0.0&type=5 "Connect your Omnichannel Inventory service to your storefront and order management systems using Salesforce Commerce API endpoints. Import and upload inventory files, retrieve inventory updates from your back-office system, provide real-time availability data, and manage reservations. Maintain accurate inventory levels and ensure product availability across multiple channels.") - [Omnichannel Inventory Connect REST APIs](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_connect_rest_apis.htm&release=264.0.0&type=5 "Connect your inventory management process by connecting your Omnichannel Inventory service to Salesforce Platform apps. Use the Connect REST APIs to import and upload inventory files, access real-time inventory availability, and manage reservations.") - [Omnichannel Inventory APIs for B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_apis.htm&release=264.0.0&type=5 "Get near real-time inventory availability, streamlined reservation processing, and location-based order fulfillment with Salesforce APIs and Omnichannel Inventory. Provide customers with accurate inventory information and efficient order management.") - [Troubleshooting the Omnichannel Inventory Integration](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/topics/b2c_troubleshooting_omnichannel_inventory_integration.html) # Omnichannel Inventory Reservation Lifecycle When an item is added to a cart, an inventory reservation is created and assigned an ID. All subsequent actions for the reservation, such as cancel, unreserve, transfer, and fulfill, generate events that are grouped under the reservation ID. You can review which reservations have completed their lifecycle and which haven’t. ### Required Editions
View supported editions.
Multiple reservation IDs per order aren’t supported. For example, you can’t use reservation tracking with order on behalf of, even exchanges, reshipping, and adding items. In this example, each action creates an event that is tracked with the associated reservation ID. - Reservation 1 was created, transferred, and fulfilled. - Reservation 2 was created, transferred, and canceled. - Reservation 3 is created and then unreserved. ![Omnichannel Inventory reservation lifecycle](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-inv_omnichannel_inventory-264-0-0-production-enus/43699e0f-a394-4b55-a1eb-072df389499a/inv_omnichannel_inventory/images/res_tracking_lifecycle.png) #### See Also - [Reservation Tracking in Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_track_reservation.htm&release=264.0.0&type=5 "Reservation tracking simplifies the process of monitoring all reservation-related activities, from the moment that inventory is placed in a cart through fulfillment or cancellation. Each reservation has a unique ID that’s used to track actions associated with the reservation as it progresses through the fulfillment process.") # Omnichannel Inventory Reservations When a customer places an order, the system reserves inventory to fulfill the order and a reservation is created. When a reservation is assigned to a location group, you can implement business rules to transfer it to a specific location for fulfillment. For example, when a shopper places an online order for several products the system creates reservations for the ordered products at the location group containing the online store’s fulfillment locations. Business rules calculate the most efficient set of locations in the group that can fulfill all the reservations from the order. The system then transfers the reservations to the individual locations and each location fulfills its reservations. # Omnichannel Inventory Resources In addition to _Salesforce Help_, Omnichannel Inventory has documentation resources to help you learn about, set up, administer, and extend Omnichannel Inventory. ## Omnichannel Inventory Help - [Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory.htm&language=en_US) ## What’s New in Winter '26? - [Salesforce Order Management Winter '26 Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_om_order_managment.htm&language=en_US) - [Omnichannel Inventory Winter '26 Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_inv_omnichannel_inventory.htm&language=en_US) ## Trailhead - [Omnichannel Inventory](https://trailhead.salesforce.com/content/learn/modules/omnichannel-inventory) ## Implementation Resources - [Omnichannel Inventory Implementation Guide for B2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_intro.htm&release=264.0.0&type=5 "This guide outlines the necessary steps for Salesforce Administrators to understand, set up, and use Salesforce Omnichannel Inventory.") - [Omnichannel Inventory Implementation Guide for B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.oci_impl_intro_b2b_d2c.htm&release=264.0.0&type=5 "Omnichannel Inventory is a scalable inventory solution that delivers near real-time inventory availability at the location level across all your fulfillment channels. It integrates with Salesforce B2B and D2C Commerce and Salesforce Order Management, so you can deliver a true end-to-end shopping experience on your ecommerce storefront.") - [Flow Builder](https://help.salesforce.com/articleView?id=flow.htm&language=en_US) - [Omnichannel Inventory Flow Core Actions](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_oci_actions_list.htm&language=en_US) - [Omnichannel Inventory Downtime Playbook for Routing Flows](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/OmnichannelInventoryDowntimePlaybook.pdf) (PDF) - [Distributed Order Management Flow Package User Guide](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/DOMRoutingPackage.pdf) (PDF) ## Developer Resources - [Salesforce Developer Center](https://developer.salesforce.com/developer-centers/commerce-cloud) (Commerce) Headless API Specifications - [Inventory Availability API](https://developer.salesforce.com/docs/commerce/commerce-api/references/inventory-availability?meta=Summary) - [Inventory Impex API](https://developer.salesforce.com/docs/commerce/commerce-api/references/impex?meta=Summary) - [Inventory Reservations API](https://developer.salesforce.com/docs/commerce/commerce-api/references/inventory-reservation-service?meta=Summary) Connect REST API Guide [Salesforce Omnichannel Inventory Resources](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_omnichannel_inventory_resources.htm) Apex Developer Guide [OmnichannelInventoryService Class](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_ConnectAPI_OmnichannelInventoryService_static_methods.htm#apex_ConnectAPI_OmnichannelInventoryService_static_methods) ## Related Resources - [Salesforce Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_order_management.htm&language=en_US) (Help) - [Salesforce B2C Commerce](https://help.salesforce.com/s/articleView?id=cc.b2c_getting_started.htm&language=en_US) (Help) - [Salesforce B2B Commerce and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_intro.htm&language=en_US) (Help) # Omnichannel Inventory Service The Omnichannel Inventory service is a collection of APIs that you can use to get inventory availability data and manage reservations across all your fulfillment channels. Retrieve inventory updates from your back-office systems, such as WMS, ERP, and POS. Provide near real-time inventory availability to shoppers, and reserve inventory when shoppers submit orders. You can also share inventory availability by location and location group for order fulfillment. - **[Omnichannel Inventory APIs for B2B and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_apis.htm&release=264.0.0&type=5)** Get near real-time inventory availability, streamlined reservation processing, and location-based order fulfillment with Salesforce APIs and Omnichannel Inventory. Provide customers with accurate inventory information and efficient order management. - **[Omnichannel Inventory Connect REST APIs](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_connect_rest_apis.htm&release=264.0.0&type=5)** Connect your inventory management process by connecting your Omnichannel Inventory service to Salesforce Platform apps. Use the Connect REST APIs to import and upload inventory files, access real-time inventory availability, and manage reservations. - **[Omnichannel Inventory Headless API Endpoints](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_headless_apis.htm&release=264.0.0&type=5)** Connect your Omnichannel Inventory service to your storefront and order management systems using Salesforce Commerce API endpoints. Import and upload inventory files, retrieve inventory updates from your back-office system, provide real-time availability data, and manage reservations. Maintain accurate inventory levels and ensure product availability across multiple channels. - **[Omnichannel Inventory Integrations](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_integrations.htm&release=264.0.0&type=5)** Connect Omnichannel Inventory with B2C Commerce, B2B Commerce, Salesforce Order Management, and your back-office systems to optimize fulfillment across your network of stores and distribution centers. - **[Reservation Tracking in Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_track_reservation.htm&release=264.0.0&type=5)** Reservation tracking simplifies the process of monitoring all reservation-related activities, from the moment that inventory is placed in a cart through fulfillment or cancellation. Each reservation has a unique ID that’s used to track actions associated with the reservation as it progresses through the fulfillment process. - **[Shipping Eligibility for a Product](https://help.salesforce.com/s/articleView?id=commerce.inv_set_shipping_eligibility.htm&release=264.0.0&type=5)** You can make an item ineligible to ship from a specific location but make it available for in-store pickup. This feature provides merchants more flexibility with how and from where an order is fulfilled. # Omnichannel Inventory Terminology Familiarize yourself with common Omnichannel Inventory terms. ### Required Editions
View supported editions.
Term Definition
Available to fulfill (ATF) Inventory that can be fulfilled now.
Available to order (ATO) Inventory that can be ordered. Includes future quantity.
Disabled shipping Shipping has been disabled for the item.
Future quantity Inventory available for pre-order or backorder or that is expected soon. Included in ATO.
Location Physical location where inventory is housed, such as a store, warehouse, or third-party marketplace.
Location graph Represents the mapping of locations to location groups. The graph contains every location group and its member locations.
Location group A defined group of locations with an aggregated view of inventory availability.
On hand Physical inventory available, not including future quantity.
Quantity reserved Inventory reserved for fulfillment.
Reservation

Inventory added to a storefront cart or an order when it’s created. The number of reservations the system has against this inventory.

When an item is added to a shopping cart or an order, the item quantity is subtracted from the ATO and ATF totals. Because the item quantity reduces the total quantity available, a reservation guarantees that the item quantity is available at checkout and that the order can be fulfilled.

If the item availability is zero, a reservation can’t be made and the product can’t be added to a shopping cart or an order.

Safety stock count Inventory that is intentionally held in reserve that isn’t included in ATO and ATF.
Stock keeping unit (SKU) Unique code that is assigned to each product in your inventory to track the availability and movement of inventory items.
#### See Also - [Introduction to Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_basics.htm&release=264.0.0&type=5 "Omnichannel Inventory is a scalable inventory solution that shows you near real-time inventory availability at the location level across all your fulfillment channels. Omnichannel Inventory combines the power of headless APIs and the flexibility of the Salesforce Platform to provide merchants and shoppers with a single source of truth for inventory availability. It integrates seamlessly with Salesforce B2C Commerce, B2B Commerce, D2C Commerce, and Salesforce Order Management, so you can deliver a true end-to-end shopping experience on your ecommerce storefront.") - [Set Up Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_get_started_with_omnichannel_inventory.htm&release=264.0.0&type=5 "Before starting, make sure that your org has an Omnichannel Inventory license.") - [Omnichannel Inventory Resources](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_resources.htm&release=264.0.0&type=5 "In addition to Salesforce Help, Omnichannel Inventory has documentation resources to help you learn about, set up, administer, and extend Omnichannel Inventory.") # Omnichannel: Configuring Delivery and Pickup Dates Configure delivery and pickup dates to provide customers with the ability to select delivery options in the Point of Sale (POS) app. The POS app provides an option to capture delivery and pickup information (dates, person of contact, and so on) at the item level. Point of Sale supports three methods for configuring delivery dates on the POS app: manual CMS configuration and defaults provided by Point of Sale backend (30-day window frame excluding Sundays). ## Prerequisistes - Modern POS App Build: 9.4.1 or later - Platform Support: iPad - Offline Support: no ## Omnichannel: Configuring Delivery and Pickup Dates CMS Configuration and Setup Specify delivery and pickup dates for orders so customers can select their preferred dates in the Point of Sale (POS) app. ### Enabling Omnichannel Fulfillment Settings 1. In CMS, go to **Store Management \\> Store Settings \\> Store Fulfillment**. 2. Under **Omni Settings**, select the pencil to show the window. 3. Turn on **Enable omni fulfillment options V2**. 4. To configure delivery options: 1. Turn on **Ship to Home** 2. Check **Ask for delivery date** 5. To configure pickup options: 1. Turn on **Pickup Later**. 2. Under **Default Fulfill From Location**, select "**Current Store**". ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Note: Only "Pickup Later" items with a default fulfillment location of "Current Store" will ask for dates on the POS app. If the default fulfillment location is "Auto Route", it is assumed that the date is unknown and the merchant will contact the customer if the item is shipped to the store. ### Configuring Delivery and Pickup Dates in CMS Set delivery and pickup dates in CMS. If not set, defaults will be provided by Retail Cloud Backend (30-day window frame excluding Sundays). For configuring dates via customization, skip to [Configuring Delivery & Pickup Dates via Custom Integration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_delivery_and_pickup_date_overview.htm&release=264.0.0&type=5 "Configure Delivery and Pickup Dates for Omnichannel in Point of Sale."). 1. In CMS, go to **Advanced \\> Date Picker Configuration**. 2. Select **Create** in the upper right corner of the screen. 3. Under **General Settings**, configure the settings: 1. **Configuration Type**: Configure the setting for either delivery or pickup orders. 2. N**umber of Future Days Selectable**: Enter how many calendar days out the delivery date can be selected with a default set to 30 days. 3. **Days After Current Date Until Available for Selection**: Enter how many calendar days after the current date can the delivery date be selected. 4. **Days of the Week**: Select days of the week that are available for deliveries with a default set to Monday, Tuesday, Wednesday, Thursday, and Friday. 4. Under **Time Windows**, configure the time range(s). 5. Under **Days to Omit**, select dates that aren't available for delivery. For example New Years (01/01/2023) ### Configuring Delivery and Pickup Dates via SPI For details on how to retrieve delivery and pickup dates via SPI, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_retrieving_delivery_spi.htm&language=en_US). ### Configuring Delivery and Pickup Dates via Custom Integration Historic merchants have relied on Point of Sale backend to customize delivery and pickup dates. Reach out to Salesforce Customer Support for more information on this approach. This is only supported for NetSuite. ### POS App Flow For details on the app flow for selecting delivery and pickup dates in a cart, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_delivery_and_pickup_date_overview.htm&release=264.0.0&type=5 "Configure Delivery and Pickup Dates for Omnichannel in Point of Sale."). ## Delivery and Pickup Dates Configuration Known Issues and Restrictions Understand how Point of Sale sets delivery dates on the app. ### Order of Precedence As mentioned in the [Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_deliveryand_pickup_dates.htm&release=264.0.0&type=5 "Configure delivery and pickup dates to provide customers with the ability to select delivery options in the Point of Sale (POS) app."), Point of Sale has two ways to set delivery dates on the POS app: by hand and by default. The selectable dates that the POS app date picker uses in order of precedence are: - Manual Configuration via Date Picker Configuration - Point of Sale backend Defaults # Omnichannel: Configuring Shipping Methods on POS App Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls. Merchants can find shipping methods by setting up the CMS by hand or by using external shipping services through the SPI. The SPI calls the merchant's chosen endpoint to return shipping options for the products they want. ## Prerequisites - Modern POS App Build: 9.0.1 or later - Platform Support: iPad and iPhone - Offline Support: no - Order SPI Spec: The order SPI spec has been updated for the Omni feature. Update your SPI endpoints for order posting and retrieval. Refer to the section, [Order SPI Updates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_v2_overview.htm&release=264.0.0&type=5 "Integrate shopping experiences across channels with Point of Sale's Omnichannel."), this article for more information. - Shipping Method Spec (8.7.1 and later): Implement the Salesforce Shipping Method SPI when enabling External Shipping Provider. ## Configure Omnichannel Shipping Methods CMS - Configuration and Setup Configure Point of Sale CMS so merchants can host fixed shipping methods. For fixed shipping methods configured in the CMS, merchants can use our system to host, and we will allow selection without any external calls. You can configure shipping methods in the CMS by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_shipping_methods_management.htm&release=264.0.0&type=5 "Create different types of shipping methods for orders and transitions in Point of Sale CMS.") ### Retrieving Shipping methods via SPI 1. In CMS, go to Integrations and Custom Connectors. 2. Select Create in the upper right. 3. Under Connector Type, select SPI. 4. Under Endpoint Name, select SHIPPING\\\_METHOD. 5. Configure the rest of the fields by referring to [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html). ### Enable Primary Shipping Method with Delivery Grouping ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Important: If enabling delivery grouping and you're also using Point of Sale's Get Order Detail SPI, you'll need to send "DeliveryGroup" list in the SPI response. See [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html) If only one shipping method is allowed in the cart: 1. In CMS, go to **Store Management > Store Settings > Store Fulfillment.** 2. Under **Omni Settings**, select the pencil to show the window. 3. Turn on the flags: - **Enable Order Delivery Grouping** - **Enable external shipping provider** 4. Disable **Allow multiple shipping methods**. 5. Set and save your changes. ### Enabling Multiple Shipping Methods with Delivery Grouping ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Important: If enabling delivery grouping and you're also using Point of Sale's Get Order Detail SPI, you'll need to send "DeliveryGroup" list in the SPI response. See [Point of Sale API, SPI, and Webhook Specs](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html) If multiple shipping methods are allowed in the cart: 1. In CMS, go to **Store Management > Store Settings > Store Fulfillment**. 2. Under **Omni Settings**, select the pencil to show the window. 3. Turn on on the flags: - **Enable Order Delivery Grouping** - **Allow multiple shipping methods** 4. Disable **Enable external shipping provider**. 5. Set and save your changes. ## Omnichannel Shipping Methods POS App Flow View the workflow for configuring shipping methods in the Point of Sale (POS) app. ### Retrieving Shipping Methods via SPI at Order Level After a shipping address is entered for the cart, the store associate can select a shipping method. This action triggers the Shipping Method SPI, which retrieves and displays the applicable shipping options for the products in the cart. The app resets the shipping method if a change occurs in the quantity of endless-aisle products (add, delete, change in fulfillment type, change in quantity, and so on) or a change in the shipping address. ### Retrieving Shipping Methods via SPI at Item Level After entering a shipping address for a product in the cart, the store associate can select a shipping method for that item. This triggers the Shipping Method SPI, which retrieves and displays the applicable shipping options. Checkout can't be completed until a shipping method is selected for all applicable products. ### Delivery Groupings Items with the same fulfillment method, shipping address, delivery date, and shipping method are grouped together for delivery. The POS app receives the delivery groups in a sorted order from Point of Sale's backend, and this sorting order is shown in the cart. Each group has a sequential shipment number, starting with Shipment one. If one of the items has changed (for example, the way it's shipped or the address), it'll be in a different shipment. The number of these shipment increases by one (for example, Shipment two). ## Omnichannel Shipping and Receiving SPI Sample Request Review sample request and response payloads for the Shipping Method SPI The SPI is designed to send a list of items in the request. However, for shipping methods at the item level, it sends a list with a single item and expects a list of shipping methods as a response for the given item. Additionally, the request contains a single product with the fulfillment details but doesn't include the fulfillment type: Fulfillment location/store, shipping address, delivery date/time, price/quantity, and other product attributes from the feed. ### SPI Request Payload ``` { "customerId": "string", "cartItemList": [ { "productId": "3661601595547", "title": "E18PENDANT1", "description": "Number 1 medallion", "productClass": "Merchandise", "categories": "Accessories > Categories > Jewelry, New Arrival > Jewelry", "googleCategory": "Accessories > Categories > Jewelry", "imageUrl": "https://us.ps.com/en/categories/jewelry/numero1/3661601595547.html", "additionalImageUrls": "['https://us.ps.com/en/categories/jewelry/numero1/3661601595547.html','https://us.ps.com/en/categories/jewelry/numero1/3661601595548.html']", "condition": "NEW", "availability": "Available", "listPrice": 60, "salePrice": 60, "storePrice": 55, "currencyCode": "USD", "brand": "Gucci", "gtin": "065100004327", "mpn": "100-440-0.750-3434-A", "gender": "Unisex", "ageGroup": "10-45", "subVariantGroupId": "string", "variantGroupId": "E18PENDANT1", "color": "Silver", "colorSwatchUrl": "string", "size": "M", "pattern": "Oval", "sku": "3661601595547", "isOnSale": false, "promotionTitle": "Summer22", "promotionPrice": 55, "customString0": "string", "customString1": "string", "customString2": "string", "customString3": "string", "customString4": "string", "customString5": "string", "customString6": "string", "customString7": "string", "customString8": "string", "customString9": "string", "customString10": "string", "customString11": "string", "customString12": "string", "customInt0": 0, "customInt1": 0, "customDecimal0": 0, "customDecimal1": 0, "customDateTime0": 0, "customDateTime1": 0, "onlineInventory": 0, "material": "Metal", "manufacturer": "ABC Jewellers", "sizeGuideUrl": "string", "manufacturerDetails": "string", "manufacturerLocation": "string", "productLocation": "string", "banner": "string", "availableStores": [ "string" ], "lastUpdate": "2024-08-27T20:33:10.655Z", "storeInventory": 0, "isVirtual": true, "multipleGTINs": [ "string" ], "storeProductDetails": { "storeId": "string", "productId": "string", "storeInventory": 0, "storePrice": 0, "storePromoText": "string", "listPrice": 0, "salesPrice": 0, "storePromoBanner": "string", "clearanceItems": [ { "serialNumber": "string", "clearancePrice": 0, "itemLocationWithinStore": "string", "instructionText": "string" } ], "allocatedQuantity": 0, "safetyStockQuantity": 0, "quantityOnHand": 0, "quantityInTransit": 0, "quantityOnOrder": 0, "notForSaleQuantity": 0, "returnedItemsQuantity": 0, "floorDemoQuantity": 0, "fullPriceSerialNumbers": [ "string" ], "storeOnlineQuantity": 0, "customString0": "string", "customString1": "string", "quantity": 0 }, "onlineAvailableStores": [ "string" ], "costPrice": 0, "casePackQuantity": 0, "additionalCharges": "string", "casePackID": "string", "availabilityStartTime": "2024-08-27T20:33:10.655Z", "availabilityEndTime": "2024-08-27T20:33:10.655Z", "price": 0, "quantity": 0, "fulfillmentLocation": { "storeId": "string", "name": "string", "addressLine1": "string", "addressLine2": "string", "city": "string", "state": "string", "postalCode": "string", "countryCode": "string", "email": "string", "phone": "string", "fax": "string", "hours": [ { "day": "string", "open": "string", "close": "string" } ], "latitude": 0, "longitude": 0, "storeType": "Regular", "timeZoneId": "string", "storeGroupID": "string" }, "shippingAddress": { "firstName": "string", "lastName": "string", "addressLine1": "string", "addressLine2": "string", "city": "string", "state": "string", "postalCode": "string", "countryCode": "string", "phone": "string", "storeId": "string", "emailAddress": "string" }, "deliveryDate": 0, "deliveryTimeSlot": "09:00 - 12:00" } ] } ``` ### SPI Response Payload ``` { "shippingMethods": [ { "shippingMethodId": "001", "name": "Standard Shipping", "description": "string", "carrier": "UPS", "serviceLevel": "3-5 Days", "price": 0, "priceAfterShippingDiscount": 0, "sortOrder": 0, "taxRates": [ { "countryCode": "US", "state": "string", "postalCode": "string", "taxType": "CLASS", "chargeType": "TAX", "nonRefundable": false, "taxRate": 7.25, "taxClass": "Tax Class for Shoes and Clothing - PS0001", "taxCode": "string", ``` ## Additional Omnichannel Shipping Methods Information Review information about Omnichannel shipping methods in Point of Sale CMS, such as known issues and frequently asked questions. ### Configuring Multiple Delivery & Pickup Dates For details on how to turn on multiple delivery and pickup dates in a single order, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_deliveryand_pickup_dates.htm&release=264.0.0&type=5 "Configure delivery and pickup dates to provide customers with the ability to select delivery options in the Point of Sale (POS) app."). ### Order Management System (OMS) With this feature, the selected shipping methods are passed to OMS connectors at checkout. Additionally, grouped shipping methods are applied to “Order Delivery Group”. For more information, refer to this [article](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_orderdeliverygroup.htm?q=order). ### Transaction Logs (TLogs) TLogs support multishipment at the item level. The delivery items will have the SaleForDelivery log attribute. ### Known Issues and Restrictions The sections below contain known issues and restrictions for Omnichannel shipping methods. ### Online vs. In-Store Shipping Methods If a merchant doesn't support multiple shipping methods (Allow multiple shipments per cart/order flag disabled) and has shipment items that are both online and in-store (for example send sale), the POS app will only display the online shipping methods and associated costs. If the store wants to charge a different shipping fee for in-store shipments, we suggest making a different SKU that store workers can be taught to add to the cart. ### Frequently Asked Questions The sections below contain frequently asked questions about shipping methods. ### What happens if the cart isn't finalized and the shipping method is selected first for each item? How’s the shipping cost determined in this situation? The shipping cost will depend on the shipping preferences selected at each line level. If the items have the same delivery attributes, such as the shipping method and delivery day, they can be grouped into the same delivery group. For example, if each item in the cart shares these same delivery attributes, they’re treated as part of a single delivery group. # Omnichannel: Customizing Product Display Page (PDP) Configure the Product Display Page (PDP) in the Point of Sale (POS) app to present products effectively and improve the buying process. - Modern POS App Build: 8.4.0 or later - Platform Support: iPad and iPhone - Offline Support: no 1. Turn on the Omni settings to configure the PDP layout. Otherwise, you can’t set the layout. 2. In CMS, go to **Layouts Pages > Layout Templates > PDP** 3. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important Editing an existing cell will incorrectly render the Fulfillment Type widget. It's important to create a new and empty cell. Create or edit an existing layout. 4. Create a new empty cell by clicking **Insert Above** or **Insert Below** in the toolbar on the right. 5. Click into the new cell and on the right, go to PDP Components > Fulfillment type. 6. Select SET or PUBLISH NOW. ## PDP Default Fulfillment Type Configure the default Product Display Page (PDP) fulfillment type PDP level. If set with a value, the app uses that default type from the PDP if items are added to the cart. The app hides the fulfillment type component on the PDP and store associates won’t be able to select or change the fulfillment types on the PDP. However, if no value is set, the app uses the store configuration level default type to add items from PDP. The app shows the fulfillment type component on PDP and the store associate can select or change the fulfillment types.![Configure the PDP fulfillment type settings](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_fulfillment_type.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note If there is any PDP mapping applied to the app config, update all PDP layouts from the mapping. ## PDP Customization Update the font type, font size, or alignment on the Product Display Page (PDP) in the Omnichannel settings of the Point of Sale (POS) app. 1. In CMS, go to **Layouts Pages > Layout Templates > PDP** 2. Edit the existing PDP layout which has the fulfillment type component configured. 3. In the toolbar on the right, go to **PDP Components > Fulfillment type**. 4. Select **Font Picker**. 5. Configure the **‌Font Family** and **Font Styles** settings and select **SET**. ## Fulfillment Type Picker Select the type of picker that shows on the Product Display Page (PDP) in the Omnichannel settings of Point of Sale CMS. If "Enable mixed cart mode" is toggled on, you can select the type of picker to be displayed on the PDP and cart. If two or three fulfillment types are enabled, you can select from Switch, Radio Button, or Dropdown. If three or more fulfillment types are enabled, then the fulfillment type picker on the app defaults to Dropdown. ![Select how the fulfillment type picker displays in the Product Display Page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_omni_settings_fulfillment_type_picker.png) ## POS App Flow Set the fulfillment type in the Point of Sale (POS) app. The store associate can select the fulfillment type dropdown to change the selected fulfillment type. By default, the CMS's default fulfillment type values will be preselected on the PDP. Based on the selection of the fulfillment type, the store associate will have to provide **Pickup** and **Fulfilllment From** details. For some fulfillment, these properties will be preselected and editable, which the store associate can decide to change before adding the item to the cart. The table contains the possible states of **Pickup** and **Fulfillment From** attributes based on the selected fulfillment type: | Selected Fulfillment Type | Pick up From | Fulfill From (Only if Fulfillment Picker is enabled in CMS) | | --- | --- | --- | | In-Store | N/A | N/A | | Pickup Later | Current Store | Editable | | Auto Route or Current Store | Editable | Editable | | Ship to Home | N/A | Auto Route or Current Store | | Ship to Home From Current Store | N/A | N/A | | Pickup From Near-By Store | Explicitly select a store. | Editable | | Try At Store | Explicitly select a store. | Editable | ### Update Pickup From Location The store associate can update the pickup location for some selected fulfillment types by clicking **Pickup From**. The app will launch the store locator page and will let the store associate select any store. ### Update Fulfill From Location The store associate can update the fulfillment location for some selected fulfillment types by clicking **Fulfill From**. The app will launch the dropdown with the option to select a fulfillment location, or auto-route the item. The app opens the store locator page. The store associate chooses the store that has the item. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png) Important If the "Enable only one pickup location per order" flag is turned on, the app shows error messages if a different pickup location is selected for each **Pickup Later**, **Try at Store** or **Pickup Nearby** items. ## Configure Product Stock Overview for Point of Sale App The Stock Overview panel in the POS app shows a store associate how much of a product is available, by size or variant, at the current store and from other fulfillment options. For each size or variant, the panel shows up to three columns: - **In-Store**: the quantity available at the associate's current store. - **Network**: the estimated shipping time (for example, _1 - 3 days_) if the item ships from another location in the fulfillment network. - **Custom Made**: the estimated turnaround time to produce the item as a custom order, if the product supports custom orders. This column isn't based on inventory, so it always shows a value. 1. In CMS, go to **Apps | All**. 2. Edit an app config. 3. Go to **UI | Store Associate** and turn on **Stock Overview**. 4. Go to **Modules | In-Store Fulfillment** and turn on **Store Inventory**. If this toggle is off, the In-Store column shows a dot instead of a quantity, no matter how much stock the store actually has. 5. Go to **Modules | Settings** and turn on **Online Inventory**. If this toggle is off, the Network column shows a dot instead of a shipping estimate. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The Product Stock Overview widget is unrelated to [Find-In-Store](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_specs_store_inv_price.htm&release=264.0.0&type=5 "The Point of Sale store inventory feed is used for the Find-In-Store feature. On the PDP, a user can opt to see if a product is available in a nearby store."), which lets a shopper check nearby store stock from the storefront product page. # Omnichannel: Delivery and Pickup Date Overview Configure Delivery and Pickup Dates for Omnichannel in Point of Sale. Point of Sale allows delivery and in-store pickup orders with the option of a date selection to improve visibility with shoppers. The date selection can be done at the order level (default) or the line level. ## Prerequisites - Modern POS App Build: 9.9.1 or later - Platform Support: iPad - Offline Support: no ## Omnichannel CMS Configuration and Setup Configure Omnichannel delivery, pickup dates, and shipment addresses within Point of Sale CMS at the item and order levels. For instructions on how to configure delivery and pickup dates, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_deliveryand_pickup_dates.htm&release=264.0.0&type=5 "Configure delivery and pickup dates to provide customers with the ability to select delivery options in the Point of Sale (POS) app."). ### Enabling Shipment Addresses at Order Level ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Multiple shipping methods must be configured to turn on this feature. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_shipping_methods_on_pos_app.htm&release=264.0.0&type=5 "Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls.") 1. In CMS, go to **Store Management \\> Store Settings \\> Store Fulfillment**. 2. Under **Omni Settings**, select the pencil to show the window. 3. Disable **Allow Multiple Shipping Addresses Per Order**. 4. Set and save your changes. 5. Relaunch your POS app. ### Enabling Delivery and Pickup Dates at Order Level 1. In CMS, go to **Store Management \\> Store Settings \\> Store Fulfillment**. 2. Under **Omni Settings**, select the pencil to show the window. 3. Under **Fulfillment Types \\> Ship to Home**, check **Ask for delivery date**. 4. Disable **Allow Multiple Delivery and Pickup Dates Per Order**. 5. Relaunch your POS app. ### Enabling Shipment Addresses at Item Level ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note Multiple shipping methods must be configured to turn on this feature. [Learn More](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_configuring_shipping_methods_on_pos_app.htm&release=264.0.0&type=5 "Configure shipping methods in Point of Sale CMS’s Point of Sale (POS) app to host and select how to ship goods without external calls.") 1. In CMS, go to **Store Management \\> Store Settings \\> Store Fulfillment**. 2. Under **Omni Settings**, select the pencil to show the window. 3. Turn on the flags: - **Enable Order Delivery Grouping** - **Allow Multiple Shipments Per Order** - **Allow Multiple Delivery and Pickup Dates Per Order** - **Allow Multiple Shipping Addresses Per Order** 4. Set and save your changes. 5. Relaunch your POS app. ### Enabling Delivery and Pickup Dates at Item Level 1. In CMS, go to **Store Management \\> Store Settings \\> Store Fulfillment**. 2. Under **Omni Settings**, select the pencil to show the window. 3. Turn on **Allow Multiple Delivery and Pickup Dates Per Order**. 4. Set and save your changes. 5. Relaunch your POS app. ## Omnichannel Delivery and Pickup Date POS App Flow View the workflow for setting delivery and pickup details in the Point of Sale (POS) app ### Setting Shipment Address at Order Level On the POS app, after an item with either a fulfillment type of "Ship to Home" is added to the cart, the store associate sees a section for selecting delivery dates. ### Selecting Multiple Delivery & Pickup Dates at Order Level On the POS app, after an item with either a fulfillment type of "Ship to Home" or "Pickup Later" is added to the cart, the store associate sees a section for selecting delivery or pickup dates. Tapping on the field opens the calendar window. Here, the store associate can select the date and time. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip To add a "Will Call" switch for delivery dates—used if no delivery date is specified or the customer is unsure of the delivery schedule—use the willCallDate field on the [Date Picker SPI](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_retrieving_delivery_spi.htm&language=en_US). If this field is included in the response, it'll be fetched and displayed in the POS app. ### Setting Multiple Shipment Addresses at Item Level If a customer is logged into their profile and has items in the cart, the shipping address associated with their profile automatically populates for all items designated for shipment. To change a specific item's address, select its shipping address. This action opens a window where the address can be edited. In this window, the store associate has the option to apply this new address to every item in the cart. Items that have the same shipping addresses are organized into separate shipments (for example, Shipment 1, Shipment 2, and so on). The order can only be completed if a shipping method has been selected for all deliverable products. ### Selecting Multiple Delivery & Pickup Dates at Item Level If a customer is logged into their profile and has items in the cart, the information associated with their profile (name, email, and phone number) automatically populates for all items designated for delivery or pickup. To update the pickup details for an item, select its current pickup information. This opens a window where you can modify the pickup details as needed. In this window, the store associate has the option to apply the same information to every pickup item in the cart. To learn how to configure the layout, refer to [Pickup Information Layout](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_pickup.htm&release=264.0.0&type=5 "Configure the Pickup Information layout in the CMS to collect essential details from customers picking up orders, ensuring a smooth and secure in-store experience. Customizable fields enhance data accuracy and streamline the pickup process."). To select a pickup date, select Pickup Date to select a specific date and time. This opens a window for choosing a date either for that specific item or for all pickup items ### Delivery Groupings Items with the same fulfillment method, shipping address, delivery date, and shipping method are grouped together for delivery. The POS app receives the delivery groups in a sorted order from Point of Sale's backend, and this sorting order is shown in the cart. Each group has a sequential shipment number, starting with Shipment one. If one of the items has changed (for example, the way it's shipped or the address), it'll be in a different shipment. The number of these shipment increases by one (for example, Shipment two). ## Omnichannel Delivery and Pickup Date Receipts Configure email and print receipt settings in Point of Sale to customize the information that appears on customer receipts. Delivery and pickup details can be printed on receipts using [Print Tags](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_tags_list.htm&release=264.0.0&type=5 "Show dynamic data in your layouts by using Point of Sale print tags as placeholders. Each tag includes its description, location, receipt components, group list, and data mapping. Grouped lists output multiple data points for each tag.") or Email Tags
Use Case Print Tags Email Tag
     
Display name of the designated person for picking up the product :ps\_p\_pickup\_info TBD
Display product’s pickup date that is selected on the POS app at item level :ps\_p\_pickup\_date

{product\_pickup\_date}

Email tag must be placed between {product\_pickup\_info\_start/end} tags

Display product’s delivery date that is selected on the POS app at item level :ps\_p\_delivery\_date

{product\_delivery\_date}

Email tag must be placed between {product\_shipping\_info\_start/end} tags

Display product’s shipping method that is selected on the POS app at item level :ps\_p\_shipping\_method\_name

{product\_shipping\_method\_name}

Email tag must be placed between {product\_shipping\_info\_start/end} tags

Display product’s shipping address that is selected on the POS app at item level :ps\_p\_shipping\_address Note: Print tag only displays address line 1

{product\_shipping\_address}

Note: Email tag must be placed between {product\_shipping\_info\_start/end} tags

Example Email ReceiptExample Print Receipt ConfigurationExample Print Receipt ### Example Email Receipt Configuration ![Example Email Receipt Configuration part 1](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_exxample_email_receipt_configuration_1.png)![Example Email Receipt Configuration part 2](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_example_email_receipt_configuration_2.png) ### Example Email Receipt ![Example Email Receipt](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_example_email_receipt.png) ### Example Print Receipt Configuration ![Example Print Receipt Configuration](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_example_print_receipt_configuration.png) ### Example Print Receipt ![Example Print Receipt](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_example_print_receipt.png) ## Omnichannel Delivery and Pickup Date Known Issues & Restrictions Read about how order management limitations can impact how your data is displayed and how the Point of Sale (POS) app behaves. After items are returned, the app no longer shows the shipping address, shipping method, or delivery date details at the item level on the Order History screen. If an item's fulfillment is changed to "SHIP\_TO\_HOME" or "SHIP\_TO\_HOME\_CURRENT\_STORE," the app doesn't automatically apply the customer's address as the item-level shipping address. If item fulfillment is changed to "PICKUP\_LATER" or "PICKUP\_NEAR\_STORE," the app doesn't automatically apply the customer's information as item-level pickup information. If the item-level shipping address is set and customer login is mandatory before checkout, the POS app won't request login at that point. Instead, the app prompts for a customer login before starting the tendering process. # Omnichannel: Multiple Fulfillment Types per Cart Allows items in the cart to have multiple fulfillment types in a single order with Point of Sale's Omnichannel solution. ## Prerequisites - Modern POS App Build: 8.4.0 or later - Platform Support: iPad & iPhone - Offline Support: no ## Turn on Omnichannel Mixed Cart in Point of Sale CMS Add mixed cart mode to Point of Sale CMS so customers can select multiple order fulfillment types within a single shopping cart. 1. Go to **Store Management > Store Settings > Store Fulfillment**. 2. Under **Omni Settings**, select the pencil icon to show the window. 3. Turn on **Enable mixed cart mode**. 4. Configure the fulfillment types by referring to [Omnichannel: Enable Omni Settings](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_enabling_omni_settings.htm&release=264.0.0&type=5 "Set up Omnichannel fulfillment options in CMS so that your store associates can fulfill orders from the Point of Sale (POS) app."). ![The Enable Mixed Cart Mode setting turned on in the Omni Settings section of Retail Cloud.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_omnichannel_mixed_cart_mode.png) If the merchant has many fulfillment options but doesn't support Mixed Cart, set up a deep link to access any of the available fulfillment options. For more information, refer to [Omnichannel: Single Fulfillment Type per Cart](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_single_fulfillment_type_per_cart.htm&release=264.0.0&type=5 "Set the default fulfillment type in Point of Sale CMS to make sure orders work if a merchant can't support different fulfillment types in one cart."). If the merchant supports Mixed Cart but has certain Omnitype combination restrictions in the POS cart, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_fulfillment_type_combination_rules.htm&release=264.0.0&type=5 "Configure fulfillment combination rules in Point of Sale CMS to prevent incompatible order types.") for configuration instructions. ## POS App Flow for Multiple Fulfillment Types See how POS handles multiple fulfillment types for items in a cart. After items are added to the cart, the store associate can change the fulfillment type, pickup location, and fulfillment location of items on the screen. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The Fulfillment Type UI on the cart cell is based on the Retaul Cloud CMS settings.![The Multifullfillment Types UI in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_omnichannel_pos_app_multifulfil_ui.png) The fulfillment type can be changed by selecting the dropdown and selecting any other value from the dropdown. **Fulfill From Location** can be changed for applicable items by selecting Fulfill From. The store associate can select either **Auto Route** or a location (store or warehouse) as the fulfillment location.![The Fulfill from location option in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_omnichannel_fulfill_from_location.png) If "**Enable only one pickup location per order**" is enabled but all items in the cart don't share the same pickup location, the app provides the option for a bulk change to a single location![The Update Pickup Location window in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_modules_omnichannel_pickup_location.png). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note The bulk change feature is only available for app builds 9.4.1 or later. For app builds before 9.4.1, associates shall manually adjust the pickup location for each item. ## Omnichannel Mixed Cart Known Issues and FAQs View known issues, restrictions, and frequently asked questions (FAQs) for Omnichannel and how it operates with Point of Sale. ### Reporting Errors Fulfillment type of "Ship to Home From Current Store" or configuring "Ship to Home" with a default fulfillment location as "Current Store" can label products as "IN\_STORE." This is because the product is in-store and shipped from the current store to the customer, thus fulfilling the product from the current store. If this causes reporting errors, you can consider setting the default fulfillment location as "Auto Route." ### Can I configure the return tender policy to prioritize specific tenders first for mixed cart and mixed tender transactions? Currently, there's no way to configure the return tender policy to prioritize specific tenders. The system will process return tenders in the same order as the original payments were made. ### What happens if a customer quickly returns part or all of a mixed cart order before leaving the store? Does it behave like a normal return? Yes, this is handled as a regular return. Because Point of Sale is the order controller, the system keeps a copy of the order. Any Ship-to-Home items can be returned because the system doesn't track if the order is fulfilled. If the merchant doesn't configure the Complete Order SPI, the system will automatically locate the order and permit the return. However, if merchants want more control over this, setting up the full Order SPI is recommended. # Omnichannel: POS App Flow Create customized shopping experiences for your customers using the Point of Sale (POS) app. ## Point of Sale's Omnichannel solution Point of Sale's Omnichannel solution allows merchants to create tailored shopping experiences for their customers through the POS app. This article outlines the configuration and display options for specific features within the app. ## Prerequisites - Modern POS App Build: 8.4.0 or later - Platform Support: iPad and iPhone - Offline Support: no ## Express Checkout If items are scanned using a camera or external screen during the express checkout flow, the app adds the item as the default fulfillment type configured in the CMS or by a deep link if something else. After the items are added to the cart, the fulfillment type can be updated if **Enable mixed cart mode** is on. ## Order Details The app shows the fulfillment type, pickup, and fulfillment location details at the item level. ## Return/Exchanges The POS app allows the return of items having any Omni Fulfillment type during a sale. In-Store exchanges are only allowed if the **In-Store** type is configured in the Omni settings. Similarly, online exchanges are only allowed if **Ship to Home** is configured in the Omni settings. The app shows an error message if neither **In-Store** nor **Ship to Home** is configured during No Receipt Return or Exchange flows. ## Return Restrictions for Pre-Shipped Items For app builds 10.4.1 and later, the app prevents unshipped items from being returned to avoid inventory discrepancies or the need for reconciliation. If an order is in a preshipped state (not yet packed or shipped), the **Return this product** switch becomes disabled. You can't change it during the return process. This rule applies only if the [Ship to Home from Current Store Items Sent to PredictSpring Fulfillment switch](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_enabling_omni_settings.htm&release=264.0.0&type=5 "Set up Omnichannel fulfillment options in CMS so that your store associates can fulfill orders from the Point of Sale (POS) app.") is enabled in Omni's settings. ## Offline The POS app only supports in-store items if switched to offline mode. Other items with any other fulfillment type in the cart are removed and in-store items are retained. Any item added during offline mode only has Omni fulfillment type as in-store. Order returns and no receipt returns during offline mode will work as is without any changes in the flow. ## Edit Order If a sale order is edited, only in-store items are noneditable on the cart screen. Other items with any other fulfillment type in the edit cart can be updated/canceled. ## Suspend/Resume Cart The store associate can suspend any cart and resume it afterwards to complete the order. The app shows an error during resume if **Enable mixed cart mode** is off and the suspended cart has an item with a different fulfillment type other than the default set in the CMS or by a deep link. If the suspended cart has only in-store items, then it can be resumed even though Enable mixed cart mode is off or a different fulfillment type is set as default. ## Not on File The app always adds the not-on-file items as in-store items, even though the default type configured in the CMS or by a deep link is something else. After items are added to the cart, the fulfillment type can be updated if **Enable mixed cart mode** is on. ## Clearance Items The app always adds the clearance items as the default type configured in the CMS or by changing the fulfillment type deep link. After items are added to the cart, the fulfillment type can be updated if **Enable mixed cart mode** is on. ## Bundle Items The app always adds the bundle items as the default type configured in CMS or by a change fulfillment type deep link. After bundle items are added to the cart, the fulfillment type can be updated if **Enable mixed cart mode** is on. ## Special Items/Custom-Made Items The app always adds special items or custom-made items as **Ship to Home** with auto route even though the default type is configured in CMS or by a deep link is something else. ## Grouping of Same Fulfillment Type Items If **Group the same fulfillment type** is enabled, the app groups the same items on the cart, order details screen, and printed receipts. # Omnichannel: Serialized Products Configure store associates to record serial numbers for serialized products within the Point of Sale (POS) app. ## POS app supports serialized products for all in-store fulfillment types. If a serialized product is added to the cart, users are prompted to enter or scan its serial number. This feature is available for in-store-related fulfillment types such as In Store, Ship to Home From Current Store, and Pickup From Current Store. As the serial number will be assigned during fulfillment, not order placement, for online fulfillment types, we don't request the number during checkout. For information on managing serialized products in inventory, consult the articles provided in this [section](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_manage.htm&release=264.0.0&type=5 "Point of Sale inventory management provides a lightweight inventory management system that will allow you to manage inventory across stores, online, and digital warehouses."). ## Prerequisites - Modern POS App Build: 10.3.1 or greater - Platform Support: iPhone and iPad - Offline Support: No # Omnichannel: Single Fulfillment Type per Cart Set the default fulfillment type in Point of Sale CMS to make sure orders work if a merchant can't support different fulfillment types in one cart. - Modern POS App Build: 8.4.0 or later - Platform Support: iPad & iPhone - Offline Support: No If a merchant can't support different fulfillment types in a single cart, then the configured default fulfillment type takes precedence. For example, if "In Store" is the default, then all the orders will get processed as in-store unless otherwise indicated. But what happens to the other fulfillment types that were enabled? The store associate can still change the fulfillment type with a deep link but it only allows a single fulfillment type for a cart. Even if the deep link is configured, it'll be overridden if Mixed Cart is enabled. ## CMS - Configuration and Setup To set the deep link for single fulfillment: 1. In CMS, go to **Layouts Pages \\> All Layouts**. 2. Create or edit an existing layout. 3. Create or edit an existing cell. 4. In the toolbar on the right, go to **Deep Link \\> Store Associate \\> Select Fulfillment Type (Order Type)**. 5. Select **SAVE** or **PUBLISH NOW**. ## Apply Change to Next Transaction Only For app builds 8.10.1 and later, the store associate can update the fulfillment type to all transactions or just the next transaction in the POS app. For example, "In Store" is set as the default in the Omni V2 settings and the store associate selects "Pickup Later" to apply to the next transaction. The product added to the cart automatically has a fulfillment type as "Pickup Later" and the subsequent transaction reverts to the default, "In Store". To set the fulfillment type for the next transaction only: 1. In CMS, go to **Store Management \\> Store Settings \\> Store Fulfillment**. 2. Under **Omni Settings**, select the pencil icon to show the window. 3. Disable **Enable mixed cart mode**. 4. Save your changes and relaunch the app. 5. Tap the **Select Fulfillment Type (Order Type)** deep link. 6. Check **Apply change to the next transaction only**. ## Omnichannel POS App Flow Configure order fulfillment types with Omnichannel in the Point of Sale CMS. The store associate launches the configured Change Fulfillment Type deep link and the app shows all configured types on the UI. Those fulfillment types that aren't able to be set as default from the CMS won't appear in this list. After the changes are saved, the PDP and the cart screen add items to the cart with the selected type. ### Apply change to the next transaction only - If checked: The selected fulfillment type change will only be applicable for the next order placed in the app. If the app is killed and relaunched before the order is placed, then it reverts to the CMS default fulfillment type. - If not checked: The selected fulfillment type change will be applicable to all subsequent orders. The app persists with the selected fulfillment type even after relaunching. If the deep link is configured and launched in the app without enabling the Omni Fulfillment in the CMS, the app shows an error message. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note This deep link is only recommended for merchants who don’t have Enable mixed cart mode turned on and want to place one or a certain order with a different fulfillment type other than what is configured in the CMS. The app shows an error message if the Omni fulfillment settings aren’t enabled or Omni mixed cart mode is enabled if this deep link is launched. # Onboarding Overview Get started with Point of Sale's by understanding the deployment lifecycle and key integration points. Quickly configure feeds, ERP, and payment gateways, and manage your store operations and analytics through the content management system. ## Feeds There are two modes of integration with the Point of Sale platform. The first mode of integration is "bulk" integration performed with feed files. Feed files are used to import the product catalog, categories, stores, and more. For an overview of how feeds work, refer to the [Feeds Overview](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage_overview.htm&release=264.0.0&type=5 "Use feeds to efficiently import bulk data, such as products, categories, and stores, into Point of Sale. Feeds streamline the process of updating your Point of Sale platform with the latest information. You can schedule and manually upload feeds, then review logs to ensure data accuracy. Point of Sale supports various feed types and configurations to meet your data import needs.") article. Feeds have a [dedicated section](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_data_feeds_manage.htm&release=264.0.0&type=5 "Configure Point of Sale data feeds to manage and schedule the transfer of product, pricing, and inventory data. Managing feeds ensures accurate data synchronization between systems, such as exporting documents in CMS. You can manually run feeds, schedule them for automated updates, and implement multi-region feeds for global operations. You can also monitor feed pipelines and logs to identify and address any issues, and configure and manage export jobs for efficient data delivery.") within the help that contains the specifications for different types of feed files and how to manage feed imports in the CMS. ## ERP Integration POS can integrate with your ERP systems out of the box. See [Integrate with ERP Systems](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp.htm&release=264.0.0&type=5 "Integrate Point of Sale with various ERP systems to streamline operations and enhance data flow. Connecting Point of Sale with ERP systems such as NetSuite and SAP ensures seamless data exchange between your retail operations and back-end systems. This integration simplifies address verification and order management, and improves overall efficiency. With complete integration, you can automate processes, reduce errors, and gain a unified view of your business.") to learn about how the integration works with different ERPs. ## Payment Gateway Integration Point of Sale integrates with many of the most commonly used payment gateways: - Adyen - Braintree - PayPal - Square - Stripe - Payeezy See [Configure Payment Gateways](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_pay_gate.htm&release=264.0.0&type=5 "Integrate payment gateways into Point of Sale to securely process customer transactions. Payment gateways authorize and settle payments, ensuring smooth and reliable financial operations. You can configure callback URLs for seamless payment gateway integrations. Compare payment providers and terminal payment gateway processors to find the best solution for your retail business.t") to learn about how the integration works with different payment gateways. ## TLog / WebHook / POSLog Transactions performed using the POS app can be exported using a transaction log export, also known as TLog. The export provides the message set necessary to transfer point-of-service information to external systems. See [Export the Transaction Log (TLog)](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_tlog.htm&language=en_US) for more details. ## Content Management System (CMS) CMS manages the POS app. This includes everything from configuring feeds, designing the app experience, and viewing GMV and order data. See [How to Access Point of Sale CMS](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_accessing_cms.htm&release=264.0.0&type=5 "Access the Point of Sale CMS to control the behavior of the POS app through customization. Access the CMS through a corporate gmail account, or link a non-Gmail corporate account to gmail. Use the latest version of Google Chrome to access the CMS.") for details on how to access the CMS. Here is a list of some of the most important CMS capabilities: - Feeds – Manage feeds to bulk import data into the Point of Sale, - App UI / UX – Define the user experience and look and feel of the app with App Configs and Layouts. - Store Management – Manage store associates and registers, access Electronic Journal, and more. - Analytics / Reporting – Generate reports on GMV, orders, tender type, and more. # One-Click Checkout for Faster Transactions Simplify the checkout process at your D2C and Pay Now stores using one-click checkout with passwordless login. Customers save their contact and payment information for future transactions, eliminating the need for passwords. If your store uses managed checkout, one-click checkout is enabled by default. If your store uses custom checkout, you can add a component to enable this feature. Customers can always check out as a guest. When a first-time customer arrives at your store’s checkout page, that customer enters their contact details, shipping and billing address, if applicable, and payment information. Before placing an order, they can choose to save the information for future use. By opting in, they become a registered customer. ![Account creation checkbox on a Pay Now payment page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_paynow_saveforfuture.png) When a customer returns to the same store and enters their registered email, a one-time passcode is sent to the customer’s phone. They can also request to have a new code sent to their email address or check out as a guest. ![One-time passcode verification window](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-payments-264-0-0-production-enus/c04ba30f-6dde-4ea7-949b-4f77b22b9fcb/payments/images/payments_otp_verification.png) After the code is entered, the customer is logged in, and their saved information is prepopulated. They finish their transaction with one click. After the order is submitted, a confirmation page displays. Customers can view their saved information from My Account. A single customer can log in with a one-time passcode five times per hour, up to 20,000 logins per year. To increase the anual limit, contact your Account Executive. If a customer exceeds the hourly limit, a one-time passcode isn’t generated. The customer can either check out as a guest or wait an hour before logging in again. - **[Switch to Managed Checkout to Simplify One-Click Checkout](https://help.salesforce.com/s/articleView?id=commerce.payments_d2c_switch_to_managed_to_upgrade.htm&release=264.0.0&type=5)** Easily set up one-click checkout by switching your D2C store from custom checkout to managed checkout. If you have no custom checkout integrations, switching to managed checkout gives you access to one-click checkout without complex setup. However, if your store has a custom integration, you lose it if you switch to managed checkout. - **[Set Up One-Click Checkout for a D2C Store That Uses Custom Checkout](https://help.salesforce.com/s/articleView?id=commerce.payments_one_click_checkout_sfp.htm&release=264.0.0&type=5)** One-click checkout is not available by default with custom checkout, but you can configure it by adding a component to the Checkout page. - **[Send a One-Time Password to Any Store on the Same Org](https://help.salesforce.com/s/articleView?id=commerce.payments_otp_multisite_login_workaround.htm&release=264.0.0&type=5)** For a registered customer to use one-click checkout, they must receive a one-time password. A customer can register only one time with an org, regardless of whether the org is hosting more than one store. To send a one-time password for any store on the same org, share the shopper profile with each store. #### See Also - [Switch to Managed Checkout to Simplify One-Click Checkout](https://help.salesforce.com/s/articleView?id=commerce.payments_d2c_switch_to_managed_to_upgrade.htm&language=en_US) - [Upgrade Pay Now](https://help.salesforce.com/s/articleView?id=commerce.paynow_upgrade_payment_pages.htm&language=en_US) - [Send a One-Time Password to Any Store on the Same Org](https://help.salesforce.com/s/articleView?id=commerce.payments_otp_multisite_login_workaround.htm&language=en_US) # Open Source Components for B2B Stores Open source components offer editable source code for standard B2B store components. Use an open source component to enhance the component or customize it to meet your requirements without having to rebuild the entire component. ### Required Editions
View supported editions.
The source code is available in a public Git repository. You can clone it and customize the components using familiar tools like Salesforce Developer Experience (Salesforce DX) and Visual Studio Code (VS Code). Deploy your changes using standard Salesforce DX workflows. Customized components appear in Experience Builder under the Open Source section. You can replace the standard component with your custom version. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note Test your changes in a sandbox environment before publishing them to the production environment. Component Updates Salesforce pushes upgrades to open source components to the same Git repository where the original open source components are stored. You can choose when to pull in the latest upgrades. If you upgrade, you must manually merge your custom changes. #### See Also - [Customize B2B Store Components Using Open Source Components](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-comm-open-source-components.html) # Opening and Closing a Store for the Day in the POS app Streamline both the opening and closing processes of stores directly through the Retail Cloud Point of Sale (POS) app. Opening a store involves reconciling past tills, managing safe contents, and creating new tills. Store closure requires the reconciliation of daily tills, creating bank deposits, and the manual closing of the store. Any differences found during these processes can be fixed by choosing a preset reason code. This code is recorded in the Electronic Journal. ## Set up Point of Sale CMS for Opening and Closing a Store To fully turn on opening and store operations on the Point of Sale (POS) app, configure approval policies, reason codes, and deep links. ### Configuring Manager Approvals Configure an approval policy to allow only managers to manage tills. 1. Go to **Store Management > Associates > Approval Policies Configuration**. 2. Select **Create**. 3. Create the following till-related approval policies: 1. **Create Till**: required for starting the day with till setup 2. **Reconcile Till**: needed for end-of-day till reconciliation 3. **Reuse Old Till**: allows managers to use previously used tills 4. **View All Tills**: grants the ability to monitor and reconcile all tills remotely 4. Configure the rest of the fields by referring to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_store_associates.htm&release=264.0.0&type=5 "Store associate users can be fed into the Point of Sale platform through a feed file or they can be created and managed manually in the CMS."). ![The Approval Policies Configuration screen in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_open_close_approvals.png) ### Configuring Reason Codes Configure reason codes for any variances found if closing a store for the day. 1. Go to **Store Management > Reason Codes**. 2. Select **Create**. 3. Create reason codes for the following: 1. **Cash Register Variance Reasons** — Variances founded during till reconciliation 2. **Bank Deposit Variance** — Variances found during bank deposits 4. Save your changes. ![The Reason Codes in Point of Sale CMS where you set reasons for why a store closes for the day.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_open_close_reason_codes.png) ### Configuring Deep Links Configure deep links to open and close stores for the day. 1. Edit a layout or hamburger menu. 2. Go to the deep link picker and add the following deep links: 1. **Reconcile Till** — Reconciles selected tills 2. **Store Manager Till Summary** — Displays a list of tills associated with the store 3. **Safe Management** — Directs the user to the "**Safe Management**" screen where they can view and manage all safe-related operations. 3. Set and save your changes. ![The Safe Management section of the Select a Deep Links screen in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_open_close_deep_links.png) ## Opening Store Operations in the POS App At the beginning of the day, the store opening process involves verifying prior-day tills, reviewing safe management, and creating tills. ### Viewing Safe Management Tap the **Safe Management** deep link and you'll be directed to the [Safe Management](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_safe_management.htm&release=264.0.0&type=5 "View safe funds within a store, check the safe balance at any time, and create a suggested bank deposit each day.") screen. All figures below Expenses have a value of $0.00. Verify these amounts by counting the cash in the safe to verify the displayed safe amount is accurate. If the count has a variance, follow the retail operation guide from your company. ![The Safe Management screen in the Retail POS app that shows the Expenses report.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_safe_mgmt.png) ### Verifying Prior-Day Closing Stores Tap the **Store Manager Till Summary** deep link. You’ll see all the tills active for today. If there are any tills still active from a previous day, this indicates that the store wasn't properly closed for that day. To address this, refer to [Reconcile Tills](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_operations_open_close_store.htm&release=264.0.0&type=5 "Streamline both the opening and closing processes of stores directly through the Retail Cloud Point of Sale (POS) app."). ![The POS app after you tap the Till Summary Deep link, showing no tills found.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_prior_day_closures.png) ### Creating Tills To complete the store opening process, tap the **Create Till** deep link on each register you're creating a till on. You'll be prompted to enter the **Starting Cash** amount for the till. After entering the amount, select **Create Till** to proceed. ![The Create Till section of the Store Manager in the POS App.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_create_till.png) Then, select **Open** to open the drawer. If the drawer isn't opened, place the till inside, and close the drawer. For each till that is created, a record is written to the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud.") with the starting amount. ![The Till Created window with an option to open the till in the POS app.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_open_till.png) ## Closing Store Operations in Point of Sale At the end of the day, the store closure process involves reconciling the tills and preparing the bank deposit. ### Reconciling Tills To reconcile your store’s tills at the end of the day, on each register, tap the **Store Manager Till Summary** deep link. ![A list of tills in the Store Manager on the POS app, eith each showing a reconciled status, or with the option to reconcile it.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_reconcile_tills.png) To begin the reconciliation process, tap **Go to Reconcile** at the bottom of the screen. Select to open the till or not. Enter the total amount of money in your till into the **Actual in Drawer** field. This amount matches ‌the **Expected in Till** figure displayed. After entering the actual amount, tap **Reconcile**. ![The Store Manager in the POS app with Expected in Till displayed and the Reconcile button at the bottom.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_reconciled_till.png) If there's a discrepancy between the actual and "**Expected in Till**", select a reason code to note the variance. Users can x out and reinput the amount if it was entered incorrectly. After the reconciliation is complete, continue with any remaining tills. For each reconciled till, a record is created in the [Electronic Journal](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_electronic_journal_overview.htm&release=264.0.0&type=5 "Customize filters for transaction research and record store transactions in Retail Cloud."). This record shows the difference between the reconciled amount and the reason code, if applicable. ![The Variance window in the POS app, where you pick a reason for the variance and select Reconcile.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_variance_reconcile.png) ### Creating Bank Deposits and Closing Store After all tills are reconciled, proceed to finalize the store closure by creating your closing bank deposit. Tap the **Store Manager Till Summary** deep link. If any tills remain open, reconcile them. Make sure to confirm that each till status is marked as reconciled. After confirming, locate the "**Close Store - MM/DD/YY**" at the bottom of the screen. Verify that the date that is shown is the date that you’re closing. If the date corresponds to a previous day, this indicates that tills from a prior day remain open. Close out any previous days first, followed by the most recent day. After everything is verified, tap **Close Store** to proceed. ![The Store manager showing reconciled registers, and the Close Store option at the bottom.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_close_store.png) This action brings up the bank's deposit window displaying the cash in the safe, the suggested deposit amount, and the business date as the closing date. Enter the deposit amount, then scan or manually input the bank deposit bag number and tap Confirm. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_tip.png) Tip Tap the cash calculator icon to enter the specific amount of rolls and counts of each dollar/cent. ![The Bank Deposit window in the POS app that shows the bank deposit for the day and an option to confirm.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_bank_deposit.png) If there's a variance, select the appropriate reason code. Tap **Confirm**. ![The Bank Deposit window that appears if there's a variance. Pick a reason for the variance and select Confirm.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_close_store_variance.png) Before, you close the store, a window displays, allowing you to review the entered information. If accurate, tap **Close** to finalize and close the store. If incorrect, tap **Cancel**—the bank deposit is processed and a bank deposit record is written out to the Electronic Journal. The store remains open. If a deposit is made and the store closure is prematurely exited ('X' out), the store can reopen tills and process additional transactions within the same day, allowing for multiple bank deposits. If new transactions occur after the initial bank deposit, the closing procedure is repeated. This can result in multiple bank deposit entries in the Electronic Journal for the same day. ![The Close Store window that appears when there's a variance.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_deoposits_finalize.png) Bank deposits are recorded in the Electronic Journal with the deposit amount, variance, and reason codes (if any). The bank deposit bag ID, store business date, and the actual date the bank deposit was made are recorded under the **Notes** column, indicating the date associated with the deposit. The actual transaction time of the deposit, which may occur after the store has closed, is recorded in the Electronic Journal under **Trans Time**. # Optimize Omnichannel Inventory Synchronization Full inventory imports from Omnichannel Inventory Service to B2C Commerce can now run concurrently with delta streams, providing more flexibility in data synchronization and eliminating the need of the nightly full import schedule. Additionally, the conditions for assignment of inventory lists to sites for the import process is eliminated, resulting in a smoother setup process. To provide clear insights into the status of full imports, the Business Manager page for Omnichannel Inventory is also updated. # Optimize On-Demand Sandbox Resource Management with the Usage Dashboard Take control of your on-demand sandbox (ODS) resource consumption with the Control Center Usage Dashboard now available for ODS administrators. This feature offers a comprehensive graphical overview of sandbox usage and credit spending over selectable time frames–daily, weekly, or monthly. Use the dashboard to make informed decisions about resource distribution and budget forecasts. **How:** This enhancement includes these updates: - The Realm Usage bar chart now displays minutes and credits consumed (up or down) by realm, providing you with a clear overview of your consumption and allowing for greater flexibility and customization. - Three granularity levels are now available: daily, weekly, and monthly, catering to different reporting needs. - A daily view is shown for the past 30 days, giving you a detailed look at recent activity. - A weekly view is available for date ranges up to one year, providing a broader perspective on usage trends. - The monthly view is always accessible, offering a high-level overview of consumption over longer periods. - You can switch between granularity levels. Only one level can be selected at a time to ensure clarity in reporting. - The chart automatically updates based on the selected granularity and date range, making it easy to track changes in consumption. To ensure that the chart reflects the most up-to-date information, click Apply when you change the date range. # Optimize Page Designer Performance with Fingerprint Caching Use a new caching mechanism for the fingerprint calculation in Page Designer. This change significantly reduces the load time for pages and components without visibility rules, enhancing the overall user experience. **How:** Developers can review and adjust the cache duration setting for the fingerprint calculation. By default, the cache is set to 300 seconds for pages and components without visibility rules. This setting is located in the Page Designer configuration. #### See Also - [Page Designer Caching](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-dev-for-page-designer.html#page-designer-caching) # Optimize Sandbox Resources Dynamically Enhance your development environment by dynamically adjusting sandbox resource profiles. To manage performance and costs effectively, switch between medium, large, and xlarge profiles as needed. Automatic restarts and status checks ensure seamless transitions. **How:** How: To adjust your sandbox’s resource profile, use the patch API to update the `resourceProfile` to one of the available values listed at [Use the Sandbox API to Manage On-Demand Sandboxes](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/b2c-manage-sb.html). Note that higher profiles incur higher credit costs. During the update process, the sandbox will restart. You can check the sandbox status using the GET API. # Optimize Web Performance with Streamlined HTML Enhance your site’s SEO and user experience by compacting HTML lines, especially at the beginning of documents. This update is an automated feature added to maintain high performance and search visibility. It requires no user action. The change addresses the discontinuation of Cloudflare’s automatic compacting. # Optimize Your Site URLs for Better SEO You can now change URL preference values from slash (/) to hyphen (-) and improve the redirection of product and content links. **How:** In Business Manager, select **Merchant Tools** | **site** | **SEO** | **URL Rules**. Update the settings for Product ID Separator and Content ID Separator to use a hyphen instead of a slash. After you update the settings, the system automatically redirects outdated URLs so they remain accessible and optimized for search engines. # Options for Displaying Product Variation Search Results Configure how to display product search results on your B2B store’s Product List page. You can show all the variations of the parent product, show only the parent product, or show only the best match. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) A product can be simple, without any variations, like a tool. Or a product can have many variations, like an item of clothing, with each variation having its own SKU. For example, your store offers one-size-fits-all gardening gloves in one color. The gloves are a simple product without variations. You also sell shirts that come in sizes from XS to XL and several colors. Each color-size combination, such as red XS or blue XL, is a product variation, and each has its own SKU. Let’s say someone is shopping for gloves and a shirt. You have these options for how to show product search results. - Show all product variations—You show simple products and each variation product individually. When the buyer searches for gloves shirt, the results page shows one pair of one-size-fits-all gloves and each color-size shirt combination. - Show parent product only—You show simple products and variation parent products on the initial results page. When the buyer searches for gloves shirt, the results page shows one pair of one-size-fits-all gloves, a simple product, and one shirt, the variation parent product. On the shirt parent product, buyers click a button or link that takes them to a detail page that shows all the color-size combinations. - Show best match product only—You show the best matching product on the initial results page. When the buyer searches for white gloves XL blue shirt, the results page shows products available that best match the search terms, such as a pair of one-size-fits-all gardening gloves, and an XL blue shirt. - Show group by attributes -You group products by specific attributes, such as size or color. If you group by the color attribute, when a customer searches for a product, they see one product listing for each color. All size variations of that color are grouped under that single product. For example, if a buyer searches for `shirt`, they see one product listing for each color of the shirt. Clicking on one of the colors takes them to a page showing all available sizes in that color. To select which attribute to group by, see [Create Attributes for Product Variations in B2B Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_config_att_set.htm&type=5&language=en_US). ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_important.png) Important Pay close attention to naming conventions for parent products and their variation products. If you opt to display only the parent product, the results show the parent product name. If you choose to show only the best match, the results display either the variation product name or the parent product name, depending on which result best matches the shopper’s search. If you’re showing all the variations of the parent product, the results display the names of all the variation products . #### See Also - [Product and Variation Naming Guidelines](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_prod_variation_naming.htm&release=264.0.0&type=5 "Help customers find what they’re searching for in your B2B store by using these naming guidelines.") - [Connect a Parent Product to Its Variations on Your B2B Store’s Search Result Page](https://help.salesforce.com/s/articleView?id=commerce.comm_var_group_setup_results_layout.htm&release=264.0.0&type=5 "To make it easier for buyers to find product variations, include a link under the parent product on the Product List page. The link takes buyers directly to the variations associated with the parent product.") # Order Adjustment Group Fields The Order Adjustment Group object defines a related set of price adjustments to order products on one order. In Order Management, you usually interact with order adjustment group summaries instead of order adjustment groups. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Adjustment Group object.
Field Label Description
Adjustment Cause Identifies the promotions applied.
Description The description of the order adjustment group.
Name The name of the order adjustment group.
Order The order associated with the adjustments in this order adjustment group.
Pretax Total The total, not including tax, of all adjustments in the order adjustment group.
Related Adjustment Group The order adjustment group associated with the original order.
Total Tax The total tax for all order adjustments in the order adjustment group.
Total with Tax

The total, including tax, of all adjustments in the order adjustment group.

Total with Tax = Pretax Total + Total Tax

Type

Shows the type of adjustment made.

Possible values are:

  • Header—The adjustment was applied to the order’s balance and then distributed among the order products in the adjustment group
  • Split Line—The adjustment was applied to order product balances for the order products in the adjustment group.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Adjustment Group Summary Fields The Order Adjustment Group Summary object defines a related set of price adjustments on order product summaries belonging to one order summary. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Adjustment Group Summary object.
Field Label Description
Adjustment Cause Identifies the promotions applied.
Description The description of the order adjustment group summary.
Name The name of the order adjustment group summary.
Order Summary The order summary associated with this order adjustment group summary.
Original Order Adjustment Group The original order adjustment group associated with this order adjustment group summary. For unmanaged orders, this field is blank.
Pretax Total The total, not including tax, of the order product adjustment line item summaries associated with this order adjustment group summary.
Tax The tax on the pretax total.
Total with Tax

The total, including tax, of the order product adjustment line item summaries associated with this order adjustment group summary.

Total with Tax = Pretax Total + Tax

Type

The type of the order adjustment group summary.

Possible values are:

  • Header—Represents an order-level adjustment with an order product adjustment line item summary for one or more order product summaries on the order summary.
  • Split Line—Represents any other related set of order item adjustment line summaries.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Analytics The Order Analytics dashboard gives you real-time visibility into active order workflows, delays, and financial risk across your fulfillment network. It brings together summary metrics, status breakdowns by fulfillment location, and root-cause analysis for cancellations and returns, so your team can act on order delays and reduce lost revenue. ### Required Editions
View supported editions.
To open the Order Analytics dashboard, from the App Launcher go to **Order Management** | **OM Analytics** | **Orders**. The dashboard helps you: - Monitor active orders in flight, stuck orders, revenue at risk, and total cancellations and returns in a single view. - See order volumes across fulfillment stages, Placed, Picking, Packed, Shipped, Delivered, and Exception by location, so you can spot where orders stall. - Pinpoint root causes, such as sizing issues, transit damage, payment failures, or inventory shortages, to fix underlying problems and reduce future losses. ![Order Analytics Dashboard](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_order_analytics.png) # Order Confirm is Now a Post Call We have modified Order-Confirm to a post call. **Why:** This change was made to remove the order token from the url. # Order Delivery Group Fields The Order Delivery Group object defines a group of order products belonging to one order to be fulfilled using the same delivery method and delivered to the same recipient. In Order Management, you usually interact with order delivery group summaries instead of order delivery groups. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Delivery Group object.
Field Label Description
Created By The user who created the order delivery group record.
Created Date The date when the order delivery group record was created.
Deliver To address The delivery address for the products in the order delivery group.
Deliver To Name The name of the recipient for the delivery.
Delivery Instructions Special instructions for the delivery of the order products in the order delivery group.
Delivery Subtotal

he sum of all delivery subtotal amounts on the order products in the order delivery group.

On an order product, the delivery subtotal equals the quantity ordered multiplied by the unit price, before adjustments and tax.

Delivery Subtotal with Tax

The sum of all delivery subtotal with tax amounts on the order products in the delivery group.

On an order product, the delivery subtotal with tax amount equals the quantity multiplied by the unit price, plus tax, before adjustments.

Delivery Tax

The sum of all delivery tax amounts on the order products in the order delivery group.

On an order product, the delivery tax equals the total tax for the order product.

Description The description of the order delivery group.
Desired Delivery Date The desired delivery date for the order products in the order delivery group.
Email Address The customer’s email address.
Gift Message The customer-defined gift message for the order products in the delivery group.
Is Gift Indicates whether the order products in the order delivery group are gifts.
Last Modified By The user who last changed the order delivery group record.
Last Modified Date The date when the order delivery group record was last changed.
Order The parent order for the order delivery group. An order can have multiple order delivery groups.
Order Delivery Group Number The number of the order delivery group.
Order Delivery Method The order delivery method for the order delivery group.
Phone Number The customer’s phone number.
Pretax Total

The sum of all Pretax Total fields on the order products in the order delivery group.

On an order product, the pretax total equals the quantity ordered multiplied by the unit price, before adjustments and tax.

Promised Delivery Date The promised delivery date for the order products in the order delivery group.
Related Order Delivery Group The original order delivery group. Used for reference when a change order is created.
Total Adjustments The total, not including tax, of all adjustments made to the order products in the order delivery group.
Total Adjustments with Tax The total, including tax, of all adjustments made to the order products in the order delivery group.
Total Adjustments Tax The tax on the total adjustments.
Total Tax The sum of all the total tax amounts on the order products in the order delivery group.
Total with Tax The sum of the order delivery group’s total delivery amount and total tax amount.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Delivery Group Summary Fields The Order Delivery Group Summary object defines a group of order product summaries belonging to one order summary to be fulfilled using the same delivery method and delivered to the same recipient. An order delivery group summary is used to create one or more fulfillment orders. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Delivery Group Summary object.
Field Label Description
Adjustments

The total of the price adjustments, not including tax, applied to delivery charges associated with the order delivery group summary.

This amount includes only order item summaries of type code Charge.

Adjustments Tax The tax on the total of the price adjustments applied to delivery charges associated with the order delivery group summary.
Adjustments with Tax

The total of the price adjustments, including tax, applied to the delivery charges associated with the order delivery group summary.

Adjustment with Tax = Adjustments + Adjustments Tax

Delivery Instructions Special instructions for the delivery.
Description The description of the order delivery group summary.
Desired Delivery Date The desired date for the delivery.
Email Address The email address of the recipient.
Gift Message The gift message to include with the delivery.
Is Gift Indicates whether the order delivery group summary represents a gift.
Name The name of the recipient.
Order Delivery Method The order delivery method specified for the order delivery group summary.
Order Summary The order summary associated with the order delivery group summary.
Original Order Delivery Group The original order delivery group associated with the order delivery group summary.
Phone Number The phone number of the recipient.
Pretax Total The total, including adjustments but not tax, of the delivery charges associated with the order delivery group summary.
Promised Delivery Date The promised date for delivery.
Shipping Address The address of the recipient.
Subtotal The amount, not including adjustments or tax, of the delivery charges associated with the order delivery group summary.
Subtotal Tax The tax on the subtotal.
Subtotal with Tax

The amount, including tax, of the delivery charges associated with the order delivery group summary.

Subtotal with Tax = Subtotal + Subtotal Tax

Tax The tax on the total amount.
Total with Tax

The total, including adjustments and tax, of the delivery charges associated with the order delivery group summary.

Total with Tax = Pretax Total + Tax

This amount includes only order item summaries of type code Charge.

#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Delivery Method Fields The Order Delivery Method object is used together with the Product object to represent a delivery method. The product record is added to an order to represent a charge for that delivery method. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Delivery Method object.
Field Label Description
Carrier The carrier that the customer chose for the delivery.
Class of Service The carrier class of service that the customer chose for the delivery.
Created By The user who created the order delivery method record.
Created Date The date when the order delivery method record was created.
Description The description of the order delivery method.
Is Active Indicates whether the order delivery method is active.
Last Modified By The user who last changed the order delivery method record.
Last Modified Dare The date when the order delivery method record was last changed.
Name The name of the order delivery method.
Product

The product that represents a delivery charge order product for a delivery using this order delivery method.

For example, you can create a product that represents an overnight express charge and assign it to an overnight express order delivery method.

Reference Number The reference number for an external order delivery method.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Export Element Sizes Increased Version 20.6 of the order.xsd export schema increases the maximum length of product line item product names, address suites, and applied discount price book IDs. Why: This change is required to support the integration with Salesforce Order Management. | Element | New Maximum Length | Old Maximum Length | | --- | --- | --- | | `complexType.ProductLineItem.product-name` | 4000 | 256 | | `complexType.Address.suite` | 256 | 32 | | `complexType.AppliedDiscount.price-book-id` | 256 | 100 | #### See Also - [Order Object Import and Export](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/import_export/b2c_order_object_import_export.html) # Order Fields The Order object represents the original order or a change to an order, such as a return or cancellation. It’s associated with one order summary, which represents the current state of an order. The order record values don’t usually change. In Order Management, you usually interact with order summaries instead of orders. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order object.
Field Label Description
Account Name The name of the account associated with the order.
Account Number The number of the account associated with the order.
Activated By The user who activated the order.
Activated Date The date when the order was activated.
Billing Address The billing address for the order.
Billing Email Address The billing email address of the order.
Billing Phone Number The billing phone number of the order.
Company Authorized By The user who authorized the order.
Company Authorized Date The date when the order was authorized.
Contract End Date The last day that the contract associated with the order is in effect.
Contract Name The name of the contract associated with the order.
Contract Number The number of the contract associated with the order.
Created By The user who created the order record.
Customer Authorized By The contact who authorized the order.
Customer Authorized Date The date when the contact authorized the order.
Description The description of the order.
Last Approved Date The date when the order record was last approved.
Last Modified By Date The user who last modified the order record.
Opportunity The opportunity associated with the order.
Order Amount The total amount for the order products on the order.
Order End Date The date when the order ends.
Order Name The name of the order.
Order Number The order number assigned to the order (not the unique, system-generated number assigned during order creation).
Order Owner The user or queue that owns the order.
Order Reference Number The order reference number assigned to the order.
Order Start Date The date when the order becomes effective.
Order Type The type of the order.
Ordered Date The date when the order was placed.
Original Order

The original order that a reduction order is reducing, if the reduction order is reducing a single order.

If the reduction order is reducing more than one order, this field is blank.

PO Date The date of the purchase order.
PO Number The number of the purchase order.
Price Book The price book associated with the order.
Reduction Order Indicates whether the order is a reduction order.
Related Order The original order from which a change order was created.
Sales Channel The sales channel for the order.
Sales Store The sales store for the order.
Shipping Address The shipping address for the order.
Ship To Contact The name of the shipping contact for the order
Status The status of the order.
Tax Locate Type

Indicates the method used to handle tax on the order.

Possible values are:

  • Gross—Displays most prices and taxes as combined values. Usually applies to taxes like value-added tax (VAT).
  • Net—Displays most prices and taxes as separate values. Usually applies to taxes like sales tax.
Total Adjusted Delivery Amount The total amount, including product-level adjustments but not order-level adjustments or tax, of all order products of type Delivery Charge for the order.
Total Adjusted Delivery Amount with Tax

The total amount, including adjustments and tax, of all order products of type Delivery Charge for the order.

Total Adjusted Delivery Amount with Tax = Total Adjusted Delivery Amount + Total Adjusted Delivery Tax

Total Adjusted Delivery Tax The tax on the total adjusted delivery amount.
Total Adjusted Product Amount The total amount, including product-level adjustments but not order-level adjustments or tax, of all order products of type Order Product belonging to the order.
Total Adjusted Product Amount with Tax

The total amount, including adjustments and tax, of all order products of type Order Product for the order.

Total Adjusted Product Amount with Tax = Total Adjusted Product Amount + Total Adjusted Product Tax

Total Adjusted Product Tax The tax on the total adjusted product amount.
Total Delivery Distributed Adjustments

The total amount, not including tax, of all order-level price adjustments applied to order products of type Delivery Charge for the order.

Used only when the Order Adjustment Group has a type value of Header.

Total Delivery Distributed Adjustments Tax The tax on the total delivery distributed adjustments.
Total Delivery Distributed Adjustments with Tax

The total amount, including tax, of all order-level price adjustments applied to order products of type Delivery Charge for the order.

Total Delivery Distributed Adjustments with Tax = Total Delivery Distributed Adjustments + Total Delivery Distributed Adjustments Tax

Used only when the Order Adjustment Group has a type value of Header.

Total Product Distributed Adjustments

The total amount, not including tax, of all order-level price adjustments applied to order products of type Order Product for the order.

Used only when the Order Adjustment Group has a type value of Header.

Total Product Distributed Adjustments Tax The tax on the total product distributed adjustments.
Total Product Distributed Adjustments with Tax

The total amount, including tax, of all order-level price adjustments applied to order product summaries of type Order Product belonging to the order summary.

Total Product Distributed Adjustments with Tax = Total Product Distributed Adjustments + Total Product Distributed Adjustments Tax.

Used only when the Order Adjustment Group has a type value of Header.

Total Tax

The total tax on all order products for the order.

Total Tax = Total Adjusted Delivery Tax + Total Adjusted Product Tax + Total Delivery Distributed Adjustments Tax + Total Product Distributed Adjustments Tax

Total with Tax The total amount of the order, including tax.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Fulfillment The order fulfillment process streamlines the allocation, assignment, picking, packing, and shipment of order items. - **[Fulfillment Processes and Flows](https://help.salesforce.com/s/articleView?id=commerce.om_fulfillment_processes_and_flows.htm&release=264.0.0&type=5)** Order Management includes an unmanaged package containing sample flows and processes. The samples demonstrate how you can create a fulfillment process to allocate order items to a fulfillment location and generate a fulfillment order. - **[Fulfillment Types](https://help.salesforce.com/s/articleView?id=commerce.om_fulfillment_types.htm&release=264.0.0&type=5)** Order Management provides three fulfillment categories and six fulfillment types. Each category is associated with one or more types. You can’t change the categories, but you can customize the list of types as long as you associate each category with at least one type. - **[Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.om_inventory.htm&release=264.0.0&type=5)** Omnichannel Inventory delivers real-time inventory availability at the location level across all your fulfillment channels. If you’re using Omnichannel Inventory with Order Management, you can get inventory availability data from the Omnichannel Inventory service and use APIs to transfer, fulfill, and release reservations. You can also manage fulfillment locations and location groups using the Omnichannel Inventory app. - **[Configure Fulfillment Locations](https://help.salesforce.com/s/articleView?id=commerce.om_fulfillment_locations.htm&release=264.0.0&type=5)** Configure the location object to represent your locations and, optionally, location priorities. Then create a location record for each fulfillment location. - **[View Fulfillment Locations](https://help.salesforce.com/s/articleView?id=commerce.om_view_fulfillment_locations.htm&release=264.0.0&type=5)** Fulfillment locations identify the physical locations from which order product items are fulfilled, such as warehouses and retail stores. - **[View Order Fulfillment Details](https://help.salesforce.com/s/articleView?id=commerce.om_view_order_fulfillment_details.htm&release=264.0.0&type=5)** You can view fulfillment details and statuses on the Fulfillment Order page. - **[Change the Status of a Fulfillment Order](https://help.salesforce.com/s/articleView?id=commerce.om_update_the_status_of_a_fulfillment_order.htm&release=264.0.0&type=5)** Typically, the status of a fulfillment order updates automatically as the order moves through the fulfillment workflow. If needed, you can also update the status manually if the order hasn’t yet been fulfilled. However, you can’t go back to a status that’s already been passed in the workflow. - **[Remove an Item from a Fulfillment Order](https://help.salesforce.com/s/articleView?id=commerce.om_remove_an_item_from_a_fulfillment_order.htm&release=264.0.0&type=5)** Removing an item from a fulfillment order cancels the fulfillment process for the item. You can remove an order item only if it hasn’t been fulfilled. For example, you can reallocate an item to a new fulfillment order if the item is no longer available at the specified location. - **[Change Shipping Details for a Fulfillment Order](https://help.salesforce.com/s/articleView?id=commerce.om_update_shipping_details_for_a_fulfillment_order.htm&release=264.0.0&type=5)** You can change the shipping method and shipping address at any time before an order is fulfilled. # Order Management Analytics The Order Management Analytics dashboard provides key metrics across the order fulfillment lifecycle. Use AI-generated insights to enhance decision making for your order management operations with real-time, unified data. Create data streams to bring Order Management data into Data 360. Then connect your Data 360 license to Order Management to create calculated insights for order fulfillment performance. ### Required Editions
View supported editions.
The dashboard has two tabs: - Orders - Monitor active orders in flight, stuck orders, revenue at risk, cancellations, and returns across your fulfillment network, with breakdowns by location, status, and root cause. - Processing Fulfillment Time - View AI-powered calculated insights and pinpoint locations that require operational review to enhance efficiency and order fulfillment performance. Before using Order Management Analytics, confirm that your org has these prerequisites: - [Turn on Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_provision.htm&language=en_US&type=5), [set up an admin user](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_walkthrough.htm&language=en_US&type=5), and [connect the source Salesforce org to Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_set_up_crm_connection.htm&language=en_US&type=5). - For B2B Commerce stores, [Set Up Data 360 for B2B Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_datacloud_commerce_setup_b2b_d2c.htm&type=5&language=en_US) and [Enable Einstein Generative AI and Agents for B2B and D2C Stores](https://help.salesforce.com/s/articleView?id=commerce.comm_agent_guided_shopping_enable.htm&type=5&language=en_US). - For B2C Commerce storefronts, [Provision a B2C Commerce Connection](https://help.salesforce.com/s/articleView?id=commerce.om_provision_a_b2c_commerce_connection.htm&type=5&language=en_US) and then set up a [B2C Commerce Connector](https://help.salesforce.com/s/articleView?id=data.c360_a_commerce_cloud_connector.htm&type=5&language=en_US). Then [Enable Einstein Generative AI](https://help.salesforce.com/s/articleView?id=cc.b2c_shopping_agent_enable_einstein_ai.htm&type=5&language=en_US). The Order Management Analytics dashboard and calculated insights are available if you have Data 360 provisioned with an OM Growth license. Data 360 and Einstein Generative AI power calculated insights. To get AI-powered calculated insights, set up a data stream between Order Management and Data 360 by using convenient data kits. See [Share Data Using Order Management File-Based Data Kits](https://help.salesforce.com/s/articleView?id=commerce.om_share_data_using_om_data_kits.htm&type=5&language=en_US). Then you can turn on the connection between Data 360 and Order Management to access the dashboard and calculated insights. See [Enable Order Management Analytics](https://help.salesforce.com/s/articleView?id=commerce.om_analytics_connect_data360.htm&release=264.0.0&type=5 "Connect your org’s Data 360 license to Order Management to access the Analytics dashboard and create and view calculated insights."). To refresh the data on your dashboard, visit calculated insights in Data 360 and republish. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important If daily insights fail to generate, the system defaults to the most recent generated insight. This behavior can lead to discrepancies between AI Insights and the dashboard data. ![Order Management analytics page.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/OM_analytics_dashboard.png) - **[Enable Order Management Analytics](https://help.salesforce.com/s/articleView?id=commerce.om_analytics_connect_data360.htm&release=264.0.0&type=5)** Connect your org’s Data 360 license to Order Management to access the Analytics dashboard and create and view calculated insights. - **[Agentforce Proactive Fulfillment Alerts](https://help.salesforce.com/s/articleView?id=commerce.om_proactive_alerts.htm&release=264.0.0&type=5)** Stay ahead of supply chain volatility by transforming insights from the Analytics Dashboard into actionable recommendations. Agentforce continuously monitors fulfillment orders and triggers proactive alerts when it detects fulfillment risks by evaluating real-time disruptions like weather alerts and operational inefficiencies, such as processing delays, workflow or lay out issues. Use these recommendations to trigger autolaunched flows so that Agentforce can temporarily exclude specific locations and reroute existing allocated orders or update the processing time of slower locations to mitigate delays before they affect the customer experience. - **[Order Analytics](https://help.salesforce.com/s/articleView?id=commerce.om_order_analytics.htm&release=264.0.0&type=5)** The Order Analytics dashboard gives you real-time visibility into active order workflows, delays, and financial risk across your fulfillment network. It brings together summary metrics, status breakdowns by fulfillment location, and root-cause analysis for cancellations and returns, so your team can act on order delays and reduce lost revenue. - **[Enable Slack Notifications for Order Management Analytics](https://help.salesforce.com/s/articleView?id=commerce.om_enable_slack_notifications_for_insights_and_recommendations.htm&release=264.0.0&type=5)** Act on insights and recommendations directly from Slack. The Salesforce Order Management app delivers at-risk location notifications to your designated Slack channel. # Order Management and Omnichannel Inventory You can use Salesforce Order Management and Salesforce Omnichannel Inventory with B2B Commerce. Order Management helps you manage your orders throughout the order lifecycle, from creation to fulfillment to servicing. Omnichannel Inventory delivers real-time inventory availability data, helping you avoid costly undersells and oversells. If your B2B store integrates Omnichannel Inventory and you offer express payment options at checkout, then orders placed using those methods fail. Express checkout payment options don’t support inventory checks. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) You must purchase an Order Management license to use B2B with Order Management. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note B2B Commerce can place orders containing more than 200 line items. Order Management, however, doesn’t support routing, capturing payments, and creating invoices for orders that contain over 200 line items. For information about implementing and using Order Management, see [Salesforce Order Management Help](https://help.salesforce.com/s/articleView?id=commerce.om_order_management.htm&type=5&language=en_US). For information about implementing and using Omnichannel Inventory, see [Omnichannel Inventory Help](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory.htm&type=5&language=en_US). # Order Management and Salesforce Flow Order Management works with Salesforce Flow to help you to create manual and automated functions. We provide out-of-the-box flow templates for processes such as order summary creation, placing orders on behalf of shoppers, order fulfillment, and order servicing. - **[Salesforce Order Management Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flows.htm&release=264.0.0&type=5)** Order Management includes flow templates for creating, fulfilling, and servicing orders. The flows automate your business processes by collecting and using data to accomplish order-related tasks, such as returning or canceling an order. Some templates are available only with certain licenses, and some have special implementation considerations. You can customize the flows or run them as is. - **[Add a Service Flow to an Object Record Page](https://help.salesforce.com/s/articleView?id=commerce.om_add_service_flow_to_object_page.htm&release=264.0.0&type=5)** You can give users easy access to a flow by adding it to the Actions & Recommendations component on an object’s Lightning record page. Most Order Management flows service existing order summaries, so they’re usually added to the Order Summary record page. The Order on Behalf Of flow creates an order for a customer, so we recommend adding it to the Account page. That allows a customer service agent to create an order for a customer while viewing the customer’s account. - **[Customizing Order Management Service Flows](https://help.salesforce.com/s/articleView?id=commerce.om_flow_customizations.htm&release=264.0.0&type=5)** The Order Management service flows let customer service representatives (CSRs) help customers with their orders. You can use the provided flows as is, and you can also expand and customize them. Here are some common customizations that you can implement. # Order Management and Service Cloud Use Order Management with Service Cloud to give service agents a single view of order and service history to ensure timely processing of requests. ### Required Editions
View supported editions.
Order Management is integrated with both B2C Commerce and B2B Commerce and it natively supports Service Cloud. Because order data is shared across all these apps, service agents don’t have to search for information across multiple external systems. When a customer contacts a service agent, the agent can locate the customer’s account and all associated order summaries in the Service Console, without switching to the Order Management Console. From the order summary, the service agent can perform the following actions. - View customer data, including order and case history. - Process cancellations, reshipments, discounts, exchanges, and returns using automated service workflows. - Create a case and associate it with the related order summary. The agent’s action on the order is captured in the case history and the order history. #### See Also - [Service Cloud](https://help.salesforce.com/articleView?id=service_cloud.htm&language=en_US) # Order Management Console The Order Management Console shows all your order information at a glance. It includes tools that help you track, manage, and service orders throughout the order lifecycle. - **[Get to Know the Order Management Console](https://help.salesforce.com/s/articleView?id=commerce.om_get_to_know_order_management_console.htm&release=264.0.0&type=5)** The Order Management Console is the first thing you see when you log in to Order Management. The Order Summary page is the primary workspace in the console. - **[View Records in the Order Management Console](https://help.salesforce.com/s/articleView?id=commerce.om_view_records_in_the_order_management_console.htm&release=264.0.0&type=5)** Your order records display in a list view in the Order Management Console. List views are a great way to sort, prioritize, and analyze the records that are most important to you. - **[Customize the Order Management Console](https://help.salesforce.com/s/articleView?id=commerce.om_customize_the_order_management_console.htm&release=264.0.0&type=5)** Modify settings in the Order Management Console to make it your own. Configure custom tabs and fields, and modify page layouts and components to make it easier for users to find the information that they want. # Order Management Editions Learn about the editions and user interfaces that support Order Management. ## User Interface Order Management is available only in Lightning Experience. ## Editions Order Management is available in Enterprise, Unlimited, and Developer editions. #### See Also - [Salesforce Order Management Licenses and Allocations](https://help.salesforce.com/s/articleView?id=commerce.om_licenses.htm&release=264.0.0&type=5 "Salesforce Order Management (SOM) license allocations are based on either the anticipated gross merchandise volume (GMV) of the order summary record or the number of order summary records created. Order summary records can be either managed or unmanaged.") # Order Management Lifecycle As an order moves through the order lifecycle, it progresses through four stages: capture, fulfillment, delivery, and post fulfillment. These stages determine which services you can perform on an order. Managed and unmanaged orders are processed differently during the order lifecycle. - **[Order Management Lifecycle Stages](https://help.salesforce.com/s/articleView?id=commerce.om_order_lifecycle_stages.htm&release=264.0.0&type=5)** Each order in Order Management moves through a series of stages that collectively make up the order lifecycle. - **[Order Management Lifecycle Types](https://help.salesforce.com/s/articleView?id=commerce.om_order_lifecycle_types.htm&release=264.0.0&type=5)** An order summary’s lifecycle type specifies whether you manage it with Order Management features. - **[Order Management Lifecycle Statuses](https://help.salesforce.com/s/articleView?id=commerce.om_lifecycle_object_status.htm&release=264.0.0&type=5)** Each object type has status categories with default statuses that reflect the order lifecycle. Find these statuses in Object Manger, in the Statuses section of an object type. You can’t change the status categories, but you can customize and add statuses as long as you associate each status with a status category. Having status categories that never change is helpful if you have custom processes that depend on a record’s status category. - **[Choose the Lifecycle Type for an Order](https://help.salesforce.com/s/articleView?id=commerce.om_choosing_the_lifecycle_type_for_an_order.htm&release=264.0.0&type=5)** You set the lifecycle type for an order when you create an order summary. # Order Management Lifecycle Stages Each order in Order Management moves through a series of stages that collectively make up the order lifecycle. ### Required Editions
View supported editions.
Order Management moves an order through these stages. - Capture—The customer places an order on your storefront. Order details are submitted to Order Management. Payment for order items is authorized. - Fulfillment—The order is assigned to a fulfillment location where order items are readied for shipping. - Delivery—The order is transferred to a shipping carrier for delivery. Payment for the items is captured. - Service—Service agents respond to service requests and process cancellations, returns, exchanges, reshipments, refunds, and discounts. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note The order management lifecycle activities for a B2B order can vary, but the main stages of capture, fulfillment, delivery, and service are applicable for both B2C and B2B customers. Here’s a snapshot of what the order management lifecycle looks like for a typical B2C retail order. ![The order lifecycle from point of purchase to order delivery.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/om_order_management/images/om_order_lifecycle_mgmt.png) As an order moves through these stages in the Order Management app, all activity associated with the order is reflected in the order summary record. You manage an order throughout the order lifecycle by using the order summary record and the tools provided in the Order Management Console. #### See Also - [Order Management Lifecycle Types](https://help.salesforce.com/s/articleView?id=commerce.om_order_lifecycle_types.htm&release=264.0.0&type=5 "An order summary’s lifecycle type specifies whether you manage it with Order Management features.") - [Order Management Lifecycle Statuses](https://help.salesforce.com/s/articleView?id=commerce.om_lifecycle_object_status.htm&release=264.0.0&type=5 "Each object type has status categories with default statuses that reflect the order lifecycle. Find these statuses in Object Manger, in the Statuses section of an object type. You can’t change the status categories, but you can customize and add statuses as long as you associate each status with a status category. Having status categories that never change is helpful if you have custom processes that depend on a record’s status category.") - [Choose the Lifecycle Type for an Order](https://help.salesforce.com/s/articleView?id=commerce.om_choosing_the_lifecycle_type_for_an_order.htm&release=264.0.0&type=5 "You set the lifecycle type for an order when you create an order summary.") # Order Management Lifecycle Statuses Each object type has status categories with default statuses that reflect the order lifecycle. Find these statuses in Object Manger, in the Statuses section of an object type. You can’t change the status categories, but you can customize and add statuses as long as you associate each status with a status category. Having status categories that never change is helpful if you have custom processes that depend on a record’s status category. ### Required Editions
View supported editions.
Object Type Status Category Default Statuses
Fulfillment Order Draft
  • Draft
Activated
  • Allocated
Fulfilling
  • Assigned
  • Pickpack
Closed
  • Fulfilled
Canceled
  • Canceled
  • Rejected
Order Draft
  • Draft
Activated
  • Activated

Order Summary

The Order Summary object includes a Status field, but not a Status Category field. Standard Order Management functionality doesn’t use order summary statuses, though they can be useful for implementing custom business processes. We recommend that you configure the order summary statuses to match your order statuses.

—
  • Created
Process Exception Active
  • New
  • Triaged
Inactive
  • Ignored
  • Paused
  • Voided
Resolved
  • Resolved
Return Order Activated
  • Activated
  • Submitted
Canceled
  • Canceled
Closed
  • Closed
Draft
  • Draft
#### See Also - [Order Management Lifecycle Types](https://help.salesforce.com/s/articleView?id=commerce.om_order_lifecycle_types.htm&release=264.0.0&type=5 "An order summary’s lifecycle type specifies whether you manage it with Order Management features.") - [Order Management Lifecycle Stages](https://help.salesforce.com/s/articleView?id=commerce.om_order_lifecycle_stages.htm&release=264.0.0&type=5 "Each order in Order Management moves through a series of stages that collectively make up the order lifecycle.") - [Choose the Lifecycle Type for an Order](https://help.salesforce.com/s/articleView?id=commerce.om_choosing_the_lifecycle_type_for_an_order.htm&release=264.0.0&type=5 "You set the lifecycle type for an order when you create an order summary.") # Order Management Lifecycle Types An order summary’s lifecycle type specifies whether you manage it with Order Management features. ### Required Editions
View supported editions.
Each order summary has one of two lifecycle types. **Managed** - Use the managed lifecycle type for B2C and B2B orders that are processed only by Order Management. - Process a managed order using built-in Order Management features, such as flow core actions and API calls. - Order Management automatically updates most fields on records associated with a managed order summary, including financial data fields. - Users can’t directly modify most fields on records associated with a managed order summary. (For details, see Object Reference in the Salesforce developer documentation.) - Managed order summaries count toward the number of order summaries allowed by your license. **Unmanaged** - Use the unmanaged lifecycle type for orders that are processed by an external system or that don’t require processing. - Process an unmanaged order using an external system, such as an ERP system, and update the corresponding data in Salesforce as needed. - You can’t use most Order Management features to process an unmanaged order. - Order Management doesn’t automatically calculate financial data fields on records associated with an unmanaged order summary. - Users with the Edit Unmanaged Order Summaries or B2B Commerce Integrator User permission can modify most fields on records associated with an unmanaged order summary. (For details, see Object Reference in the Salesforce developer documentation.) #### See Also - [Order Management Lifecycle Stages](https://help.salesforce.com/s/articleView?id=commerce.om_order_lifecycle_stages.htm&release=264.0.0&type=5 "Each order in Order Management moves through a series of stages that collectively make up the order lifecycle.") - [Order Management Lifecycle Statuses](https://help.salesforce.com/s/articleView?id=commerce.om_lifecycle_object_status.htm&release=264.0.0&type=5 "Each object type has status categories with default statuses that reflect the order lifecycle. Find these statuses in Object Manger, in the Statuses section of an object type. You can’t change the status categories, but you can customize and add statuses as long as you associate each status with a status category. Having status categories that never change is helpful if you have custom processes that depend on a record’s status category.") - [Choose the Lifecycle Type for an Order](https://help.salesforce.com/s/articleView?id=commerce.om_choosing_the_lifecycle_type_for_an_order.htm&release=264.0.0&type=5 "You set the lifecycle type for an order when you create an order summary.") # Order Management Objects Order Management objects, together with existing objects, represent the elements of an order as the order progresses through the order lifecycle. The process for creating records in Order Management depends on your storefront. For example, if you use Salesforce B2C Commerce, the B2C Commerce Integration imports order data into Order Management. The terms “item” and “product” are used interchangeably throughout Order Management. Usually, technical areas like APIs and flow actions use “item,” while the user interface uses “product.” - **[Summary Objects and Change Objects](https://help.salesforce.com/s/articleView?id=commerce.om_summary_change_objects.htm&release=264.0.0&type=5)** A summary object provides a dynamic view of current order data. - **[Adjustment Objects](https://help.salesforce.com/s/articleView?id=commerce.om_adjustment_objects.htm&release=264.0.0&type=5)** An adjustment object represents discounts applied to an order or order product. Adjustment summary objects provide a dynamic view of adjustments. - **[Platform Events for Order Management Objects](https://help.salesforce.com/s/articleView?id=commerce.om_platform_events.htm&release=264.0.0&type=5)** Order Management includes platform events that provide order-related notifications. - **[Objects Used by Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_objects_used_by_order_management.htm&release=264.0.0&type=5)** Order Management objects, together with existing objects, represent the elements of an order as it progresses through its lifecycle. - **[Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5)** Learn about the standard objects and fields available for reporting in Order Management. #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Order Management Objects and Fields Learn about the standard objects and fields available for reporting in Order Management. - **[Account Objects](https://help.salesforce.com/s/articleView?id=commerce.om_account_objects.htm&release=264.0.0&type=5)** Learn about the Account objects and fields available for reporting in Order Management. - **[Billing Objects](https://help.salesforce.com/s/articleView?id=commerce.om_billing_objects.htm&release=264.0.0&type=5)** Learn about the Billing objects and fields available for reporting in Order Management. - **[Fulfillment Objects](https://help.salesforce.com/s/articleView?id=commerce.om_fulfillment_objects.htm&release=264.0.0&type=5)** Learn about the Fulfillment Order objects and fields available for reporting in Order Management. - **[Inventory Objects](https://help.salesforce.com/s/articleView?id=commerce.om_inventory_objects.htm&release=264.0.0&type=5)** Learn about the Inventory objects and fields available for reporting in Order Management. - **[Order Objects](https://help.salesforce.com/s/articleView?id=commerce.om_order_objects_fields.htm&release=264.0.0&type=5)** Learn about the Order objects and fields available for reporting in Order Management. - **[Order Transaction Objects](https://help.salesforce.com/s/articleView?id=commerce.om_order_transaction_objects.htm&release=264.0.0&type=5)** Learn about the Order Transaction objects and fields available for reporting in Order Management. - **[Payment Objects](https://help.salesforce.com/s/articleView?id=commerce.om_payment_objects.htm&release=264.0.0&type=5)** Learn about the Payment objects and fields available for reporting in Order Management. - **[Process Exception Objects](https://help.salesforce.com/s/articleView?id=commerce.om_process_exception_objects.htm&release=264.0.0&type=5)** Learn about the Processing Exception objects and fields available for reporting in Order Management. - **[Return Objects](https://help.salesforce.com/s/articleView?id=commerce.om_return_objects.htm&release=264.0.0&type=5)** Learn about the Return objects and fields available for reporting in Order Management. - **[Routing Objects](https://help.salesforce.com/s/articleView?id=commerce.om_routing_objects.htm&release=264.0.0&type=5)** Learn about the Routing objects and fields available for reporting in Order Management. - **[Shipment Objects](https://help.salesforce.com/s/articleView?id=commerce.om_shipment_objects.htm&release=264.0.0&type=5)** Learn about the Shipment objects and fields available for reporting in Order Management. # Order Management Package Links Some Order Management features require you to download a package link before you can configure and use them. Before downloading a package for the first time, ensure your org meets the requirements. Some package links have multiple requirements. ### Required Editions
View supported editions.
Feature Description Link Requirements
Order on Behalf Of External Place orders on behalf of customers. The Order on Behalf Of feature can work without Order Management. https://sfdc.co/ExternalPaymentOOBO

D2C Commerce, B2B Commerce, PayGo, B2C Premium, Advanced, Order Management Growth, or Order Visibility

Return Insights Use Einstein to summarize and analyze the reasons for product returns. https://sfdc.co/ReturnInsights

Order Management Growth

combined with

Data 360

Distributed Order Management for Full Order Management Manage routing for order fulfillment. http://sfdc.co/DOMPackagePart1

Order Management Growth, Commerce Advanced, or B2C Premium

Store Fulfillment Application Manage the picking and packing process for order fulfillment. http://sfdc.co/DOMPackagePart2

Order Management Growth, Commerce Advanced, or B2C Premium

Distributed Order Management for Order Management Lite Manage routing for order fulfillment. http://sfdc.co/OMSLiteDOM

D2C Commerce, B2B Commerce, or PayGo

# Order Management Report Templates Order Management includes five prebuilt report templates based on custom report types. ### Required Editions
View supported editions.
The Order Management report templates are provided in an unlocked package. Install the [Order Management Basic Reports](https://help.salesforce.com/s/articleView?id=commerce.om_install_the_order_management_reports_package.htm&type=5&language=en_US) package and clone the templates to create reports tailored to your business needs. This table lists the reports provided in the package.
Report Name Description Fields Included
Orders and Sales by Sales Channel. Shows the volume of orders coming in to Order Management and the sales amount by sales channel.
  • Order Summary Number
  • Original Order Number
  • Sales Channel
  • Total with Tax
Fulfillment Order Status Shows where orders are being fulfilled, the status of fulfillment orders, and fulfillment trends.
  • Fulfilled Location
  • Fulfillment Order Number
  • Fulfillment Status
  • Order Product Summary Name
  • Order Summary Number
Refunds with Reason Code Shows return amounts, quantities, and reasons, which items are being returned, and the customers who are returning the items.
  • Account Name
  • Change Order Product (Total Amount with Tax)
  • Change Order Status
  • Change Type
  • Order Product Summary name
  • Quantity Returned
  • Reason
  • Sales Channel
Order Cancellation Shows cancellation quantities and reasons, which items are being canceled, and the customers who are canceling the items.
  • Account Name
  • Change Type
  • Order Product Summary Name
  • Order Summary Number
  • Quantity Canceled
  • Reason
Appeasement with Reason Code Shows discount amounts and reasons, which items are being discounted, and which customers are receiving discounts.
  • Account Name
  • Change Type
  • Create Date
  • Line Adjustment with Tax
  • Order Product Summary Name
  • Order Summary Number
#### See Also - [Reports for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_reports.htm&release=264.0.0&type=5 "Use reports to retrieve and analyze order, fulfillment, and payment information to help you optimize service delivery and keep your order workflow running smoothly.") # Order Management Report Types Your Salesforce admin defines report types that determine the reports that you can create. ### Required Editions
View supported editions.
You define report types using primary objects. Not all objects in the Order management data model are available as primary objects. These primary objects are available for defining Order Management report types. - Credit Memo - Invoice - Fulfillment Order - Order Payment Summary - Order Summary - Return Order The primary objects are associated with other objects in the Order Management data model. You can include up to four objects in each report by building on these associations. Consider the lowest level data you need in your report to determine what primary object to start with. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note To get you started, Order Management includes five prebuilt report templates. With Order Management reports, you can: - Build reports based on the report types that you define, or clone and modify the prebuilt reports. - Add fields from other objects using lookups. - Remove fields that aren’t needed. - Filter the report using any field in the report. - Group rows and columns to create custom views. - Add charts. - Share your reports with your team or other users. For more information, see [Reports and Dashboards](https://help.salesforce.com/s/articleView?id=analytics.analytics_overview.htm&type=5&language=en_US). #### See Also - [Reports for Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_reports.htm&release=264.0.0&type=5 "Use reports to retrieve and analyze order, fulfillment, and payment information to help you optimize service delivery and keep your order workflow running smoothly.") # Order Management Resources In addition to _Salesforce Help_, Order Management has documentation resources to help you learn about, set up, administer, and extend the Order Management app. ## Salesforce Help |   | | --- | | [Salesforce Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_order_management.htm&language=en_US) (Help) | ## What’s New in Winter ‘26? Learn about all the features delivered as part of this release. |   | | --- | | [Salesforce Order Management Winter '26 Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_om_order_managment.htm&language=en_US) | | [Omnichannel Inventory Winter '26 Release Notes](https://help.salesforce.com/s/articleView?id=release-notes.rn_inv_omnichannel_inventory.htm&language=en_US) | ## Trailhead |   | | --- | | [Get Ready for Salesforce Order Management](https://trailhead.salesforce.com/en/users/strailhead/trailmixes/get-ready-for-lightning-order-management) (Trailmix) | | [Salesforce Order Management](https://trailhead.salesforce.com/content/learn/modules/om-salesforce-order-management) (Module) | ## Implementation Resources |   | | --- | | [Salesforce Order Management Implementation Guide](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&language=en_US) (Help) | | [Flow Builder](https://help.salesforce.com/articleView?id=flow.htm&language=en_US) | | [Order Management Flow Core Actions](https://help.salesforce.com/articleView?id=flow_ref_elements_om_actions_list.htm&language=en_US) | | [Order Management with B2C Commerce Add Item Playbook](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/OrderManagementAddItemPlaybook.pdf) (PDF) | | [Order Management Package Links](https://help.salesforce.com/articleView?id=om_package_links.htm&language=en_US) | ## Developer Resources
Developer Guide
Salesforce Order Management Developer Guide
Object Reference for Salesforce and Lightning Platform
Apex Developer Guide (ConnectAPI Namespace)
Connect REST API Developer Guide
REST API Developer Guide (Standard Invocable Actions)
Platform Events Developer Guide (Standard Platform Events Objects)
Standard Lightning Page Components
 
Data Models for CCS Order and Invoice Objects
CreditMemo
CreditMemoLine
Invoice
InvoiceLine
 
Data Models for Commerce Payment Objects
Payment
PaymentAuthorization
PaymentGateway
PaymentGatewayLog
PaymentGatewayProvider
PaymentGroup
PaymentLineInvoice
PaymentMethod
 
Commerce Payment Connect API
Commerce Payments Resources
 
Commerce Payment Namespace Apex Developer Guide
CommercePayments Namespace
## Distributed Order Management Routing Package Resources |   | | --- | | [Distributed Order Management Routing Package Documentation](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/DOMRoutingPackage.pdf) | | [Omnichannel Inventory Downtime Playbook](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/OmnichannelInventoryDowntimePlaybook.pdf) | ## Related Resources |   | | --- | | [Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory.htm&language=en_US) (Help) | | [Salesforce B2C Commerce](https://documentation.b2c.commercecloud.salesforce.com/DOC1/index.jsp) (Help) | | [Salesforce B2B Commerce and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_intro.htm&language=en_US) (Help) | | [Salesforce Compliance Documents](https://compliance.salesforce.com/en/documents) | # Order Management Shopper and Buyer Records Order Management uses the Account and Contact objects to represent business and individual shoppers. It can also use Person Accounts to represent individual shoppers. When it receives an order, it searches for the shopper. If it finds the shopper, it associates the order with the existing records. If it doesn’t find the shopper, it creates records for that shopper. B2B Commerce uses the term “buyer” instead of “shopper.” In Order Management, references to shoppers also apply to buyers. - **[Shopper Representation](https://help.salesforce.com/s/articleView?id=commerce.om_shopper_representation.htm&release=264.0.0&type=5)** In Salesforce, accounts represent business entities, and contacts represent individuals associated with accounts. To represent a shopper in commerce transactions, you need elements of both objects. - **[Shopper Data with the B2C Commerce Integration](https://help.salesforce.com/s/articleView?id=commerce.om_shopper_data_with_b2c_com_integration.htm&release=264.0.0&type=5)** The B2C Commerce integration creates standard accounts and contacts to represent business shoppers or buyers. It identifies a business buyer by the presence of a company name in an order’s billing address. By default, it also creates standard accounts and contacts to represent individual shoppers. #### See Also - [Person Accounts](https://help.salesforce.com/articleView?id=sales.account_person.htm&type=5&language=en_US) - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Order Management Users and Permissions To access Order Management features, users need the System Administrator profile or either the Standard Platform User profile or the Identity User profile along with the Salesforce Order Management feature permission set license. Users also require access to the Order Management console app and to any customizations that you implement. Order Management includes some persona-based permission sets that you can use as is or clone and customize. To let users assigned to the Identity User profile access Order Management features, configure the tab setting for the Identity User profile for the Account object to Default On. See [View and Edit Tab Settings in Permission Sets and Profiles](https://help.salesforce.com/s/articleView?id=platform.users_tab_visibility.htm&language=en_US). ## User Access To view the included permission sets, in the Setup Quick Find box, find and select **Permission Sets**. | Permission Set | Description | | --- | --- | | Order Management Operations Manager (Growth only) | Ability to manage day-to-day Order Management processes. Limited ability to modify open fulfillment orders. | | Order Management Agent (Growth only) | Standard Order Management user. Can modify an open fulfillment order only by advancing its status through the workflow. | | Order Management Store Associate (Growth only) | Limited access that allows an in-store associate to process fulfillment orders. | | Order Management Shopper (Growth only) | Limited access for a service user to allow an external system to make self-service requests. Read-only access to fulfillment orders. | | Order Management 1Commerce User (Connected Commerce only) | Ability to manage day-to-day Order Management processes, such as canceling, fulfilling, or returning items. | To use the included permission sets as is, create at least one custom permission set to provide access to the console app and any customizations. Each cloned permission set counts against your org’s limits. You can organize your permission sets in different ways. - (Recommended) Use one or more permission sets to provide the Order Management permission set license and persona-based permissions, and one permission set for the console app and any customizations. You can use the included permission sets or create custom permission sets with the Order Management permission set license. Assign one Order Management permission set and the custom permission set to each Order Management user. - Use multiple Order Management permission sets. You can clone the included permission sets or create custom permission sets with the Order Management permission set license. Add the console app permission and all custom permissions to each set. Assign one of the sets to each Order Management user. - Use a single permission set for all Order Management users. You can clone one of the included permission sets or create a custom permission set with the Order Management permission set license. Add the console app permission and all custom permissions to the set. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_important.png) Important If you assign more than one permission set with the Order Management permission set license to a single user, that user consumes multiple Order Management licenses. For more information, see [Permission Sets](https://help.salesforce.com/articleView?id=platform.perm_sets_overview.htm&language=en_US) and [User Licenses](https://help.salesforce.com/articleView?id=platform.users_understanding_license_types.htm&language=en_US) in Set Up and Maintain Your Salesforce Organization in Salesforce Help. ## Data Protection and Privacy Data protection and privacy regulations can require you to mask or delete customers’ personal data. However, many fields on Order Management objects that contain personal data are read-only during normal processing. Only users with the System Administrator profile or the Edit Activated Orders permission can modify them. When designing your data protection and privacy policies, be sure to account for this restriction. For more information, see [Data Protection and Privacy](https://help.salesforce.com/articleView?id=xcloud.data_protection_and_privacy.htm&language=en_US). #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Order Management Web Store Records for B2C Commerce Both the Even Exchange and the Order on Behalf Of flows require users to select a web store record that represents their B2C Commerce storefront. Order Management creates the required web store records for you. These system-generated web store records set the LocationType to Virtual. If you want to control the location or change other fields, you can create your own web store records. If your store supports multiple currencies, create a web store record for each possible combination of currency and locale that can appear in order data. An order’s currency code and locale ID are matched with the web store IsoCurrencyCode and DefaultLanguage fields, respectively. Thus, in Business Manager Site Settings, you can select only locales that match valid values for the web store DefaultLanguage. You can’t select “default.” For details about supported languages, see [WebStore](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_webstore.htm) in the Object Reference for Salesforce and Lightning Platform. To create a web store record, you must be assigned the Operations Manager permission set. You can’t create a web store with the required values in the Salesforce UI, so use a tool like Postman or Apex code. Define these properties. - Name: Any unique name - CurrencyIsoCode: Required for storefronts that support multiple currencies. This value matches the currency code in order data. - DefaultLanguage: Required for storefronts that support multiple languages. This value matches the locale ID in order data. - DefaultTaxLocaleType: NET or GROSS - ExternalReference: Use the format instanceId + @ + siteId. For example, abc\_123@SiteGenesis - LocationId: Optional. If you don’t specify a location, the system creates a location and sets this value to its ID. In that case, it sets the new location’s LocationType field to Virtual and its ExternalReference field to null. If you include any custom validations for the Location object, they must account for these values. - SupportedCurrencies: Required for storefronts that support multiple currencies. Include only one value, which must match CurrencyIsoCode. - SupportedLanguages: Required for storefronts that support multiple languages. Include only one value, which must match DefaultLanguage. - Type: B2CE Here’s an Apex code example for creating a web store. ```java WebStore createWebStore( String name, String instanceId, String siteId ) { WebStore store = new WebStore( Name = name, // Either NET or GROSS DefaultTaxLocaleType = 'NET', // Format expected is instanceId@siteId; example abc_123@SiteGenesis // If multicurrency is enabled then uncomment these lines: //CurrencyIsoCode = 'USD', //DefaultLanguage = 'en_US', //SupportedCurrencies = 'USD', //SupportedLanguages 'en_US', ExternalReference = instanceId + '@' + siteId, Type = 'B2CE'); return store; } WebStore webStoreRecord = createWebStore('Apex1 WebStore', 'abc_123', 'SiteGenesis'); insert webStoreRecord; ``` Here’s a multicurrency example. Let’s say that you have one site that supports US orders in US dollars. A second site supports UK orders in pounds or euros, and also supports French orders in euros. Create four web stores with these values. | Name | External​Reference | Currency​IsoCode | Default​Language | DefaultTax​LocaleType | Supported​Currencies | Supported​Languages | Type | | --- | --- | --- | --- | --- | --- | --- | --- | | SiteGenesis USD | abc\_123@​SiteGenesis | USD | en\_US | NET | USD | en\_US | B2CE | | SiteGenesis​Global GBP en | abc\_123@​SiteGenesis​Global | GBP | en\_GB | GROSS | GBP | en\_GB | B2CE | | SiteGenesis​Global EUR fr | abc\_123@​SiteGenesis​Global | EUR | fr\_FR | GROSS | EUR | fr\_FR | B2CE | | SiteGenesis​Global EUR en | abc\_123@​SiteGenesis​Global | EUR | en\_GB | GROSS | EUR | en\_GB | B2CE | #### See Also - [Implement Order Management](https://help.salesforce.com/s/articleView?id=commerce.om_impl_intro.htm&release=264.0.0&type=5 "Order Management can run with all Commerce products. After configuration, there are some additional steps B2C Commerce orgs must take to link their stores with Order Management.") # Order Objects Learn about the Order objects and fields available for reporting in Order Management. - **[Order Adjustment Group Summary Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_adjustment_group_summary_fields.htm&release=264.0.0&type=5)** The Order Adjustment Group Summary object defines a related set of price adjustments on order product summaries belonging to one order summary. - **[Order Delivery Group Summary Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_delivery_group_summary_fields.htm&release=264.0.0&type=5)** The Order Delivery Group Summary object defines a group of order product summaries belonging to one order summary to be fulfilled using the same delivery method and delivered to the same recipient. An order delivery group summary is used to create one or more fulfillment orders. - **[Order Payment Summary Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_payment_summary_fields.htm&release=264.0.0&type=5)** The Order Payment Summary object represents one or more payments that use the same payment method and are associated with the same order summary. The order payment summary’s values are the sums of the values of the included payments. Unlike most summary objects, there’s no corresponding Order Payment object. - **[Order Product Adjustment Line Summary Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_product_adjustment_line_summary_fields.htm&release=264.0.0&type=5)** The Order Product Adjustment Line Item Summary object represents an adjustment to the price of an order product summary, usually a discount. - **[Order Product Summary Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_product_summary_fields.htm&release=264.0.0&type=5)** The Order Product Summary object represents the current state of a product in an order summary. It tracks status by quantity. For example, it could show an ordered quantity of 3, a canceled quantity of 1, and a fulfilled quantity of 2. This object is associated with an original order product and the order product summary changes that apply to it, such as returns or cancellations. - **[Order Product Summary Change Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_product_summary_change_fields.htm&release=264.0.0&type=5)** The Order Product Summary Change object represents a change to an order product summary, such as a return or cancellation. It’s associated with an order product summary and an order product. - **[Order Product Tax Line Item Summary Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_product_tax_line_item_summary_fields.htm&release=264.0.0&type=5)** The Order Product Tax Line Item Summary object represents the current state of tax on an order product summary or an order product adjustment line item summary. Multiple order product tax summaries can apply to one order product summary or order product adjustment summary. - **[Order Summary Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_summary_fields.htm&release=264.0.0&type=5)** The Order Summary object represents the current properties and state of an order, including fulfillment information. It’s associated with one order that represents the original order. The order summary’s values are the sums of the values in the original order and subsequent orders representing changes, such as returns or cancellations. - **[Price Book Entry Fields](https://help.salesforce.com/s/articleView?id=commerce.om_price_book_entry_fields.htm&release=264.0.0&type=5)** The Price Book Entry object represents the price of a product in a price book. Although Salesforce Order Management doesn’t directly use this object, it creates stand-in price book entry records because order products require them. As you create products to represent delivery methods, add stand-in price book entry records to them. - **[Product Fields](https://help.salesforce.com/s/articleView?id=commerce.om_product_fields.htm&release=264.0.0&type=5)** The Product object represents a product that a merchant sells or has sold. A product is also used to represent delivery charges for one or more order delivery methods. # Order on Behalf Of Overview Use Order on Behalf Of (OOBO) or Order Entry to let customer service representatives (CSRs) place orders directly on behalf of a customer. This feature works with Order Management, B2B Commerce, D2C Commerce, and B2C Commerce. ### Required Editions
View supported editions.
To place orders on behalf of customers, you need either the Order Management Growth License (for Order Management OOBO), or the Connected Commerce bundle (for Order Entry with Commerce). When Order Management and OOBO are implemented, a CSR can place an order on behalf of guests and manage the order using Order Management. In B2B Commerce anc D2C Commerce, both registered and guest customers are supported. For B2C, only guest customers are supported. To get the product SKU information, Salesforce queries the appropriate data source, either B2C Commerce or Salesforce Commerce, depending on the webstore type. The SKU information includes product variants and standard attributes, pricing, tax, shipping, and some promotions. Order Entry requires the Connected Commerce bundle, which includes B2B Commerce, D2C Commerce, and Payments. With Order Entry, a CSR can place an order on behalf of a customer without an Order Management license. When the CSR places the order, Order Entry queries the B2C or B2B storefront for product and pricing information and then creates the order on the Salesforce org. You can also use Order Entry with Salesforce Service Cloud. OOBO and Order Entry support API-based checkouts only. Aura-based checkout isn’t supported. Implementing OOBO or Order Entry requires some setup steps. - Complete one of the following - Purchase and install any Commerce on Core product - Purchase and install Order Management with the Growth license - Obtain a Salesforce org. When you purchase Order Entry through the Connect Commerce bundle, an org is provisioned for you if you don’t already have one. - Install and configure Salesforce B2C, D2C, or B2B Commerce. See Salesforce D2C and B2B Commerce Help or Salesforce B2C Commerce Help. - For OOBO with B2B and D2C Commerce, [add your buyer profiles or permissions to the store's community membership](https://help.salesforce.com/s/articleView?id=commerce.comm_assign_comm_membership.htm&language=en_US). OOBO and Order Entry use SKUs to query for product information, including variant and attribute information. OOBO and Order Entry provide real-time price lookup, which includes taxes, shipping, and some types of promotions. For example, orders can participate in line-level or order-level promotions. However, some store features aren’t available when you place an order on behalf of a customer. These features aren’t supported. - Promotion discounts for a particular payment method. - The order can’t participate in bonus promotions, such as when a free product is added to the order when a different product is ordered. - The order can’t include warranties. - Only a single credit card payment method can be used for the purchase. - All items in the order must be shipped to the same address. - Product options and custom attributes aren’t available. - The order can’t participate in coupon-qualified promotions. - If the Product Variation setting is set to Show Parent Product Only, you can’t order child variations on behalf of a shopper. To change this setting, go to **Storefront** | **Search** | **Additional Settings**. - **[Unmanaged Orders (Order Entry Only)](https://help.salesforce.com/s/articleView?id=commerce.om_unmanaged_orders_oobo.htm&release=264.0.0&type=5)** Order Entry doesn’t include any of the order management functions available through Salesforce Order Management. - **[Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5)** After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization. - **[Place an Order on Behalf of a Customer](https://help.salesforce.com/s/articleView?id=commerce.om_place_order_on_behalf_of_customer.htm&release=264.0.0&type=5)** Place orders directly for customers from your own device. You can search for products, set variables and quantities, add the products to a cart, and process customer payments. # Order on Behalf Of Setup After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_tip.png) Tip For video instructions on the Order on Behalf Of setup, visit the Salesforce Support YouTube channel. See the [Order on Behalf Of](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2) series. 1. **[Set Up Prerequisites for Order on Behalf Of](https://help.salesforce.com/s/articleView?id=commerce.om_complete_prereq_oobo.htm&release=264.0.0&type=5)** There are a few prerequisites necessary before you can set up Order on Behalf Of for your org. 2. **[Configure a Delivery Method for Order on Behalf Of](https://help.salesforce.com/s/articleView?id=commerce.om_delivery_methods_oobo.htm&release=264.0.0&type=5)** To ensure that orders are consistently mapped from B2C Commerce, configure the delivery methods in your org that correspond to the shipping methods in your storefront. 3. **[Webstores for Order on Behalf Of (Optional, B2C OOBO Only)](https://help.salesforce.com/s/articleView?id=commerce.om_webstores_for_oobo_b2c.htm&release=264.0.0&type=5)** To create orders that aren’t already being pulled in from a storefront through integration, create a webstore. If you’re using B2B Commerce or D2C Commerce, your webstores are already configured. 4. **[Activate the Order on Behalf Of Flow Template](https://help.salesforce.com/s/articleView?id=commerce.om_activate_oobo_flow.htm&release=264.0.0&type=5)** The Order on Behalf Of flow lets a customer service representative use OOBO or Order Entry to create an order on behalf of a customer. To use the flow, copy and activate the flow template, and then customize the flow as needed. 5. **[Add the Order on Behalf Of Flow to an Object Page](https://help.salesforce.com/s/articleView?id=commerce.om_add_oobo_flow_object_page_oobo.htm&release=264.0.0&type=5)** Give users easy access to the Order on Behalf Of flow by adding it to the Actions & Recommendations component on a Lightning page for an object. Because all orders are associated with an account, add the flow to the Actions and Recommendations component on the account page. 6. **[Add Country and State Picklists](https://help.salesforce.com/s/articleView?id=commerce.om_add_country_state_picklists_oobo.htm&release=264.0.0&type=5)** To let customer service representatives (CSR) select state and country codes for an address from a dropdown menu, enable state and country picklists. If you don’t enable picklists, the CSR must enter the state and country code into the address, which can introduce errors. 7. **[Connect B2C Commerce and Salesforce](https://help.salesforce.com/s/articleView?id=commerce.om_connect_b2c_and_salesforce_oobo.htm&release=264.0.0&type=5)** To get product and pricing data from B2C Commerce, set up a connection between B2C Commerce and your Salesforce org. 8. **[Add a Web Store Inventory Source for Order on Behalf Of](https://help.salesforce.com/s/articleView?id=commerce.om_webstore_inventory_source_oobo.htm&release=264.0.0&type=5)** To use reservations when placing an order on behalf of a shopper, add a web store inventory source. Reservations help reduce out-of-stock errors by holding a product as soon as it’s placed in a cart. 9. **[Payments for Order on Behalf Of](https://help.salesforce.com/s/articleView?id=commerce.om_payments_oobo.htm&release=264.0.0&type=5)** Processing payments is an integral part of the Order on Behalf Of process. Whether you’re using Order Entry or OOBO with Order Management, you need a payment service. You can find payment activity in the order payment summary for each order. #### See Also - [Order on Behalf Of Overview](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_overview_oobo.htm&release=264.0.0&type=5 "Use Order on Behalf Of (OOBO) or Order Entry to let customer service representatives (CSRs) place orders directly on behalf of a customer. This feature works with Order Management, B2B Commerce, D2C Commerce, and B2C Commerce.") - [View Your Store’s Buyer Groups and Entitlement Policies](https://help.salesforce.com/s/articleView?id=commerce.comm_buyer_groups_b2c.htm&type=5&language=en_US) - [Video: Order on Behalf Of Setup](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2) # Order Payment Summary Fields The Order Payment Summary object represents one or more payments that use the same payment method and are associated with the same order summary. The order payment summary’s values are the sums of the values of the included payments. Unlike most summary objects, there’s no corresponding Order Payment object. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Payment Summary object.
Field Label Description
Authorization Reversed The amount of the order payment summary that has been authorized.
Authorized The authorized amount of the order payment summary that has been reversed.
Available to Capture

The amount of the order payment summary that is available to be captured.

Available to Capture = Authorized - (Authorization Reversed + Pending Authorization Reversal) - (Captured + Pending Capture).

This value is zero if negative.

Available to Refund

The amount of the order payment summary that is available to be refunded.

Available to Refund = Captured – (Refunded Amount + Pending Capture Amount + Pending Refund Amount)

Balance The total balance of all payments associated with the order payment summary.
Captured The amount of the order payment summary that has been captured.
Full Name The full name of the payment method user.
Last Payment Gateway Log The most recent payment gateway log associated with the order payment summary.
Last Payment Gateway Message The most recent message received from the payment gateway associated with the order payment summary.
Method The name of the order payment summary.
Order Summary The order summary associated with the order payment summary.
Payment Method The payment method associated with the order payment summary.
Pending Authorization Amount The amount of the order payment summary that is pending authorization.
Pending Authorization Reversal The authorized amount of the order payment summary that is pending reversal.
Pending Capture The amount of the order payment summary that is pending capture.
Pending Refund The amount of the order payment summary that is pending refund.
Refunded The amount of the order payment summary that has been reversed.
Type The payment method type associated with the order payment summary, for example, credit card, check, or gift card.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Post-Processing APIs No Longer Available With the release of Salesforce Order Management, you can no longer enable the order post-processing APIs, including the Gillian package, in the B2C Commerce platform. Customers who are currently using order post-processing can continue to use it until further notice. This change does not affect Commerce Cloud Order Management. If these APIs are already enabled on your production instance and you need access to these APIs on your sandboxes, please contact Salesforce Support. If you need access to these APIs on SIGs, contact Salesforce Support. # Order Product Adjustment Line Item Fields The Order Product Adjustment Line Item object represents an adjustment to the price of an order product, usually a discount. In Order Management, you usually interact with order product adjustment summaries instead of order product adjustments. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Product Adjustment Line Item object.
Field Label Description
Adjustment Cause The promotion associated with the adjustment line item.
Amount The total amount of the adjustment line item.
Created By The user who created the order product adjustment line item record.
Created Date The date and time that the order product adjustment line item record was created.
Description The description of the adjustment line item.
Last Modified By The user who last changed the order product adjustment line item record.
Last Modified Date The date when the order product adjustment line item record was last changed.
Name The name of the adjustment line item.
Order Adjustment Group The order adjustment group that contains the order product adjustment line item.
Order Product The order product to which the adjustment line item applies.
Product Adjustment Line Item  
Related Order Product Adjustment Line Item The original order product adjustment line item. Used for reference when a change order is created.
Total Amount with Tax

The total amount, including tax, for the order product adjustment line item.

Total Amount with Tax = Amount + Total Tax

Total Tax The tax on the amount.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Product Adjustment Line Summary Fields The Order Product Adjustment Line Item Summary object represents an adjustment to the price of an order product summary, usually a discount. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Product Adjustment Line Summary object.
Field Label Description
Adjustment The amount, not including tax, of the adjustment associated with the order product adjustment line item summary.
Adjustment Cause Indicates the promotions applied.
Adjustment with Tax

The total amount, including tax, of the adjustment associated with the order product adjustment line item summary.

Adjustment with Tax = Adjustment + Tax

Description The description of the order product adjustment line item summary.
Name The name of the order product adjustment line item summary.
Order Adjustment Group Summary The order adjustment group summary associated with the order product adjustment line item summary.
Order Product Summary The order product summary associated with the order product adjustment line item summary.
Order Summary The order summary associated with the order product adjustment line item summary.
Original Order Product Adjustment Line Item

The original order product adjustment summary associated with the order product adjustment line item summary.

This field is blank for unmanaged orders.

Tax The sum of all the tax lines associated with adjustment.
# Order Product Fields The Order Product object represents an original product on an order. It can also represent a charge, such as a delivery charge. With an order product summary change, it can represent a change to a product on an order, such as a return or cancellation. In Order Management, you usually interact with order product summaries instead of order products. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Product object.
Field Label Description
Adjusted Product Subtotal The order product amount, including adjustments, but not tax.
Adjusted Product Subtotal Tax The tax on the adjusted product subtotal.
Adjusted Product Subtotal with Tax

The order product amount, including adjustments and tax.

Adjusted Product Subtotal with Tax = Adjusted Product Subtotal + Adjusted Product Subtotal Tax

Available Quantity The amount of an order product that is available to be reduced. An order product is reducible only if the available quantity is greater than zero (0).
Created By The user who created the order product record.
Created Date The date when the order product record was created.
Distributed Order Adjustments

The total amount, not including tax, of order-level price adjustments applied to the order product.

  • Applies only to order products of type Order Product.
  • Used only when the Order Adjustment Group has a type value of Header.
Distributed Order Adjustments Tax The tax on distributed order adjustments.
Distributed Order Adjustments with Tax

The total amount, including taxes, of order-level price adjustments applied to the order product.

Distributed Order Adjustments with Tax = Distributed Order Adjustments + Distributed Order Adjustments Tax

End Date The last day that the order product is available.
Gross Unit Price The unit price of the order product, including tax. This field is populated only when using a tax locale type of Gross.
Last Modified By The user who last changed the order product record.
Last Modified Date The date when the order product record was last changed.
Line Description The description of the order product. During checkout this field is populated with the order product name.
Line Number The numerical value used to order lines on the order.
List Price The list price for the order product. This value is inherited from the associated Price Book Entry when the order is created.
Order The order that contains the order product.
Order Delivery Group The order delivery group for the order product.
Order Product Number The auto-generated number used to identify the order product.
Original Order Product The original order product that a reduction order is reducing.
Product The name of the order product
Product Adjustments The total amount, not including tax, of the product-level price adjustments on the order product.
Product Adjustments Tax The tax on product adjustments.
Product Adjustments with Tax

The total amount, including tax, of the product-level price adjustments on the order product.

Product Adjustments with Tax = Product Adjustments + Product Adjustments Tax

Product Subtotal

The price of the product, not including tax or adjustments.

Product Subtotal = Unity Price x Quantity

Product Subtotal Tax The tax on the product subtotal.
Product Subtotal (Rounded) The rounded product subtotal amount, before tax and adjustments. For currencies with decimal values of 0.5 and higher, this amount is rounded up to the next highest whole unit of currency.
Product Subtotal (Rounded) with Tax The rounded product subtotal amount, including tax. For currencies with decimal values of 0.5 and higher, this amount is rounded up to the next highest whole unit of currency.
Quantity The number of units ordered.
Related Order Product For change orders, this field shows the original order product.
Start Date The start date of availability for the order product.
Total Adjustments The total amount, not including taxes, of all price adjustments on the order product.
Total Adjustments Tax The tax on total adjustments.
Total Adjustments with Tax

The total amount, including taxes, of all price adjustments on the order product.

Total Adjustments with Tax = Total Adjustments + Total Adjustments Tax

Total Amount with Tax

The total amount, including tax and price adjustments, of the order product.

Total Amount with Tax = Total Price + Total Tax

Total Price

The total price of the order product, including tax, but not adjustments.

Total Price = Product Subtotal + Product Subtotal Tax

Total Tax The total tax for the order product, including adjustments.
Type

The type of the order product. Each type corresponds to one type code.

Possible values and corresponding type codes (in parentheses) are:

  • Delivery Charge (Charge)—Indicates that the order product represents a delivery charge.
  • Order Product (Product)—Indicates that the order product represents any other type of product, service, or charge.
Type Code

The type code of the order product.

The type code of the order product.

Possible values are:

  • Charge—Indicates that the order product represents a delivery charge.
  • Product—Indicates that the order product represents any other type of product, service, or charge.
Unit Price The unit price of the order product.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Product Summary Change Fields The Order Product Summary Change object represents a change to an order product summary, such as a return or cancellation. It’s associated with an order product summary and an order product. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Product Summary Change object.
Field Label Description
Change Order Product The associated change order product.
Change Type

The type of change represented by the order product summary change.

Possible values are:

  • Add
  • Adjust
  • Cancel
  • Return
Is Prefulfillment Indicates whether the change occurs before the order product summary is fulfilled.
Order product Summary The order product summary associated with the order product summary change.
Order Summary The order summary associated with the order product summary change.
Reason The reason for the change.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Product Summary Fields The Order Product Summary object represents the current state of a product in an order summary. It tracks status by quantity. For example, it could show an ordered quantity of 3, a canceled quantity of 1, and a fulfilled quantity of 2. This object is associated with an original order product and the order product summary changes that apply to it, such as returns or cancellations. ### Required Editions
View supported editions.
The read-only Order Item Summary and Order Item Summary Change objects are system-generated and contain summary information related to products in an order. They provide summary information on Order Products, such as the total quantity, total price, and other aggregated data. However, these objects don’t have record-level access or CRUD operations like other standard or custom objects in Salesforce. If you must perform CRUD operations on Order Products records, work with the Order Item object that represents an individual line item or product in an order. The Order Item object supports CRUD operations, and you can create, read, update, and delete specific Order Product records. To access and manage Order Products records, use the Order Item object instead. This table lists the fields on the Order Product Summary object. Depending on your page layout and field-level security settings, some fields aren’t visible or editable.
Field Label Description
Adjusted Line Subtotal The amount, including adjustments but not tax, of the order item summary.
Adjusted Line Subtotal Tax The tax on the adjusted line subtotal.
Adjustments The total, not including tax, of all the price adjustments applied to the order product summary.
Adjustments Tax The tax on the adjustments.
Adjustments with Tax

The total, with tax, of all the price adjustments applied to the order product summary.

Adjustments with Tax = Adjustments + Adjustments Tax

Description The description of the order product summary.
Distributed Order Adjustments The total, not including tax, of all the order-level price adjustments applied to the order product summary. The amount includes order adjustment line item summaries that belong to order adjustment group summaries of type Header.
Distributed Order Adjustments Tax The tax on the distributed order adjustments.
Distributed Order Adjustments with Tax

The total, including tax, of the order-level price adjustments applied to the order product summary.

Distributed Order Adjustments with Tax = Distributed Order Adjustments + Distributed Order Adjustments Tax

End Date The end date of the order item summary.
Gross Unit Price The unit price, including tax, of the order item summary.
Line Adjustments

The total, not including tax, of all non order-level price adjustments applied to the order product summary.

The line adjustments amount includes order product adjustment line summaries that don’t belong to an order adjustment group summary, or that belong to an order adjustment group summary of type Split Line.

Line Adjustments Tax The tax on the line adjustments amount.
Line Adjustments with Tax

The total, including tax, of all non order-level price adjustments applied to the order product summary.

Line Adjustments with Tax = Line Adjustments + Line Adjustments Tax

Line Subtotal The amount, not including adjustments or tax, of the order product summary.
Line Subtotal Tax The tax on the line subtotal amount.
Line Subtotal with Tax

The amount, including tax but not adjustments, of the order product summary.

Line Subtotal with Tax = Line Subtotal = Line Subtotal Tax

List Price The list price of the product represented by this order product summary.
Name The name of the order product summary.
Order Delivery Group Summary The order delivery group summary associated with the order product summary.
Order Line Number

The order line number assigned to the order item summary.

For example, if this record is the third in the displayed list of order product summaries belonging to the order summary, the value is 3.

Order Summary The order summary associated with the order product summary.
Original Order Product

The original order product associated with the order product summary.

This field is blank for unmanaged order summaries.

Pretax Total The total, including adjustments but not tax, of the order product summary.
Price Book Entry The price book associated with the order summary.
Product The product represented by the order product summary.
Product Code The product code of the product represented by the order product summary.
Product SKU The SKU of the product associated with the order product summary.
Quantity The quantity of products represented by the order product summary. This value typically represents the current quantity minus cancellations and returns.
Quantity Allocated The allocated quantity of products on the order product summary.
Quantity Canceled The canceled quantity of products on the order product summary.
Quantity Fulfilled The fulfilled quantity of products on the order product summary.
Quantity Ordered The ordered quantity of products on the order product summary.
Quantity Reshipped The reshipped quantity of products on the order product summary.
Quantity Return Initiated The quantity of products pending return on the order product summary.
Quantity Returned The returned quantity of products on the order product summary.
Quantity Shipped The shipped quantity of products on the order product summary.
Start Date Start date of the order product summary.
Status

The status of the order product summary.

Possible values are:

  • Allocated
  • Canceled
  • Fulfilled
  • Ordered (Default)
  • Partially Allocated
  • Partially Fulfilled
  • Reshipped
  • Return Initiated
  • Returned
Tax The tax on the pretax total.
Total with Tax

The total price, including tax, of the order product summary.

Total with Tax = Pretax Total + Tax

Type

The type of the order product summary. Each type corresponds to one type code.

Possible values and corresponding type codes (in parentheses) are:

  • Delivery Charge (Charge)—Indicates that the order product summary represents a delivery charge.
  • Order Product (Product)—Indicates that the order product summary represents any other type of product, service, or charge.
Unit Price The unit price of the product represented by the order product summary. Represents the net value of the product.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Product Summary Status The order product summary status shows where an order product is in the order lifecycle. This status is determined by the order product summary’s quantity fields. ### Required Editions
View supported editions.
To determine an order product summary’s current status, Order Management evaluates the order product summary and compares it to the criteria for each status, in sequential order. As soon as the order product summary meets all criteria for a status, that status is assigned and no further evaluation is conducted. If the order product summary doesn’t meet all criteria for a status, it is evaluated against the next status in the sequence. The quantities mentioned are the names of the fields on the Order Product Summary. - Return initiated - `Quantity` exceeds 0. - `QuantityReturnInitiated` equals `QuantityFulfilled`. - `QuantityReturnInitiated` is 0 or greater. - `QuantityReturned` is less than `QuantityReturnInitiated`. - Reshipped - `QuantityReshipped` matches `QuantityFulfilled`. - `QuantityFulfilled` is 0. - `QuantityReturnInitiated` is 0. - `QuantityFulfilled` matches `QuantityOrdered`. - Returned - `Quantity` is 0. - `QuantityReturned` exceeds 0. - Canceled - `Quantity` is 0. - `QuantityCanceled` exceeds 0. - `QuantityReturned` is 0. - Fulfilled - `Quantity` exceeds 0. - The difference between `QuantityOrdered` and `QuantityCanceled` is equal to or less than `QuantityFulfilled`. - Partially fulfilled - `Quantity` exceeds 0. - `QuantityFulfilled` exceeds 0. - Allocated - `Quantity` exceeds 0. - `Quantity` is equal to or less than `QuantityAllocated`. - Partially Allocated - `Quantity` exceeds 0. - `QuantityAllocated` exceeds 0. - Ordered - No status’ criteria are fully met. #### See Also - [Order Product Summary Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_product_summary_fields.htm&release=264.0.0&type=5 "The Order Product Summary object represents the current state of a product in an order summary. It tracks status by quantity. For example, it could show an ordered quantity of 3, a canceled quantity of 1, and a fulfilled quantity of 2. This object is associated with an original order product and the order product summary changes that apply to it, such as returns or cancellations.") # Order Product Tax Line Item Fields The Order Product Tax Line Item object represents the tax on an order product. In Order Management, you usually interact with order product tax summaries instead of order product taxes. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Product Tax Line Item object.
Field Label Description
Amount The total amount of the order product tax line item.
Created By The user who created the order product tax line item record.
Created Date The date and time the order product tax line item record was created.
Description The description of the order product tax line item.
Last Modified By The user who last changed the order product tax line item record.
Last Modified Date The date when the order product tax line item record was last changed.
Name The name of the order product tax line item.
Order Product The order product to which the order product tax line item applies.
Order Product Adjustment Line Item The order product adjustment line item to which the order product tax line item applies.
Rate The percentage value of the tax. This field is blank if the tax is a flat amount.
Related Order Product Tax Line Item The original order product tax line item. Used for reference when a change order is created.
Tax Effective Date The date used to calculate the effective tax rate.
Type

Indicates whether the amount on the tax line is an estimate or the final calculated amount.

Possible values are:

  • Actual
  • Estimated
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Product Tax Line Item Summary Fields The Order Product Tax Line Item Summary object represents the current state of tax on an order product summary or an order product adjustment line item summary. Multiple order product tax summaries can apply to one order product summary or order product adjustment summary. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Product Tax Line Item Summary object.
Field Label Description
Amount The amount of tax represented by the order product tax line item summary.
Description The description of the order product tax line item summary.
Name The name of the order product tax line item summary.
Order Product Adjustment Line Item Summary

The order product adjustment line item summary to which the order product tax line item summary applies.

If the field is blank, the order product tax line item summary applies to an order product summary.

Order Product Summary

The ID of the order product summary to which the order product tax line item summary applies.

  • For tax on an order product summary, this value is the ID of the order product summary
  • For tax on an adjustment, this value is the ID of the order product summary to which the adjustment applies.
Order Summary The order summary associated with the order product summary or the order product adjustment line item summary for the order product tax line item summary.
Original Order Product Tax Line Item

The original order product tax line item associated with the order product tax line item summary.

For unmanaged order summaries, this field is blank.

Rate The tax rate used to calculate the amount for the order product tax line item summary.
Tax Effective Date The date on which the amount for the order product tax line item summary was calculated.
Type Indicates whether the amount for the order product tax line item summary is actual or estimated.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Promotion Combinations Order-level promotions provide discounts based on the order total. ### Required Editions
View supported editions.
Order Level Promotion Types | Promotion Qualifier | Promotion Discount | Example | | --- | --- | --- | | Amount of qualifying products | % off transaction | Buy $100 of product X, get 10% off entire transaction. | | Amount of products from a qualifying category | % off transaction | Buy $100 of products from category Y, get 10% off entire transaction. | | Amount of any product | % off transaction | Buy $100 of products from any category, get 10% off entire transaction. | | Quantity of qualifying products | % off transaction | Buy 5 units of product X, get 10% off entire transaction. | | Quantity of products from a qualifying category | % off transaction | Buy 5 products from category Y, get 10% off entire transaction. | | None | % off transaction | Get 10% off entire transaction. | | Amount of qualifying products | $ off transaction | Buy $100 of product X, get $10 off entire transaction. | | Amount of products from a qualifying category | $ off transaction | Buy $100 of products from category Y, get $10 off entire transaction. | | Amount of any product | $ off transaction | Buy $100 of products from any category, get $10 off entire transaction. | | Quantity of qualifying products | $ off transaction | Buy 5 units of product X, get $50 off entire transaction. | | Quantity of products from a qualifying category | $ off transaction | Buy 5 products from category Y, get $50 off entire transaction. | | None | $ off transaction | Get $20 off entire transaction. | | Amount of total order | % off transaction | Get 10% off transactions for orders greater than $100. | | Amount of total order | $ off transaction | Get 100$ off transactions for orders greater than $1,000. | #### See Also - [Promotion Combinations](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_combination_intro.htm&release=264.0.0&type=5 "There are hundreds of ways to combine promotion levels, types, and qualifiers to craft the perfect promotion for your store’s needs.") # Order Reconciliation Order Reconciliation in Point of Sale provides real time key sales audit metrics within the Sales Audit Dashboard, acting as a central hub for delving into specific reports. ## The Sales Audit Dashboard To Access Point of Sale's select **Sales Audit**. Users can configure the dashboard's date range, choosing from preset options like yesterday, the last seven days, the current month, last month, or year-to-date (YTD). The default date range will display data up to the current day. A custom date range can also be applied.![The Sales Audit Dashboard](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_settings_sales_audit.png) ## Sales Audit Widgets Sales Audit Dashboard provides real time key sales audit metrics within Point of Sale. It acts as a central hub for users to delve into specific reports. This includes a snapshot overview of your sales and orders, allowing you to drill down into details and highlight discrepancies that require further analysis. The dashboard exclusively focuses on Point of Sale orders, excluding ecommerce orders. ## Overall Sales This section displays the overall metrics of a business. It includes metrics such as total sales orders, total refund orders, gross revenue, net revenue, sales after discounts, and net sales. For details on how these metrics are calculated, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_sales_reporting_glossary.htm&release=264.0.0&type=5 "To understand sales data, use this glossary of terms commonly seen in sales and app reports in Point of Sale.").![The Overall Sales Window](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_settings_overall_sales.png) ## Payment Tender Recon This section displays the number of orders with mismatched sales reconciliation and the total dollar amount of these discrepancies. It highlights discrepancies where the value of an order doesn't match the value of collected tenders. For example, if only $69 was collected for a sale of $70 in merchandise, a mismatch shows up. You can drill down into specific orders and mismatches, comparing merchandise totals against tender totals. The link on this widget will direct you to the [Tender Reconciliation Report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_tender_reconciliation_report.htm&release=264.0.0&type=5 "Identify and investigate these mismatches by accessing detailed information, including transaction details, payment information, and authorization amounts related to each order.") that drills down into specific orders that have mismatched collections. ![The Payment Teder Recon Window](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_payment_tender_recon.png) ## Payment Recon This metric matches collected tenders against those requested from payment gateways. It indicates the number of orders with payment reconciliation issues and the total dollar value of these discrepancies. You can access detailed analysis through the [Payment Reconciliation report](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_payment_reconciliation_report.htm&release=264.0.0&type=5 "Confirm the accuracy of financial data and identify inconsistencies among the Retail Cloud order amount, the amount requested to the payment gateway, and the amount collected by a processor.").![The Payment Recon Window](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_payment_recon.png) ## Failed Orders This section represents failed orders requiring manual review from the merchant. It shows the number of failed orders requiring manual review and provides a link to the corresponding report for failed orders. Orders marked for manual review can require manual processing for refunds or collections with customers. ![The Failed Orders Window](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_failed_orders.png) # Order Reexport Point of Sale's order reexport feature allows merchants to resend failed order exports to their ERP systems via webhook integration. Point of Sale's supports multiple-order export mediums. One of the ways to export the orders to the merchant's ERP (or backend) system is through a webhook integration. As part of this webhook integration, the merchant's ERP endpoint is set up in the Point of Sale CMS. The Point of Sale system exports the orders to the merchant's ERP using this endpoint. Any failure during this export is recorded in the CMS and the order corresponding to the failed exports is allowed to reexport from the CMS. This document describes this reexport mechanism in detail. ## Prerequisites - Modern POS App build: 6. x.x and later. - Platform Support: iPhone & iPad - Integration Prerequisites: The order export medium is a webhook. If the next two attributes are configured in the CMS, then the orders are exported using webhook integration. Both of these attributes are available in the CMS under Store Management > Store Settings > Modules > OMS > Order Export: - Real Time Order Export Endpoint - Real Time Returns Export Endpoint ## Order Export Flow - Webhook: As an order is placed, it'll be exported in real time if the webhook endpoint is configured. Failed webhooks can be reposted in CMS by going to Reporting and Analytics > Repost Failed Webhook Events. - Postprocess: Point of Sale has a postprocess module that handles the real-time order export to the external system based on the endpoint configuration. - Successful Export: After the order is posted to the configured endpoint, the postprocess module awaits a successful response. If the response (HTTP response code) provided by the configured endpoint is between 200 and 299, the export is considered successful. - Failed Export: The order export can encounter failure due to any of these reasons: - Point of Sale's postprocess module itself encounters an error while processing the export. - Merchant's endpoints fail to process the received order and hence provide a response with HTTP code 3xx, 4xx & 5xx. - Network failure. - Automatic Retry: The postprocess module supports automatic retry where the order that encounters failure gets reexported. There are max 3 automatic retry attempts on failure, after every 1 minute. - Manual Retry (CMS): - If the order doesn't get reexported even after the automatic retry attempts, it is then listed in the CMS, where the user can start the manual reexport. This is the same process as explained previously. If the reexport fails again, the automatic retry is started and any failure after that brings the order back to the CMS. - All such failed exports that need manual intervention are available in CMS under Alerts (**CMS > Alerts > Order Export Failures**) - The sequence diagram for this export process:![The Order Export Process Diagram](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_settings_order_export_flow.png) ## CMS - Configuration and Setup - The orders that need manual reexport are listed in CMS under Alerts (**CMS > Alerts > Order Export Failures**) - The same screen also allows users to reexport all or a few of the selected orders. ## Known Issues & Restrictions - It supports the reexports of orders for which the initial export failed. It doesn't have the capability to reexport an order which got successfully exported. - It supports reexports for orders that are exported to the merchant's endpoint using webhook integration. - The export process also supports the automatic retry if the webhook endpoint gives back a response with HTTP status codes 3xx,4xx & 5xx. Merchant's webhook endpoint must handle duplicate posting due to auto-retry mainly because of 5xx. For example HTTP status code 504. - The max automatic retry attempts are three, and it isn't configurable. # Order Self-Service Create a customer portal using the SFRA Order Management Self-Service plug-in to let customers manage their orders. Customers can track orders, view order history, and manage cancellations and returns. Order Self-Service supports the RMA return flow, which lets customers return products on their own, but requires that the store validates the return before issuing the refund. # Order Servicing Order servicing lets your customer service representatives (CSR) provide shoppers with order-related services, such as returns, exchanges, and cancellations. Order Management uses flow templates to help automate the these tasks. A Salesforce Admin can copy and customize these templates and then make the process flows available in the Actions & Recommendations section on the Order Summary page. Service agents can then quickly respond to requests for cancellations, reshipments, discounts, exchanges, and returns. Service flows can process orders with to up 2000 products, however the flows can only process up 100 products at one time. - **[Order Management and Service Cloud](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_and_service_cloud.htm&release=264.0.0&type=5)** Use Order Management with Service Cloud to give service agents a single view of order and service history to ensure timely processing of requests. - **[View Order History](https://help.salesforce.com/s/articleView?id=commerce.om_view_order_history.htm&release=264.0.0&type=5)** The order summary captures all transaction and processing activity for an order. - **[Cancel an Order Item](https://help.salesforce.com/s/articleView?id=commerce.om_cancel_order_items.htm&release=264.0.0&type=5)** You can cancel order items that aren’t allocated or fulfilled. - **[Reship an Order Item](https://help.salesforce.com/s/articleView?id=commerce.om_reship_order_items.htm&release=264.0.0&type=5)** Reship missing or lost order items by creating a reship fulfillment order. - **[Discount an Order Item](https://help.salesforce.com/s/articleView?id=commerce.om_discount_order_items.htm&release=264.0.0&type=5)** You can process a discount or price adjustment for one or more order items either before they’re allocated or after they’re fulfilled. - **[Process an Exchange (Simple)](https://help.salesforce.com/s/articleView?id=commerce.om_exchange_order_items.htm&release=264.0.0&type=5)** Run an even exchange whenever a customer needs to exchange their product for a variant of the same product. For example, if a shopper orders a size large blue sweater and then decides that they prefer the same sweater in red, size medium, you can process an exchange. - **[Return an Order Item](https://help.salesforce.com/s/articleView?id=commerce.om_return_order_items_overview.htm&release=264.0.0&type=5)** Digital selling channels give customers many ways to initiate and complete returns for items that they purchased online. Order Management tools help you manage the various return scenarios. - **[Exchanges with RMA Returns Overview](https://help.salesforce.com/s/articleView?id=commerce.om_exchanges_rma_overview.htm&release=264.0.0&type=5)** An exchange with an RMA return provides a more robust exchange experience for customers. Unlike a simple exchange, which only allows for same-cost variant exchanges, an exchange with RMA processes the return of the previous product before letting a customer service representative (CSR) order a new item, enter a new delivery address, and select a shipping method, all on behalf of the user. Finally, the CSR can process any refund or additional funds needed from the customer. - **[Order on Behalf Of Overview](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_overview_oobo.htm&release=264.0.0&type=5)** Use Order on Behalf Of (OOBO) or Order Entry to let customer service representatives (CSRs) place orders directly on behalf of a customer. This feature works with Order Management, B2B Commerce, D2C Commerce, and B2C Commerce. - **[Store Fulfillment Application Overview](https://help.salesforce.com/s/articleView?id=commerce.om_store_fulfillment_app.htm&release=264.0.0&type=5)** The Store Fulfillment app gives you quick and easy access to each step of the fulfillment process: selecting a store, finding new orders for the store, creating a ticket for one or more orders, picking or rejecting items, and packing them up or shipping them out. # Order Status No Longer Changes to Open Viewing an order in Business Manager no longer changes the order status to Open. Instead, the order retains its status. If needed, you can manually change the status to Open. Previously, viewing an order automatically changed the order status to Open. EDIT: This feature has been rolled back and no longer impacts any customers. Why: This functionality lets you export orders without filtering on multiple statuses. # Order Statuses Orders made with the POS app have a variety of statuses that can effectively track your order in the checkout process. Order statuses can also help you decide what actions need to be taken for a particular order, such as whether the order needs to be picked up or ship to home. This is a comprehensive table that lists all the available order statuses in the POS app along with their alternative display names when using the order history filter. The table also includes their applicancy in terms of Buy Online Pickup In Store (BOPIS) and Buy Online Fulfill In Store (BOFIS) orders as well as a scenario typically associated with the order status. | Order Status | Display Name in Order History Filter | BOPIS/BOFIS Deep Link | Description | | --- | --- | --- | --- | | COMPLETED | Completed | Not Applicable | Successful sale transaction | | CANCELED | Cancelled | Cancelled / Damaged Store Orders | Canceled BOPIS/BOFIS orders | | CANCELLED\_WITH\_REFUND | Cancelled With Refund | Cancelled / Damaged Store Orders | Canceled BOPIS/BOFIS orders | | CREATED | Created | Store Pickup Order to be Packed & Store Fulfill Orders to Pack | New BOPIS/BOFIS order | | DAMAGED | Damaged | Cancelled / Damaged Store Orders | Canceled BOPIS/BOFIS orders due to damage | | DELIVERED | Delivered | Store Fulfilled Order History | Orders shipped by stores and delivered to the customer | | EXCHANGED | Exchanged | Not Applicable | Successful transaction that exchanges all items | | FAILED | Failed | Not Applicable | Failed sale transaction | | FULFILLED | Fulfilled | Store Picked Up Order History | BOPIS order that's been packed and picked up | | NEW | New | Store Pickup Order to be Packed & Store Fulfill Orders to Pack | New BOPIS/BOFIS order | | PACK | Pack | Store Ready to Pickup Order | Store pickup orders already packed and ready for customer pickup | | PARTIALLY\_EXCHANGED | Partially Exchanged | Not Applicable | Successful transaction that exchanges partial items | | PARTIALLY\_REFUNDED | Partially Returned | Not Applicable | Successful transaction that returns or exchanges partial items | | PARTIALLY\_SHIPPED | Partially Shipped | Store Fulfill Orders Ready to Ship | Orders packed and partially shipped to the customer | | PENDING | Pending | Not Applicable | Sale transaction awaiting payment confirmation (e.g., remote pay by link) | | PENDING\_ORDER | Pending Order | Not Applicable | Sale transaction awaiting payment confirmation (e.g., remote pay by link) | | PICKED | Picked | Store Picked Up Order History | Store pickup orders picked by the customer | | PROCESSING | Processing | Not Applicable | Sale transaction currently being processed | | READY | Ready | Store Pickup Order to be Packed & Store Fulfill Orders to Pack | BOPIS/BOFIS orders ready for the store to fulfill | | RECREATED | Recreated | Not Applicable | Recreated sale transaction | | RETURNED | Returned | Not Applicable | Successful transaction that returns or exchanges all items with a refund to the customer | | REWARD | Reward | Not Applicable | Sale transaction with redeemed rewards | | SHIPPED | Shipped | Store Fulfill Orders Ready to Ship | Orders packed and shipped to the customer | | UNAVAILABLE | Unavailable | Not Applicable | Failed sale transaction | | UNKNOWN | Unknown | Not Applicable | Failed sale transaction | # Order Summary An order summary pulls together all order details into a single, consolidated view. It can help you manage and service orders before, during, and after fulfillment. - **[Order Summary and the Order Lifecycle](https://help.salesforce.com/s/articleView?id=commerce.om_order_summary_order_lifecycle.htm&release=264.0.0&type=5)** The order summary consolidates all order information—from order capture through fulfillment, payment collection, shipping, delivery, and service—and displays it in a single view. Use the order summary to manage the entire order lifecycle. - **[View Order Summary Information](https://help.salesforce.com/s/articleView?id=commerce.om_view_order_summary_information.htm&release=264.0.0&type=5)** The Order Summary shows historical activity and real-time details for an order. - **[Manually Import a Pending Order Summary](https://help.salesforce.com/s/articleView?id=commerce.om_order_summary_manual_import.htm&release=264.0.0&type=5)** When the high-scale system is enabled, orders usually flow quickly from the Zero Object Service (ZOS) into Order Management. But when order volume is high, such as during a flash sale, orders can spend time waiting in ZOS. While an order is in ZOS, it’s visible in Order Management as a pending order summary. If you want to service an order that’s still in ZOS, you can manually import the pending order summary. # Order Summary and the Order Lifecycle The order summary consolidates all order information—from order capture through fulfillment, payment collection, shipping, delivery, and service—and displays it in a single view. Use the order summary to manage the entire order lifecycle. ### Required Editions
View supported editions.
When a shopper or buyer submits an order from your ecommerce storefront, the details of the transaction are transmitted to Order Management and two data objects are created: an order and an order summary. The order, which represents the initial transaction, becomes the foundation of the order summary. At this point, all information in the order and order summary match, the order is locked, and all subsequent order activity is tracked using the order summary. Order Management also creates other order objects to represent specific elements, such as products, payments, and shipping. In addition, substantive changes to an order, such as a cancellation or return, generate a change order object. As an order moves through the order lifecycle stages, the order summary is updated so that you always have a current view of an order’s status. From the order summary, you can see all information about the order, including: - Who placed the order and when it was submitted - What was ordered (products, quantities, and prices) - What items have been allocated - What items have been fulfilled - What items can be canceled or returned - What items have been canceled - What items have been returned - Where and how items were shipped - How much money has been authorized, captured, and invoiced - How much money has been refunded on returned and canceled items - All activity on the order since it was submitted - Active process exception alerts ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note An order summary can hold up to 2000 products, however the Order Management service flows can process up to 100 products only. For example, a merchant wants to return 135 product from an order containing 250 products. The merchant runs the Return flow twice, because the maximum number of products that can be serviced is 100. You can access related records from links on the Order Summary page in the Order Management Console.
Transaction Order Attributes Order Summary Attributes
  • Represents the shopper’s or buyer’s intent, including order creation (order) and changes (change order)
  • Associated with one order summary
  • Doesn’t change after it’s activated
  • Can be used to report bookings
  • Provides a single view of the current state of an order, including fulfillment status, order changes, cancellations, and returns
  • Can’t exist without the original transaction order
  • Is read-only for financial order data
#### See Also - [Order Management Objects](https://help.salesforce.com/s/articleView?id=commerce.om_order_objects.htm&release=264.0.0&type=5 "Order Management objects, together with existing objects, represent the elements of an order as the order progresses through the order lifecycle. The process for creating records in Order Management depends on your storefront. For example, if you use Salesforce B2C Commerce, the B2C Commerce Integration imports order data into Order Management. The terms “item” and “product” are used interchangeably throughout Order Management. Usually, technical areas like APIs and flow actions use “item,” while the user interface uses “product.”") - [Order Management Lifecycle](https://help.salesforce.com/s/articleView?id=commerce.om_order_lifecycle_management.htm&release=264.0.0&type=5 "As an order moves through the order lifecycle, it progresses through four stages: capture, fulfillment, delivery, and post fulfillment. These stages determine which services you can perform on an order. Managed and unmanaged orders are processed differently during the order lifecycle.") # Order Summary Fields The Order Summary object represents the current properties and state of an order, including fulfillment information. It’s associated with one order that represents the original order. The order summary’s values are the sums of the values in the original order and subsequent orders representing changes, such as returns or cancellations. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Summary object.
Field Label Description
Account The account or person account associated with the order summary. It represents the shopper in the storefront.
Active Process Exception Count The total number of active process exceptions on the order summary.
Billing Address The billing address associated with the order summary.
Billing Contact The ID of the contact associated with the order summary. It represents the shopper in the storefront when not using person accounts.
Billing Email Address The email address of the billing address.
Billing Phone Number The phone number of the billing address.
Business Model

The business model of the order summary.

Possible values are:

  • B2B
  • B2C
Description The description of the order summary.
Order Adjustments

The total amount of distributed adjustments applied to order product summaries belonging to the order summary.

Order Adjustments = Order Product Adjustments + Order Shipping Adjustments

Order Adjustments Tax The tax on the order adjustments.
Order Adjustments with Tax

The total amount of distributed adjustments, including tax, applied to order product summaries belonging to the order summary.

Order Adjustments with Tax = Order Adjustments + Order Adjustment Tax

Order Lifecycle Type Indicates whether the order summary is managed by Salesforce Order Management (MANAGED) or by an external system (UNMANAGED).
Order Product Adjustments

The total amount, not including tax, of all order-level price adjustments applied to order product summaries of type Order Product belonging to the order summary.

This value includes order product adjustment line item summaries that belong to order adjustment group summaries of type Header.

Order Product Adjustments Tax The tax on the order product adjustments.
Order Product Adjustments with Tax

The total amount, including tax, of all order-level price adjustments applied to order product summaries of type Order Product belonging to the order summary.

Order Product Adjustments with Tax = Order Product Adjustments + Order Product Adjustments Tax

Order Product Line Count The total number of unique products ordered on the order summary.
Order Shipping Adjustments

The total amount, not including tax, of all order-level price adjustments applied to order product summaries of type Delivery Charge belonging to the order summary.

This value includes order product adjustment line item summaries that belong to order adjustment group summaries of type Header.

Order Shipping Adjustments Tax The tax on the order shipping adjustments.
Order Shipping Adjustments with Tax

The total amount, including tax, of all order-level price adjustments applied to order product summaries of type Delivery Charge belonging to the order summary.

Order Shipping Adjustments with Tax = Order Shipping Adjustments + Order Shipping Adjustments Tax

This value includes order product adjustment line item summaries that belong to order adjustment group summaries of type Header.

Order Summary Number The auto-assigned number of the order summary.
Ordered Date The date of the original order associated with the order summary.
Original Order The original order associated with the order summary
Owner Name The user who owns the order summary.
PO Date The date of the purchase order date associated with the order summary.
PO Owner The purchase order number associated with the original order.
Pretax Subtotal

The amount, including adjustments but not tax, of all order product summaries belonging to the order summary.

Pretax Subtotal = Subtotal + Shipping

Price Book The price book associated with the order summary.
Routing Attempts The number of attempts that have been made to route the order summary to inventory locations.
Sales Channel The sales channel associated with the order summary.
Shipping The total amount, including product-level adjustments but not order-level adjustments or tax, of all order product summaries of type Delivery Charge belonging to the order summary.
Shipping Tax The tax on the shipping amount.
Shipping with Tax

The total amount, including adjustment and tax, of all order product summaries of type Delivery Charge belonging to the order summary.

Shipping with Tax = Shipping + Shipping Tax

Status The status of the order summary, determined by the quantity fields and status criteria.
Subtotal The amount, including product-level adjustments but not order-level adjustments or tax, of all order product summaries of type Order Product belonging to the order summary.
Subtotal Tax The tax on the subtotal.
Subtotal with Tax

The amount, including adjustment and tax, of all order product summaries of type Order Product belonging to the order summary.

Subtotal with Tax = Subtotal + Subtotal Tax

Suspended Indicates whether the order summary is suspended. The default is false.
Tax The sum of all tax lines on the order summary.
Tax Locale Type

Indicates the method used to handle tax on the original order associated with the order summary.

Possible values are:

  • Gross—Displays most prices and taxes as combined values. Usually applies to taxes like value-added tax (VAT).
  • Net—Displays most prices and taxes as separate values. Usually applies to taxes like sales tax.
Total The total amount, including adjustments and tax, of the order summary.
#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Summary Routing Schedule Fields The Order Summary Routing Schedule object represents an attempt to route an order summary to one or more inventory locations for fulfillment. You can use it to schedule future attempts and to record completed attempts. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_note.png) Note Depending on your page layout and field-level security settings, some fields aren’t visible or editable. This table lists the fields on the Order Summary Routing Schedule object.
Field Label Description
Created By The user who created the order summary routing schedule record.
Created Date The date when the order summary routing schedule record was created.
Last Modified By The user who last changed the order summary routing schedule record.
Last Modified Date The date when the order summary routing schedule record was last changed.
Name The name of the order summary routing schedule.
Order Summary The order summary associated with the order summary routing schedule.
Owner Name The user who owns the order summary routing schedule.
Reason The reason for the routing attempt.
Status

Indicates whether the routing attempt has already run or is scheduled to run.

Possible values are:

  • Abandoned
  • Completed
  • Scheduled

If the status is Abandoned or Completed, you can’t change this value.

#### See Also - [Order Management Objects and Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_management_objects_and_fields.htm&release=264.0.0&type=5 "Learn about the standard objects and fields available for reporting in Order Management.") # Order Transaction Objects Learn about the Order Transaction objects and fields available for reporting in Order Management. - **[Order Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_fields.htm&release=264.0.0&type=5)** The Order object represents the original order or a change to an order, such as a return or cancellation. It’s associated with one order summary, which represents the current state of an order. The order record values don’t usually change. In Order Management, you usually interact with order summaries instead of orders. - **[Order Adjustment Group Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_adjustment_group_fields.htm&release=264.0.0&type=5)** The Order Adjustment Group object defines a related set of price adjustments to order products on one order. In Order Management, you usually interact with order adjustment group summaries instead of order adjustment groups. - **[Order Delivery Group Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_delivery_group_fields.htm&release=264.0.0&type=5)** The Order Delivery Group object defines a group of order products belonging to one order to be fulfilled using the same delivery method and delivered to the same recipient. In Order Management, you usually interact with order delivery group summaries instead of order delivery groups. - **[Order Delivery Method Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_delivery_method_fields.htm&release=264.0.0&type=5)** The Order Delivery Method object is used together with the Product object to represent a delivery method. The product record is added to an order to represent a charge for that delivery method. - **[Order Product Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_product_fields.htm&release=264.0.0&type=5)** The Order Product object represents an original product on an order. It can also represent a charge, such as a delivery charge. With an order product summary change, it can represent a change to a product on an order, such as a return or cancellation. In Order Management, you usually interact with order product summaries instead of order products. - **[Order Product Adjustment Line Item Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_product_adjustment_line_item_fields.htm&release=264.0.0&type=5)** The Order Product Adjustment Line Item object represents an adjustment to the price of an order product, usually a discount. In Order Management, you usually interact with order product adjustment summaries instead of order product adjustments. - **[Order Product Tax Line Item Fields](https://help.salesforce.com/s/articleView?id=commerce.om_order_product_tax_line_item_fields.htm&release=264.0.0&type=5)** The Order Product Tax Line Item object represents the tax on an order product. In Order Management, you usually interact with order product tax summaries instead of order product taxes. - **[Sales Channel Fields](https://help.salesforce.com/s/articleView?id=commerce.om_sales_channel_fields.htm&release=264.0.0&type=5)** The Sales Channel object represents an order source, such as a web storefront, physical store, marketplace, or mobile app. If you use Salesforce B2C Commerce, we recommend creating a sales channel record for each site in your B2C Commerce implementation. # Order-Level Promotion Examples To create different types of promotions for a customer’s total order, use these discount and qualifier settings. You don’t need to specify a discount target for an order-level promotion. ### Required Editions
View supported editions.
[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)
Customer Buys Customer Receives Discount Target Discount Adjustment Type Qualifier Qualifier Rule Example
Anything Percent off entire transaction — Percentage Discount — — Receive 10% off the order.
Currency amount off entire transaction — Fixed Amount Off Transaction — — Receive $10 off the order.
X worth of any product Percent off entire transaction — Percentage Discount — Minimum Amount X Spend $50 to receive 10% off the order
Currency amount off entire transaction — Fixed Amount Off Transaction — Minimum Amount X Spend $50 to receive $10 off the order.
X units of Product A Percent off entire transaction — Percentage Discount Product A Minimum Quantity X Buy 5 bags of Alpine Medium Roast coffee beans to receive 10% off the order.
Currency amount off entire transaction — Fixed Amount Off Transaction Product A Minimum Quantity X Buy 5 bags of Alpine Medium Roast coffee beans to receive $10 off the order.
X worth of Product A Percent off entire transaction — Percentage Discount Product A Minimum Amount X Buy $50 of Alpine Medium Roast coffee beans to receive 10% off the order.
Currency amount off entire transaction — Fixed Amount Off Transaction Product A Minimum Amount X Buy $50 of Alpine Medium Roast coffee beans to receive $10 off the order.
X products from Category A Percent off entire transaction — Percentage Discount Category A Minimum Quantity X Buy 5 products from the Imports category to receive 10% off the order.
Currency amount off entire transaction — Fixed Amount Off Transaction Category A Minimum Quantity X Buy 5 products from the Imports category to receive $10 off the order.
X worth of products from Category A Percent off entire transaction — Percentage Discount Category A Minimum Amount X Buy $50 of products from the Imports category to receive 10% off the order.
Currency amount off entire transaction — Fixed Amount Off Transaction Category A Minimum Amount X Buy $50 of products from the Imports category to receive $10 off the order.
#### See Also - [Commerce Promotions](https://help.salesforce.com/s/articleView?id=commerce.comm_promotions_create_manage.htm&release=264.0.0&type=5 "Enhance your B2B store by adding customized promotions. Create segments, discounts, qualifiers, and coupons for the right customers to receive the right deals. Highlight promotions for eligible customers on store pages and during checkout to boost engagement and sales.") # Orders Review the new B2C Commerce Orders feature in the 20.4 release - **[Order Status No Longer Changes to Open](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_w720943_order_status_doesnt_change_to_open2_lb.htm&release=264.0.0&type=5)** Viewing an order in Business Manager no longer changes the order status to Open. Instead, the order retains its status. If needed, you can manually change the status to Open. Previously, viewing an order automatically changed the order status to Open. EDIT: This feature has been rolled back and no longer impacts any customers. # Orders Review the B2C Commerce Orders change in the 20.5 release - **[Order Post-Processing APIs No Longer Available](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_5_w7497632_gillian_restriction_as.htm&release=264.0.0&type=5)** With the release of Salesforce Order Management, you can no longer enable the order post-processing APIs, including the Gillian package, in the B2C Commerce platform. Customers who are currently using order post-processing can continue to use it until further notice. This change does not affect Commerce Cloud Order Management. If these APIs are already enabled on your production instance and you need access to these APIs on your sandboxes, please contact Salesforce Support. If you need access to these APIs on SIGs, contact Salesforce Support. # Orders Review the B2C Commerce Orders change in the 20.6 release - **[Order Export Element Sizes Increased](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_w7389966_new_order_export_as.htm&release=264.0.0&type=5)** Version 20.6 of the order.xsd export schema increases the maximum length of product line item product names, address suites, and applied discount price book IDs. # Organize Page Designer Pages in Folders You can assign Page Designer pages to Business Manager content library folders. Folders keep pages organized and easy to find. Developers can write custom code that implements page navigation based on folders. For example, custom code can add breadcrumbs to the tops of pages or accordian-style page navigation based on folders. Developers can also write custom code that specifies that when a shopper performs a search, the shopper sees results organized by folder. How: If you copy a page, the copy is assigned to the same folder as the original page. You can configure SEO URLs for Page Designer pages in content folders, like for other content assets. If you have many pages to assign to folders, it can be more efficient to do a bulk upload and page assignment. #### See Also - [Organize Page Designer Pages in Folders](https://documentation.b2c.commercecloud.salesforce.com/DOC3/topic/com.demandware.dochelp/content/b2c_commerce/topics/page_designer/b2c_page_designer_folders.html) - [Create Catalog and Content URLs](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/search_engine_optimization/b2c_creating_catalog_content_urls.html) - [Create a Library Folder](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/content/b2c_commerce/topics/content/b2c_creating_a_library_folder.html) - [Bulk Upload Pages to Folders](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000OnDF/biB3JrJ8h_NcEGdlc.DbAfyuMStNFotXww3rZQWPtso) # Origin Shielding Phase 3 To protect from bots and other malicious attacks on your environment, demandware.net lockdown (Origin Shielding Phase 3) blocks all traffic that doesn’t originate from the Commerce Cloud eCDN from accessing Commerce Cloud. All calls accessing PROD and DEV instances that aren’t internal to the Commerce Cloud ecosystem are rejected. When: Phase 3 started August 15, 2022 and is scheduled to finish October 15, 2022. Why: Demandware.net lockdown (Origin Shielding Phase II) protects you from bots and other malicious attacks on their environment. Improves the availability of Business Manager by ensuring all traffic is sent via the eCDN frontdoor. How: To eliminate the impact of this change, ensure your implementation is modified as outline. See, [Origin Shielding Phase3.](https://help.salesforce.com/s/articleView?id=000364472&type=1&language=en_US) # Orphaned Payments in Your B2B Commerce Store Orphan Payments Sweeper automatically reverses or refunds payments that were authorized or captured at checkout but never tied to a completed order. The sweeper prevents funds from remaining stranded when a checkout is interrupted or abandoned. For abandoned authorized payments, the sweeper reverses the authorization or refunds the captured amount. The number of days required for the reversal or refund depends on the payment method. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-comm-264-0-0-production-enus/d863e308-482a-4dfa-8d20-2a94737d394a/images/icon_note.png) Note To turn on the Orphan Payments Sweeper feature, contact Salesforce Customer Support. The sweeper supports only native Salesforce Payments. We don’t recommend the sweeper for stores with custom checkout logic, custom payment integrations, or extensions built on Salesforce Checkout. After it’s enabled, the sweeper runs on an automatic recurring schedule that isn't configurable. The sweeper skips payments tied to completed orders, payments that have failed, voided, or fully refunded, or payments processed through third-party gateways or non-Salesforce Payments integrations. The sweeper also doesn’t act on checkouts that are actively being finalized. We recommend you test the sweeper thoroughly in a test org before turning it on in production. Validate against the payment methods your store offers. #### See Also - [Release Resources and Reverse Payments for Failed B2B Commerce Orders](https://help.salesforce.com/s/articleView?id=commerce.comm_placeorderinteractions.htm&release=264.0.0&type=5 "You can specify that when an order fails in your B2B store, reserved resources, including inventory reservations and coupon redemptions, are automatically released. You can also configure your store to automatically reverse payments associated with the failed order.") # Other Country-Specific Information Print control transactions and zero transactions from the Point of Sale (POS) app. In Austria, store teams can print a control transaction or zero transaction on demand. Auditors may request this to verify that the POS is set up for fiscal compliance. A Sample Zero Transaction Print: ![A Zero Transaction Receipt](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_cms_fiscalization_zero_transaction_receipt.png) # Other Country-Specific Information - Portugal To comply with Portugal's VAT requirements, merchants accepting gift cards must include a line item with 0% VAT in their VAT file in Point of Sale. In Portugal, if a merchant accepts gift cards as a form of payment, the VAT file must include a line item with 0% VAT. In the tax name column, use 'Exempt-GC,' and in the tax description, use 'M99-Não sujeito; não tributado (Ou similar).' For further details, please consult the sample VAT file attached at the end of this article. ## Not in Scope in Portugal - Exchanges - eReceipts for Portugal ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png) Example Example file: [Portugal VAT File](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/SamplePortugalVATfilewith0percentagetaxline.csv) # Other Deep Links Explore a detailed list of Point of Sale other deep links, each with a clear description and supported context. Links include features for advanced carts, application management, configuration options, and user interface elements. Use these links to help users quickly navigate to specific features and functionality, enhancing their experience and streamlining retail operations.
Deep Link Description Supported Context
Advanced Cart Options Layout

Links to an Advanced Cart Layout

Note
Note You must also configure the layout setting called AdvCartOptionsLayoutID in your app config. This will only work for app versions >= 7.14.5.
"Hamburger Menu, Layouts, Tabs"
Application Ratings Displays the app ratings screen "Hamburger Menu, Layouts"
Back Takes the user back to the previous screen Layouts
Create Quote From Cart Creates a quote directly from the cart instead of Suspended Carts Layouts
Fiscal Zero Receipt Prints a receipt for auditor verification "Hamburger Menu, Layouts"
Home Takes the user to the app home page Layouts
Latency Test

Displays the total and server latency of the product search API response in milliseconds

Note
Note Available only for Salesforce Customer Support and for app builds 9.5.1 or above
"Hamburger Menu, Layouts"
Licenses Displays the licenses screen "Hamburger Menu, Layouts"
Open 3rd Party App Opens a third-party app "Hamburger Menu, Layouts"
Refresh App Config Reloads the current app config. This will refresh your current app state with any updates made to the app config settings, and the layouts associated to that app config in the CMS. "Layouts, Hamburger Menu"
Register Activation Information Displays the register's activation information screen "Layouts, Hamburger Menu"
Refresh Layout Refreshes the current layout Layouts
Salesforce DMP Consent Requests consent for the collection of Salesforce DMP data "Layouts, Hamburger Menu"
Shopping Cart Displays the shopping cart "Layouts, Hamburger Menu, Tab"
Store Search

Displays the store search screen. Supports one selection Search Type with one of the following three options:

  • Stores Near Place
  • Stores Near Location
  • Stores Near Lat / Long
"Layouts, Hamburger Menu, Notification, Tab"
Switch App Config Loads an app config from either staging or production by the token "Layouts, Hamburger Menu"
# Outlet Store Support in the POS app Create and manage outlet stores in the Point of Sale (POS) app, providing customers with lower prices and everyday bargains. There are two ways of creating a store in Point of Sale CMS, manually and through a feed. To create many stores in one sitting, the feed method is recommended. For more information, refer to this [article](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_store_management_stores.htm&release=264.0.0&type=5 "Upload store details to the Point of Sale backend."). 1. In Point of Sale CMS, go to **Store Management > Stores**. 2. Select **Create** in the upper right of the screen. 3. Under **Location Type**, select **Outlet**. 4. Fill out the rest of the fields by referring to [Store Creation](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_store_creation.htm&release=264.0.0&type=5 "Create stores and edit store details in Point of Sale CMS"). ![Editing Store Information for an Outlet Store in Point of Sale CMS.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_store_creation.png) ## Outlet Store Features Support View all features capable of supporting Outlet Stores in the Point of Sale (POS) app. ### Inventory Management Store to Store (STS), Corporate, and Return to Vendor (RTV) are all supported inventory transfers for outlet stores. For STS, the receiving store is any store type, meaning a store can transfer inventory to an outlet. Similarly, a corporate transfer can occur from a regular store to an outlet and vice versa. Offline Support: no For more information, refer to [STS](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_store_to_store_initiated_transfers.htm&release=264.0.0&type=5 "Merchants can create Corporate Transfers (CTS) in the Point of Sale CMS automatically by uploading a CSV file with inventory transfer information. This action will initiate a store-to-store transfer. After the file is uploaded, it'll be sent to the store's POS app. Store associates can then start packing the products for the store-to-store transfer."), [Corporate](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_corporate_transfers.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise between stores, allowing merchants to align with regional demands and preferences."), and [RTV](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_inventory_rtv_transfers.htm&release=264.0.0&type=5 "Facilitate the movement of merchandise from a store back to either a vendor or a warehouse."). ### Promotions Outlet-specific promotions are available and can be set in Point of Sale CMS by configuring selected channels. ![The Create Promotions screen in Point of Sale CMS, where you can select that it's an outlet store promotion.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_outlet_promotions.png) Offline Support: yes For more information, refer to [Creating Promotions](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_create_promotions.htm&release=264.0.0&type=5 "Learn how to configure promotions in Point of Sale CMS, including basic information, promotion configuration, and promotion codes."). ### Returns The return flow for outlets can be customized in CMS with **Enable Cross Channel**. If this is turned on, items purchased at an outlet store can be returned at a regular store and vice versa. However, if this flag is turned off, items purchased at an outlet can only be returned at other outlet stores. ![The Edit Online Policy screen in Point of Sale CMS, where you turn on Enable Cross Channel.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_pos_operations_enable_cross_channel.png) Offline Support: yes \* \* In offline mode, outlet store orders can be returned to regular stores and vice versa, regardless of **Enable Cross Channel**. For more information, refer to [Returns Policy Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_settings_returns_policy_configuration.htm&release=264.0.0&type=5 "The Point of Sale (POS) app lets store associates perform returns on purchased items based on configured policies."). ### Omnichannel Outlet stores are supported for the Omni fulfillment type, **Pickup From Nearby Store**. For example, items purchased at an outlet store can be picked up from a regular store and vice versa. Offline Support: no For more information, refer to [Omni Flows](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_modules_omnichannel_v2_overview.htm&release=264.0.0&type=5 "Integrate shopping experiences across channels with Point of Sale's Omnichannel."). ### Reporting An in-depth review of ‌outlet stores sales and order information is available in the CMS Report Builder. The report will include the GMV, number of orders, and AOV. Offline Support: N/A For more information, refer to [Report Builder](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_reports_ej_report_builder.htm&release=264.0.0&type=5 "Generate order reports and analyze sales data by time. Generate reports such as store, store associates, and products sold to gain insights into your business performance."). # Pack a Fulfillment Order After an order is picked, it shows in the Ready to Pack tab. From there, you can pack the item quantities, reject any that couldn’t be fulfilled, print your shipping label, and ship the order. ### Required Editions
View supported editions.
1. Open the Store Fulfillment app, and select a location, if necessary. 2. Select **Ready to Pack**. 3. For the order that you’re packing, click **Start Packing**. If you refresh the page or return to the orders page, your progress on the current order is lost. 4. Increase Quantity in Shipment for each quantity that you add as you pack the order. Item quantity can be limited by rejections that occurred during picking. If multiple orders required an item but only a partial quantity of that item was picked, the oldest orders are prioritized. If only part of the total quantity is picked, some or all of an item’s quantity is rejected in the newer order. 5. To add item quantity to separate shipments, either click **Add New Shipment** or select another shipment. 6. To reject an item or item quantity, leave the rejected quantity out of the order. The option to add rejection reasons appears when you click Finish Packing. 7. After adding all available item quantities to shipments, click **Finish Packing**. 8. If you’ve left any item quantity unpacked, select a rejection reason. Rejection reasons are optional. After you’ve finished selecting rejection reasons, click **Next**. 9. Confirm that your packing is complete. 10. To print a shipping label, click **Print Shipping Labels**. 11. Click **Ship Order**. #### See Also - [Store Fulfillment Application Overview](https://help.salesforce.com/s/articleView?id=commerce.om_store_fulfillment_app.htm&release=264.0.0&type=5 "The Store Fulfillment app gives you quick and easy access to each step of the fulfillment process: selecting a store, finding new orders for the store, creating a ticket for one or more orders, picking or rejecting items, and packing them up or shipping them out.") # Page Designer Review the new B2C Commerce Page Designer features and enhancements in the 20.1 release. - **[Target a Page or Component for a Campaign or Promotion](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_w6879177_pd_camp_promo_la.htm&release=264.0.0&type=5)** You can now assign the targeting rules of a campaign or promotion that’s already set up in Business Manager to a Page Designer page. The targeting rules for the campaign or promotion override Page Designer targeting capabilities. - **[Create a New Page by Copying an Existing Page](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_1_w6879161_pd_page_copy_la.htm&release=264.0.0&type=5)** You can now make a copy of a Page Designer page and then edit that page to create one. The copy has all the same settings and content as the original except for the Page ID. Copying a page can improve your efficiency since you don’t have to start from scratch every time you create a page. - **[Page Designer Code No Longer Tries to Use Global Variable $A](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_011_w6898268_pd_variable_la.htm&release=264.0.0&type=5)** The code that Page Designer injects into the storefront no longer tries to use the global variable `$A`. Previously, if the `$A` variable existed, the Page Designer code assumed it was part of the Aura UI framework and tried to access it. - **[Page Designer Einstein Recommendations Pages Render As Expected](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_011_w6926302_pd_einstein_la.htm&release=264.0.0&type=5)** When a Page Designer page uses `` tags to enable Einstein recommendations, the HTML on the page renders as expected. Previously, the rendering did not produce valid HTML. # Page Designer Review the new B2C Commerce Page Designer features and enhancements in the 20.2 release. - **[Use Salesforce CMS Content in Page Designer Components](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_w7038193_pd_cms_la.htm&release=264.0.0&type=5)** Create and manage content in Salesforce Content Management System (CMS). Easily use that content in components on Page Designer pages. - **[Create Custom Attribute Editors Faster with Prebuilt Attribute Editors](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_2_w7038219_pd_prebuilts_la.htm&release=264.0.0&type=5)** Use the prebuilt editors as building blocks when you create custom attribute editors. We provide prebuilt editors for Category Picker, Link Builder, Page Picker, and Product Picker UI controls. When the merchant configures the component attribute, the prebuilt editor opens in a separate breakout window window. # Page Designer Review the new B2C Commerce Page Designer features and enhancements in the 20.3 release. - **[Find a Page Designer Page Using Search Suggestions](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_3_w7160927_pd_search_sugg_la.htm&release=264.0.0&type=5)** You can now implement search suggestion support for Page Designer pages. When a customer starts to enter a search term on the storefront, the storefront application suggests related search terms. And the customer can select from a list of Page Designer pages applicable to the suggested search terms. # Page Designer Review the new B2C Commerce Page Designer feature in the 20.4 release. - **[Help Customers Find Your Page Using Search Keywords](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_w7156948_pd_searchwords_la.htm&release=264.0.0&type=5)** When a customer enters a search keyword, the search results include the Page Designer page. - **[Enter Text More Easily with a Larger RTE](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_4_w7261291_pd_rte_la.htm&release=264.0.0&type=5)** The Rich Text Editor (RTE) window where you enter text to configure component attributes is larger now. If you need even more room, you can expand the RTE window to full size. # Page Designer Review the new B2C Commerce Page Designer features in the 20.6 release. - **[Create Templates for Product List and Product Detail Pages](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_w7517037_page_des_dyn_pages_la.htm&release=264.0.0&type=5)** With Page Designer’s new dynamic page feature, you can easily create rich, engaging templates for Product Detail or Product List pages. You can assign the template to multiple categories. When a Product List or Product Detail page is rendered in the storefront for one of the assigned categories, the template page is displayed, populated with the appropriate product information. - **[Preassign Components to Regions on Page Designer Pages](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_6_w7538000_page_des_init_comps_la.htm&release=264.0.0&type=5)** When developing a page type or component type, Page Designer developers can preassign components to regions. When a merchant creates the page in the Visual Editor, the preassigned components are already in the region. The merchant can remove or modify the preassigned components as necessary. # Page Designer Review the new B2C Commerce Page Designer features in the 20.7 release. - **[Create and Manage Dynamic Pages More Efficiently](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_w7635857_page_des_dyn_pages_la.htm&release=264.0.0&type=5)** Dynamic pages are typically implemented as Product List or Product Detail pages for which the content changes based on which category or product is rendered. With this version, you can create and manage these pages more efficiently. - **[Search for Pages Using Attribute Values](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_w7635902_page_des_search_la.htm&release=264.0.0&type=5)** Developers can specify that component or page attributes are indexed and searchable. When attributes are searchable, users can find pages by searching for the attribute value. For example, users can search for the text configured for a rich text attribute. - **[Create Custom Page-Level Attributes](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_w7635915_page_des_page_attrs_la.htm&release=264.0.0&type=5)** Developers can define attributes for page types. For example, a developer can create a page type that includes attributes for the Title, Image, and Description displayed in search results for the page. Or the developer can define page attributes for page tags that allow merchants to search, sort, and retrieve pages more easily. - **[Easily See If Preview Setting Are Selected](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_7_w7635929_page_des_preview_la.htm&release=264.0.0&type=5)** Page Designer now provides a visual cue to let you know when preview settings are configured. # Page Designer Review the new B2C Commerce Page Designer feature in the 20.8 release. - **[Influence the Placement of a Page Designer Page in Search Results](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_8_w7761966_page_des_boost_la.htm&release=264.0.0&type=5)** You can specify a boost factor in a searchable page or component attribute to influence the placement of the page in search results. # Page Designer Review the new B2C Commerce Page Designer feature in the 20.9 release. - **[Create a Link to a Content Asset](https://help.salesforce.com/s/articleView?id=commerce.b2c_20_9_w7874031_page_des_content_picker_la.htm&release=264.0.0&type=5)** Some component attributes allow you to configure a link, for example to a product, category, page, or external resource. We have expanded your options for that link to include content assets. # Page Designer Code No Longer Tries to Use Global Variable $A The code that Page Designer injects into the storefront no longer tries to use the global variable `$A`. Previously, if the `$A` variable existed, the Page Designer code assumed it was part of the Aura UI framework and tried to access it. # Page Designer Einstein Recommendations Pages Render As Expected When a Page Designer page uses `` tags to enable Einstein recommendations, the HTML on the page renders as expected. Previously, the rendering did not produce valid HTML. # Page Meta Tags for B2B Commerce Meta tags in HTML documents provide structured data used by search engines for ranking and to show content in search results. You can configure page meta tags, such as titles, descriptions, and headings, in your store. For product and category pages, the Title Tag and Meta Description product and category fields determine the title and description meta tags. [Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US) - **[SEO Guidelines for Commerce Page Meta Tags](https://help.salesforce.com/s/articleView?id=commerce.comm_seo_meta_tag_guidelines.htm&release=264.0.0&type=5)** To increase the SEO value of your store, add meta tags to Product, Category, and other pages. - **[Configure Meta Tags to Commerce Store Pages for SEO](https://help.salesforce.com/s/articleView?id=commerce.comm_seo_meta_tags.htm&release=264.0.0&type=5)** To improve your products’ search engine visibility, add meta tags that describe the product. You can add product titles and descriptions individually or generate meta tags for multiple products at once using Einstein generative AI. - **[Structured Data for Commerce Product Meta Tags](https://help.salesforce.com/s/articleView?id=commerce.comm_seo_structured_data.htm&release=264.0.0&type=5)** Create rich and engaging search results by using structured data from your store to dynamically update a page’s meta tags. For example, you can map product attributes like color or size to meta tags using expressions. # Partitioned Cookie Explicit Expiry Mode Admins can now use the new Partitioned Cookie Explicit Expiry Mode to control if an expired partitioned cookie is sent for an existing partitioned cookie. Admins can set the toggle to one of these values: - **None**–An expired partitioned cookie isn’t sent and hence doesn’t clear the existing partitioned cookies. This state represents the behavior of the B2C Commerce 24.1 release. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2c_commerce_release_notes-264-0-0-production-enus/4ec7e638-d25e-4c65-96ec-ec874bcf5183/images/icon_note.png) Note If the Partitioned Cookies Toggle is enabled and disabled, this setting can result in issues. - **Compatible Clients**–The default value. If the user agent of the client (browser) is Chromium (Chrome, Edge, and Opera), The expired partitioned cookie is sent. - **All**–Always sends the expired partitioned cookie. Use this setting if enabling and disabling the partitioned cookies caused issues. For example, with login, iOS Apps, and the like. **How:** Use the Partitioned Cookies Explicit Expiry Mode feature toggle for these conditions. - If after the Partitioned Cookies toggle is enabled, the toggle is disabled and you experience issues with expired partitioned cookies. - Set Partitioned Cookies Explicit Expiry Mode to All. - If you observe any issues with apps or any other non-browser clients receiving duplicate cookies - Set Partitioned Cookies Explicit Expiry Mode to None. # Password Management Password management in Point of Sale CMS controls store associates' login authentication using Point of Sale Identity Management. ## CMS - Configuration & Setup Password management involves two sets of configurations, one at the Associate Level and another at the Brand Level. ## Associate Level - **Last Login Time:** records the timestamp of the associate's last login. - **Number of Unsuccessful Login Attempts**: resets upon successful login. - **Date Password Updated**: Tracks when the associate's password was last updated. - **Password Reset Pin**: used in the 'Forgot Password' flow. - Example: passwordPin = birthMonth+"/"+birthDay; ## Brand Level These settings can be configured through CMS > Store Settings. - **Maximum number of incorrect Login attempts**: Maximum number of incorrect login attempts allowed. - **Days After Which Account Will Be Locked**: Defines the maximum number of days an associate's account will be locked if the password isn't changed. - **Days After Password Reset to Prompt for Upcoming Password**: specifies the maximum number of days before prompting an associate to change their password. It is recommended not to exceed 90 days for security compliance. - Example of How These Settings Work: - Suppose the "Days after which account will be locked" is set to 90, and the "Days after password reset to prompt for upcoming password" is set to 80. Here's how these settings function: - On day 80 (10 days before password expiration), associates will start receiving prompts to change their password. - The new password will have a 90-day validity before the next expiration. - If a password is reset on, say, day 30, it will remain valid for 90 days from the reset date, and the associate will be prompted for another reset on day 80. - If the associate enters the correct old password after "Days after which account will be locked" have passed, the POS app treats it as a valid login but forces the user to change the password immediately. The user can't proceed without updating their password if the old password has passed "Days after which account will be locked". Be aware that the system doesn't treat this as an invalid login attempt but requires the user to update their password. ## Additional Brand Level Configuration - **Store Associate Password complexity Regex**: A Regular Expression that enforces complexity rules for passwords (for example requiring uppercase and lowercase characters). - **Store Associate invalid password error message**: The message displayed to the user when a password has expired. - **Password Reset on First Login**: This option can be enabled or disabled based on specific requirements. Enabling it forces users to reset their password when logging in for the first time using a password set by corporate. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png) Note While this setting is generally applied store-wide, it can be overridden for individual associates. For example, an API update disables the feature for a specific associate. Additionally, this setting is tracked at the individual associate level to avoid repeatedly prompting associates to reset their password - **Number of previous passwords that can't be used**: Number of previous passwords that can't be used. # Passwords Can Only Be Changed Through Self-Service Passwords can only be changed by a user, through the self-service feature. Administrators can continue to initiate user password resets through the API, but they can't update the password. # Patch Notes for B2B Commerce for Visualforce Spring ’19 (Version 4.10) Patch notes for B2B Commerce. ### Required Editions
Salesforce Compatibility Salesforce Classic and Lightning Experience for Enterprise, Performance, Unlimited, and Developer editions.

B2B Commerce Compatibility

Any org updating to or installing a patch for B2B Commerce for Visualforce Summer ’19 (version 4.10)

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2b_commerce_release_notes-264-0-0-production-enus/dd2bc651-f664-4278-bce2-a3d325362afb/images/icon_tip.png) Tip - If you install a particular build in a sandbox and test and validate against that version, ensure that you also install the _same_ build in production. For example, if you install build 3.142.1 in a sandbox, ensure that you also install build 3.142.1 in production. - Make sure that you find the correct link for your org type before you proceed with installing a patch. For example, if you're already logged in to a production org, select the URL for a production org, not a sandbox. Reverting or canceling an installation isn't always possible. - If you're installing B2B Commerce for Visualforce for the _first time_, install the most recent patch so that your implementation has the latest fixes. First, complete the _Set Up a Storefront_ steps in the [B2B Commerce for Visualforce Help](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/b2b_commerce_visualforce.pdf), and then complete any required upgrade steps for each patch that precedes the build you installed. - Some fixes update default handlebars.js templates that render components on the storefront. If you've previously overridden a default template that receives a fix, reimplement your customizations based on the fixed version of the default template. This step ensures that custom code in your solution receives the benefit of the patch's fix. ## 3.142.37—March 1, 2024 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-37 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-37
ID Fix
W-14628878

Added the ability to filter the static resources that the ccrz.cc_util_UserInterface API utility class queries. This query includes static resources that contain your storefront's product images, theme files, and so on. This enhancement works around limits in your org if you've installed multiple managed packages, and allows you to specify the static resource namespaces that you want to query.

UPGRADE IMPACT: To implement this filter in your org, create metadata for a new configuration in the User Interface module that uses the API name nsList. Then, in your storefront settings, set the value of this configuration to a comma-separated list of the namespaces that you want to query. Avoid spaces between comma values, and be sure to include the default ccrz namespace in the list. For example, enter ccrz,other-namespace where other-namespace is a custom namespace that you want to include. For more information, see Create Metadata for the Namespace List Configuration Added in a Patch in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

## 3.142.36—October 11, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-36 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-36 | ID | Fix | | --- | --- | | W-13887104 | Fixed an issue where the classic interface included an incorrect version of backbone.js when using minified JavaScript. This change updates the minified ccrz-libs-min.js for the classic interface to include version 1.3.3 of backbone.js. | ## 3.142.34—August 4, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-34 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-34 | ID | Fix | | --- | --- | | W-13881035 | Fixed an issue where the classic interface included an incorrect version of underscore.js. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for the classic interface to reference version 1.13.1 of underscore.js. The notes for patch 3.142.31 from December 8, 2021 incorrectly stated that this version was already updated for the classic interface (ID W-9877332). | ## 3.142.33—August 4, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-33 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-33 | ID | Fix | | --- | --- | | W-13171994 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.13.1 to 1.13.2 and jquery.validate.js from 1.19.4 to 1.19.5. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.2/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.5) release notes. | ## 3.142.32—February 1, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-32 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-32 | ID | Fix | | --- | --- | | W-11148728 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.12.1 to 1.13.1 and jquery.validate.js from 1.17.0 to 1.19.4. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.1/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.4) release notes. | ## 3.142.31—December 8, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-31 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-31 | ID | Fix | | --- | --- | | W-9877332 | Upgraded the versions of these JavaScript libraries distributed with the managed package: handlebars.js from 4.7.6 to 4.7.7 and underscore.js from 1.9.1 to 1.13.1. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [handlebars.js release notes](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md) and [underscore.js release notes](https://github.com/jashkenas/underscore/releases/tag/1.13.1). | | W-9811680 | Fixed a potential vulnerability related to the My Orders section of the My Account page. | | W-9811596 | Fixed a potential vulnerability related to cross-site scripting (XSS) when modifying storefront settings in CC Admin. | | W-9811534 | Fixed an issue where an admin could potentially inject cross-site scripting (XSS) when creating custom configuration modules. | ## 3.142.30—September 9, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-30 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-30
ID Fix
W-9817426

Fixed an issue where the CC Admin tab didn't load for a user whose admin profile didn't have Create access on the E_Foo__c object.

As a result of this change, a user with the admin profile can’t download files from CC Admin | Global Settings | Settings Loader.

## 3.142.29—March 18, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-29 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-29
ID Fix
W-8509442

Upgraded the version of the following default third-party JavaScript libraries that the managed package distributes:

  • bootstrap.js to 3.4.1 (for Bootstrap 3-enabled themes only)
  • handlebars.js to 4.7.6
  • jquery-ui-custom.js to 1.12.1

This change updates the ccrz.cc_hk_UserInterface.standardIncludes extension point method. For more information about the changes in these versions, see the appropriate release notes:

W-8115328 Fixed an issue where a subscription for a kit or dynamic kit didn't correctly evaluate recurring cost when adding to a cart or after pricing the cart.
W-8019002

Fixed an issue where the sharing rules for the following custom objects potentially exposed personal identifiable information (PII) in carts, orders, and addresses:

  • CC Cart
  • CC Contact Address
  • CC Order

These sharing rules were previously required for a storefront that allows a guest buyer to create a cart and check out. This fix removes the dependency on the specific sharing rules. Guest user carts and checkout continue to behave correctly without these rules.

UPGRADE IMPACT: After you install the patch, to remove the affected sharing rules and update sharing attributes in the default order confirmation email template, complete the steps in Remove Sharing Rules for Carts, Orders, and Addresses in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

## 3.142.27—September 17, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-27 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-27
ID Fix
W-7976705

Enabled the Secure attribute for the following cookies:

  • apex__cc_anonymous_Country
  • apex__cc_anonymous_Currency
  • apex__cclgtkn
  • apex__currCartId
  • apex__effacc

This attribute ensures that the managed package sends cookie data securely through an encrypted request over HTTPS protocol. For more information, see:

W-7953276 Fixed an issue where clicking the Show Pricing Tiers button on the Shopping Cart page caused the API to query all the user's entitled products. For price lists with a significant number of price list items, this issue could result in Apex CPU Limit exceptions.
## 3.142.26—August 20, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-26 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-26
ID Fix
W-7561288

Updated the default ccrz.cc_hk_UserInterface extension point class to distribute the latest stable, secure versions of jQuery (3.5.1) and jQuery Migrate (3.3.0).

UPGRADE IMPACT: This upgrade also introduces a breaking change where non-void HTML elements that use self-closing tags, such as <div/>, no longer render. This HTML compatibility change affects the default Handlebars templates included in the managed package, and can affect front-end extensions or customizations that you've already developed. For more details about the jQuery upgrade and the impact on the HTML used in your storefront, see the Salesforce Knowledge article, Upgrade to jQuery 3.5.1 in B2B Commerce for Visualforce Spring ’20 (Version 4.12) or Earlier.

## 3.142.25—July 13, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-25 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-25
ID Fix
W-7768457 Fixed an issue where the Apex batch jobs that refresh product index records failed because of Apex governor limits. This issue occurred when a product had over 5,000 price list items assigned, and one of the price lists was the storefront's master price list.
W-7765036

Fixed an issue where a buyer wasn't able to log in to the storefront. This issue occurred in an org that's resolved the security alerts for preventing unauthorized guest user access to their storefront data. If the user configured as the Default Record Owner owned multiple active carts that were abandoned, the heap size filled up. As a result, no registered users could log in.

UPGRADE IMPACT: This fix updates the ccrz.ccLogicUserLogin.determineStartURL() logic provider method in the following ways:

  • The call to ccrz.ccApiUser.fetch() specifies ccrz.ccService.QUERYLIMIT => 1 and ccrz.ccService.WODAO => True.
  • The call to ccrz.ccApiCart.fetch() specifies ccrz.ccService.QUERYLIMIT => 1.
W-7646055 Fixed an issue where the ccrz.ccServiceProductSpecIndex data service provider class incorrectly queried ccrz__E_ProductSpecIndex__c records for all locales instead of filtering by a specific locale. This issue only affected performance, and didn’t impact any functionality.
## 3.142.24—June 16, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-24 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-24
ID Fix
W-7456712 Fixed an issue where a buyer couldn't add a product to the cart when the product's SKU value exceeded 18 characters. This issue occurred when the buyer clicked the Add to Cart button from the Product Detail page.
W-7453542

Fixed potential security vulnerabilities in some extension point classes.

UPGRADE IMPACT: This fix deprecates the ccrz.cc_hk_EffectiveAccount.fetchAccountData() method.

W-7398592 Added an enhancement to reduce CPU usage when retrieving Schema information. For example, this fix applies when adding a product to a cart and validating the cart's currency ISO code against the org's Active Currencies.
W-7386327 Fixed an issue where subscriber extensions to the ccrz.cc_api_ShippingAndHandling extension point class couldn't perform HTTP/S callouts during Checkout flow.
W-7371921 Fixed an out-of-date URL in an Apex method comment.
## 3.142.23—February 18, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-23 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-23 | ID | Fix | | --- | --- | | W-7187149 | Fixed an issue where an invoice's Status field in the My Invoices section of the My Account page showed the invoice’s type, not status. | ## 3.142.22—January 31, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-22 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-22
ID Fix
W-7084961 Fixed an issue where fetching multiple carts with the Shopping Cart page version 2.0 resulted in a coupon being applied to the incorrect cart.
W-7084775

Partially fixed an issue where CC Page Labels with i18n entries weren't getting translated. This fix adds new page label records in several Visualforce components:

  • cc_MiniCartDetailsRD.component
  • cc_MyAccountAddressBookRD.component
  • cc_MyAccountCartsRD.component
  • cc_MyAccountContactInfoRD.component
  • cc_MyAccountInvoicesRD.component
  • cc_MyAccountOrdersRD.component
  • cc_MyAccountStoredPaymentRD.component
  • cc_MyAccountSubscriptionNewRD.component
  • cc_MyAccountWishlistRD.component
  • cc_ProductDetailStandardRD.component
  • cc_ProductList.component

UPGRADE IMPACT: To add the page labels to your org, go to CC Admin | Global Settings | Data Loader and click Upgrade B2B Commerce Settings after you upgrade.

This fix doesn't apply to the cc_MyAccountChangePasswordRD.component, which renders the Change Password button. A fix for that component is deferred to an upcoming patch release.

W-7074694 Fixed an issue where the Shopping Cart page (versions 2.0 and 1.0) removed items from the cart after updating cart item quantities to resolve validation errors.
W-7015927 Fixed an issue where the Product List page (version 1.0) performed a duplicate Apex remote action call. This issue occurred when the Join Filtering configuration of the Feature Filtering module was TRUE.
W-6985633 Fixed an issue where setting ccrz.ccApi.SZ_ASSC => false in the ccrz.ccApiCart.CLI_ENTITYNAME sizing map for a ccrz.ccApiCart.fetch() method call still completed the related call to the ccrz.ccApiProduct.fetch() method instead of skipping it.
## 3.142.20—December 19, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-20 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-20
ID Fix
Multiple items

Fixed several issues that ensure that guest users can continue to self-register and create carts after you complete the required security alerts for guest security.

UPGRADE IMPACT: Complete these steps:

  • Install patch 3.142.20 to upgrade the managed package. Be sure to update the available global data in the Data Loader page of CC Admin after you install the patch.
  • Complete the steps in Resolve Guest User Security Alerts to Keep Your Storefronts Secure by Default in the B2B Commerce for Visualforce Release Notes and Upgrade Guide. These steps describe how to manually resolve each security alert.
## 3.142.19—November 22, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-19 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-19 | ID | Fix | | --- | --- | | W-6875116 | Fixed an issue where a read-only wish list didn't display in the My Templates section of the My Account page. | ## 3.142.18—October 16, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-18 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-18
ID Fix
Multiple items

Fixed several issues that enhance the security of B2B Commerce for Visualforce custom objects against unauthorized access. These fixes don’t require any action after you upgrade.

This patch removes a requirement to have the View All Users permission enabled on your storefront’s guest user profile. This permission was previously required to work around a Digital Experiences security fix. This change ensures that you’re providing the least privilege to guest users to help keep your storefront data secure, while still supporting self-registration.

UPGRADE IMPACT: If you previously enabled the View All Users permission, update your guest user profile to disable the View All Users permission.

W-6593137 Fixed an issue where the picker dropdown for cloned wishlists didn't refresh upon refetch.
W-6546258

Fixed an issue where a product with a start date that’s valid for the current date didn’t appear on the storefront. This issue occurred because the product index included only price list items whose date ranges were valid for the time that the index was built. For example, a product with a start date of September 1 didn’t appear on the storefront on September 1, because the product index was built on August 15. With this fix, a price list item with a future Start Date is now included the next time you build a new product index.

If you start including future-dated products, the size of the index and time required to build it both increase.

W-6536710 Fixed an issue where the storefront reverted to the default locale after a buyer selected a non-default locale and then failed a login attempt. This issue occurred for storefronts that support more than one locale and have enabled the Locale Switcher widget.
W-6536694 Fixed a rare issue where the Product List page timed out while querying for products and filters.
W-6440724 Fixed an issue where the Shopping Cart page version 2.0 incorrectly displayed an error for an externally priced product with any status except Released.
W-6398159 Fixed an issue where the Shopping Cart page version 2.0 didn't discount the price of a bundle when applying a Cart Total coupon .
W-6389414 Fixed an issue where externally priced products displayed incorrect prices on the Shopping Cart page version 2.0.
## 3.142.16—August 14, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-16 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-16 | ID | Fix | | --- | --- | | W-6423365 | Fixed an issue where any details entered in the Contact Information form on the LLI Checkout page were incorrectly cleared after editing a Shipping Group address. | | W-6393870 | Fixed an issue where autocomplete suggestions rendered outside of the search box. | | W-6397993 | Fixed a rare issue with JavaScript null responses that could occur when using a logic override. | | W-6350478 | Fixed an issue where the order confirmation email didn't send when a CSR placed an order on behalf of a registered buyer. This change adds access to the `cc_ctrl_Formatter` and `cc_util_Order` Apex classes on the default B2B Commerce CSR permission set. | | W-6343720 | Fixed an issue where the tax amount was calculated incorrectly during checkout when multiple currencies were enabled for your storefront. | ## 3.142.12—July 16, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-12 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-12 | ID | Fix | | --- | --- | | W-6300941 | Fixed an issue where the estimated tax amount that’s calculated during checkout could be circumvented. | | W-6295264 | Fixed an issue where a user couldn't place an order when the default checkout flow was overridden to remove the first two checkout steps. | | W-6290377 | Fixed an issue where the Checkout page failed due to SOQL limits. This issue occurred when you enabled LLI checkout and set the Show Ship Options configuration of the Shipping Options module to FALSE. | | W-6289664 | Fixed an issue where checkout couldn't complete when using CSR flow. This change updates Visualforce page access and object settings in the default B2B Commerce CSR permission set. | | W-6285282 | Fixed an issue where passing transaction payment data as a JSON string or `Map` for a `ccrz.ccApiCart.place()` method call caused the call to fail. | | W-6273196 | Fixed an issue where changing the Enabled configuration of the Header or Top Menu modules to FALSEdidn't hide the header or menu, respectively. | | W-6090669 | Fixed an issue where the Add to Cart and Add to Batch buttons always displayed on the Product Detail page. This issue occurred even when setting the Show Add To Cart configuration of the Product Detail module to FALSE. This fix applies only to the Bootstrap 3 page templates because the configuration setting previously worked as expected for the classic page templates. | ## 3.142.10—July 1, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-10 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-10
ID Fix
W-6282203

Fixed an issue where B2B Commerce for Visualforce failed to transfer ownership of a cart from a guest user to an authenticated user once the user self-registered. This failure occurred only when all following conditions were true:

  • Your organization-wide default external access for the User object was set to Private.
  • The Experience Cloud site’s guest user profile had the View All Users permission disabled.
  • The Site User Visibility sharing setting was disabled.
W-6267756 Fixed an issue where the effective account selector didn't correctly switch accounts. This issue occurred when the account being selected had only one default account address book (either a default shipping or default billing address).
W-6247589 Fixed issue where having a CC Account Address Book record with no CC Contact Address record relationship caused the Checkout page load to fail.
W-6246528 Fixed an issue where an extra <head> tag appeared in the <body> tag as a result of the apex:outputPanel layout for the bot-enabled Product Detail page.
W-6210498 Fixed an issue where no error appeared when a buyer created an address and saved it without entering any values for the new address record fields.
W-6195939 Added an error message for tax calculation on the Order Review page. To customize the error message, create a page label record named Checkout_TaxCalculationError.
## 3.142.8—June 19, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-8 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-8 | ID | Fix | | --- | --- | | W-6195291 | Fixed an issue where an aggregated product didn't display an alternate image when a buyer clicked a thumbnail. | | W-6185870 | Fixed an issue where the short description for an aggregated product was duplicated on the Product Detail page. | | W-6173561 | Fixed an issue in Settings Loader in CC Admin that caused an Apex CPU time limit exception. This issue occurred when attempting to load a high volume of custom settings and object records. | | W-6146981 | Added the Customize Application permission to the default B2B Commerce Admin permission set. This change grants permission to your admin users to modify B2B Commerce for Visualforce custom settings such as Application Settings and Storefront Settings. If you previously assigned this permission to the permission set assigned to your admin users, this fix doesn't affect those permissions. | | W-6144236 | Fixed CRUD permissions for the CC Product Indices custom object on the default B2B Commerce Admin permission set. If you previously updated CRUD permissions on CC Product Indices for the permission set assigned to your admin users, this fix doesn’t affect those permissions. | | W-6100488 | Fixed an issue where the Attribute Items window on the Order Review page incorrectly calculated the subtotal of ADC products. | | W-6074505 | Fixed an issue where a category record that was missing a short description caused an error on the bot-enabled Product List page. | | W-6065859 | Fixed an issue where adding multiple complex products to a cart at one time caused errors. | | W-6053987 | Changed the behavior when deleting product index, site index, and product spec index records. Previously, B2B Commerce for Visualforce deleted the records but they were still available in the recycle bin, which affected performance when querying index data. Now, B2B Commerce for Visualforce permanently deletes the records in the recycle bin as part of the delete operation. | | W-6015748 | Fixed an issue where the `cartChange` event didn't trigger when modifying cart items on the Shopping Cart page or in the mini-cart component. | ## 3.142.4—May 23, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-4 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-4
ID Fix
Multiple items

Fixed several minor issues to enhance the admin experience when managing B2B Commerce for Visualforce custom objects. These fixes relate to Create-Read-Update-Delete (CRUD) access and field-level security (FLS) on B2B Commerce for Visualforce custom objects.

This patch also includes a fix that enables a Cross-Site Request Forgery (CSRF) protection checkbox on all B2B Commerce Visualforce pages used for rendering CC Admin.

UPGRADE IMPACT: After installing this patch, update the permission set assigned to your admin users to include Create, Read, Edit, and Delete access on CC Product Indices. This step is required so that you can continue to build new product index records and keep the product data up to date on your storefront.

W-6126563 Fixed an issue where attempting to load global data in CC Admin failed silently. With this fix, the B2B Commerce for Visualforce global data static resource no longer tries to insert data for the Account Number field on the standard account object.
W-6112237 Fixed an issue where the Product Detail page couldn't show a decimal spec value for a spec with the Slider filter type.
W-6076305

Removed cc_admin_Coupon.page as the default button behavior for the CC Coupon object. Now, clicking the New, Edit, or Clone button on the CC Coupon object uses a standard page, which removes all field dependency flows previously available with cc_admin_Coupon.page. The standard page also makes visible fields that were previously automated.

If your implementation doesn't currently use cc_admin_Coupon.page, this change doesn't impact you. Any existing customizations you've made to coupon pages for button behavior are preserved after you upgrade.

## 3.142.1—April 25, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-142-1 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-142-1 | ID | Fix | | --- | --- | | W-5998759 | Fixed an issue where the name of a contact's account didn't display correctly in the Account Information section of the My Account page. | | W-5974570 | Fixed an issue that prevented the localization of breadcrumb category names. | | W-5968320 | Fixed an issue where the shipping options displayed in checkout were not filtering by the buyer’s currency. | | W-5963681 | Fixed an issue where related products with the type CrossSell did not appear on the Shopping Cart page version 2.0. | | W-5963647 | Fixed an issue where an applied coupon line item's name was blank on the Shopping Cart page version 2.0. | # Patch Notes for B2B Commerce for Visualforce Spring ’20 (Version 4.12) Patch notes for B2B Commerce. ### Required Editions
Salesforce Compatibility Salesforce Classic and Lightning Experience for Enterprise, Performance, Unlimited, and Developer editions.

B2B Commerce Compatibility

Any org updating to or installing a patch for B2B Commerce for Visualforce Spring ’20 (version 4.12)

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2b_commerce_release_notes-264-0-0-production-enus/dd2bc651-f664-4278-bce2-a3d325362afb/images/icon_tip.png) Tip - If you install a particular build in a sandbox and test and validate against that version, ensure that you also install the _same_ build in production. For example, if you install build 3.147.2 in a sandbox, ensure that you also install build 3.147.2 in production. - Make sure that you find the correct link for your org type before you proceed with installing a patch. For example, if you're already logged in to a production org, select the URL for a production org, not a sandbox. Reverting or canceling an installation isn't always possible. - If you're installing B2B Commerce for Visualforce for the _first time_, install the most recent patch so that your implementation has the latest fixes. First, complete the _Set Up a Storefront_ steps in the [B2B Commerce for Visualforce Help](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/b2b_commerce_visualforce.pdf), and then complete any required upgrade steps for each patch that precedes the build you installed. - Some fixes update default handlebars.js templates that render components on the storefront. If you've previously overridden a default template that receives a fix, reimplement your customizations based on the fixed version of the default template. This step ensures that custom code in your solution receives the benefit of the patch's fix. ## 3.147.17—July 25, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-17 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-17 | ID | Fix | | --- | --- | | W-13690244 | Fixed a potential vulnerability related to cross-site scripting (XSS). | | W-13171968 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.13.1 to 1.13.2 and jquery.validate.js from 1.19.4 to 1.19.5. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.2/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.5) release notes. | ## 3.147.15—September 20, 2022 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-15 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-15 | ID | Fix | | --- | --- | | W-11148636 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.12.1 to 1.13.1 and jquery.validate.js from 1.19.1 to 1.19.4. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.1/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.4) release notes. | ## 3.147.14—March 15, 2022 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-14 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-14
ID Fix
W-10489057

Added the ability to filter the static resources that the ccrz.cc_util_UserInterface API utility class queries. This query includes static resources that contain your storefront's product images, theme files, and so on. This enhancement works around limits in your org if you've installed multiple managed packages, and allows you to specify the static resource namespaces that you want to query.

UPGRADE IMPACT: To implement this filter in your org, create metadata for a new configuration in the User Interface module that uses the API name nsList. Then, in your storefront settings, set the value of this configuration to a comma-separated list of the namespaces that you want to query. Avoid spaces between comma values, and be sure to include the default ccrz namespace in the list. For example, enter ccrz,other-namespace where other-namespace is a custom namespace that you want to include. For more information, see Create Metadata for the Namespace List Configuration Added in a Patch in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

## 3.147.13—October 8, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-13 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-13 | ID | Fix | | --- | --- | | W-9877306 | Upgraded the versions of these JavaScript libraries distributed with the managed package: handlebars.js from 4.7.6 to 4.7.7 and underscore.js from 1.9.2 to 1.13.1. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [handlebars.js release notes](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md) and [underscore.js release notes](https://github.com/jashkenas/underscore/releases/tag/1.13.1). | | W-9811675 | Fixed a potential vulnerability related to the My Orders section of the My Account page. | | W-9811583 | Fixed a potential vulnerability related to cross-site scripting (XSS) when modifying storefront settings in CC Admin. | | W-9811510 | Fixed an issue where an admin could potentially inject cross-site scripting (XSS) when creating custom configuration modules. | | W-9806366 | Updated the label for the `pri.masterpl` configuration setting to use the term Primary instead of Master. The new complete label is Create Primary Index for All Currencies. For compatibility, the API name for this configuration remains `pri.masterpl`. | ## 3.147.12—July 22, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-12 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-12 | ID | Fix | | --- | --- | | W-9190637 | Fixed an issue where the bot-enabled Product Detail page didn't load when the product specified a decimal value for a spec that used the Slider filter type. | ## 3.147.11—May 27, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-11 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-11 | ID | Fix | | --- | --- | | W-9081908 | Fixed an issue where autocomplete suggestions displayed on top of the Quick Order widget's input field, rather than below the field as expected. | ## 3.147.10—February 23, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-10 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-10
ID Fix
W-8875883 Fixed an issue where encoded XML characters were escaped when a buyer entered address values in line-level independence (LLI) checkout.
W-8782271 Fixed an issue where a guest buyer that refreshed their browser during the standard checkout workflow was redirected to the Shopping Cart page, but couldn't attempt checkout again.
W-8534567 Fixed an issue where the CC Email Address field in the User Information section of the standard Checkout page wasn't editable. This issue occurred when the account record used for checkout had the Prevent New Addresses at Checkout field enabled.
W-8527785 Fixed an issue where encoded XML characters were escaped when a buyer entered address values in standard checkout.
W-8433754 Fixed an issue where the Quick Order widget didn't show autocomplete suggestions. This issue occurred after a buyer clicked Add More to add extra rows and entered three or more characters of a SKU to add.
W-8246154

Fixed an issue where the Checkout page returned an Apex error that prevented checkout flow from completing successfully. This issue occurred when both of the following conditions were satisfied:

  • The Address Owned by User configuration of the Checkout module (co.uown) was TRUE.
  • A customer service representative (CSR) was logged in to the storefront using CSR flow and selected an effective account.

UPGRADE IMPACT: After you upgrade the managed package, update the Checkout module's Address Owned by User configuration to apply to all pages instead of only the Checkout page (co). Then, build and activate a new configuration cache.

## 3.147.9—November 4, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-9 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-9 | ID | Fix | | --- | --- | | W-8291156 | Fixed a rare issue where a product was added to an incorrect cart when a buyer was logged in with an effective account. | | W-8115200 | Fixed an issue where a subscription for a kit or dynamic kit didn't correctly evaluate recurring cost when adding to a cart or after pricing the cart. | ## 3.147.8—October 22, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-8 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-8
ID Fix
W-8147964 Upgraded the version of the handlebars.js library distributed with the managed package to 4.7.6. This change updates the ccrz.cc_hk_UserInterface.standardIncludes method for both the Bootstrap 3 and classic interfaces. For more information about the changes in version 4.7.6, see the Handlebars release notes.
W-8146300

Fixed an issue where multiple quantity controls were available for the Add to Cart button. This issue occurred when the storefront enabled product quantity rules with an increment value of 1.

UPGRADE IMPACT: This fix updates the Handlebars templates that render quantity controls. This fix also adds an example inner class, single, to the ccrz.cc_api_ProductQuantityRule extension point in the API. This inner class adds increase (+) and decrease (-) Increment buttons to all quantity input controls, but no Skip Increment buttons. To enable this inner class on your storefront, edit the Product Quantity Rule API Class field in your storefront settings to cc_api_ProductQuantityRule:single.

W-8018983

Fixed an issue where the sharing rules for the following custom objects potentially exposed personal identifiable information (PII) in carts, orders, and addresses:

  • CC Cart
  • CC Contact Address
  • CC Order

These sharing rules were previously required for a storefront that allows a guest buyer to create a cart and check out. This fix removes the dependency on the specific sharing rules. Guest user carts and checkout continue to behave correctly without these rules.

UPGRADE IMPACT: After you install the patch, to remove the affected sharing rules and update sharing attributes in the default order confirmation email template, complete the steps in Remove Sharing Rules for Carts, Orders, and Addresses in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

## 3.147.7—September 23, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-7 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-7
ID Fix
W-8033828 Fixed an issue where a buyer couldn't add a product to the cart when the product's SKU contained certain 15- or 18-digit values. This issue occurred when the buyer clicked the Add to Cart button from the Product Detail page.
W-8032391 Fixed an issue where products with a significant number of price list items were excluded from the product index batch jobs, due to Apex governor limits. This fix adds two storefront configuration settings in the Product Indexing module, Override Default Batch Size and Custom Batch Size. Set values for these configurations to fine-tune the performance of your product index batch jobs.
W-7976688

Enabled the Secure attribute for the following cookies:

  • apex__cc_anonymous_Country
  • apex__cc_anonymous_Currency
  • apex__cclgtkn
  • apex__currCartId
  • apex__effacc

This attribute ensures that the managed package sends cookie data securely through an encrypted request over HTTPS protocol. For more information, see:

W-7953267 Fixed an issue where clicking the Show Pricing Tiers button on the Shopping Cart page caused the API to query all the user's entitled products. For price lists with a significant number of price list items, this issue could result in Apex CPU Limit exceptions.
W-7942357

Fixed an issue where the Email Us link in the Site_Get_In_Touch page labels didn't link to an actual email address. Instead, the link redirected a buyer to the current storefront page. This issue affected the following Visualforce pages:

  • ccrz.CCException
  • ccrz.CCFileNotFound
  • ccrz.CCInMaintenance
  • ccrz.CCUnauthorized
  • ccrz.CCUnderConstruction

UPGRADE IMPACT: After you install the patch, update the affected page labels. Complete the steps in Update the Page Labels for Site Admin Email on Exception Pages in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

W-7926529

Fixed an issue where changing a cart item's quantity to zero and updating the cart didn't also change the cart item quantity in the buyer's session cache. This issue occurred when all the following conditions were true:

  • The Allow Zero Quantity configuration of the Cart module was TRUE.
  • Platform cache was enabled,
  • The buyer changed the quantity of only one cart item to zero.
W-7914386

Fixed an issue where duplicate internationalized spec values appeared on the Product Compare page. This issue occurred when both of the following conditions were true:

  • At least two CC Spec records had the same Name (such as Color), but different Locales (such as en_US and ja_JP).
  • A product had a spec value assigned for each spec.
W-7800839 Fixed an issue where read-only shipping and billing addresses remained potentially editable. This issue affected address fields in the Manage Address Book section of the My Account page and both standard and LLI checkout.
W-7610302 Added logging capabilities to the API for measuring and monitoring the performance of certain method calls, such as ccrz.ccApiCart.fetch or ccrz.ccApiProduct.fetch, in production orgs. This enhancement allows Salesforce to identify and troubleshoot performance issues more efficiently.
## 3.147.5—August 11, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-5 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-5
ID Fix
W-7797632 Fixed an issue where the ccrz.ccApiCart.fetch() method didn't propagate the without sharing flag (ccrz.ccService.WODAO) to the chained ccrz.ccApiCart.fetchCartItems() query. This fix ensures that the flag propagates correctly for API version 8 or later.
W-7768447 Fixed an issue where the Apex batch jobs that refresh product index records failed because of Apex governor limits. This issue occurred when a product had over 5,000 price list items assigned, and one of the price lists was the storefront's master price list.
W-7765024

Fixed an issue where a buyer wasn't able to log in to the storefront. This issue occurred in an org that's resolved the security alerts for preventing unauthorized guest user access to their storefront data. If the user configured as the Default Record Owner owned multiple active carts that were abandoned, the heap size filled up. As a result, no registered users could log in.

UPGRADE IMPACT: This fix updates the ccrz.ccLogicUserLogin.determineStartURL() logic provider method in the following ways:

  • The call to ccrz.ccApiUser.fetch() specifies ccrz.ccService.QUERYLIMIT => 1 and ccrz.ccService.WODAO => True.
  • The call to ccrz.ccApiCart.fetch() specifies ccrz.ccService.QUERYLIMIT => 1.
W-7582677

Updated the default ccrz.cc_hk_UserInterface extension point class to distribute the latest stable, secure versions of jQuery (3.5.1) and jQuery Migrate (3.3.0).

UPGRADE IMPACT: This upgrade also introduces a breaking change where non-void HTML elements that use self-closing tags, such as <div/>, no longer render. This HTML compatibility change affects the default Handlebars templates included in the managed package, and can affect front-end extensions or customizations that you've already developed. For more details about the jQuery upgrade and the impact on the HTML used in your storefront, see the Salesforce Knowledge article, Upgrade to jQuery 3.5.1 in B2B Commerce for Visualforce Spring ’20 (Version 4.12) or Earlier.

W-7481565 Fixed an issue where sections of the LLI checkout flow didn't consistently use a page label for the Back button. This fix adds a default page label for the value Back and discontinues the use of the page label named LLICheckOut_Back.
## 3.147.4—June 29, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-4 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-4 | ID | Fix | | --- | --- | | W-7575785 | Fixed an issue where a buyer was redirected to a URL from a promotion in the current browser window instead of a new browser window. This issue occurred for a promotion where Location Type is Banner, Link Type is URL, and New Window is enabled. This issue occurred only when the storefront had Google Analytics set up. | ## 3.147.3—June 18, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-3 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-3
ID Fix
W-7646046 Fixed an issue where the ccrz.ccServiceProductSpecIndex data service provider class incorrectly queried ccrz__E_ProductSpecIndex__c records for all locales instead of filtering by a specific locale. This issue only affected performance, and didn’t impact any functionality.
W-7636592 Fixed an issue where the Reorder widget didn't filter available orders correctly. This issue occurred when the Filter Orders Based on Owner storefront setting was disabled. But, the Reorder widget continued to filter orders based on whether the Owner field matched the logged-in user's ID.
W-7540018

Fixed an issue where a service override wasn’t available in CC Admin for the ccrz.ccServiceFeatured data service provider class.

UPGRADE IMPACT: To make this override available after you upgrade the managed package, execute the following anonymous Apex code from the Developer Console:

ccrz.ccApi.registerService(new Map<String, Object>{
    'SFP' => 'ccServiceFeatured'
});
W-7538054 Fixed an issue where a buyer couldn’t click Add to Cart from the Sellers widget on the Product Detail page.
## 3.147.2—May 22, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-147-2 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-147-2
ID Fix
W-7519143

Fixed an issue where an error occurred when showing shipping options during checkout. This issue occurred after the following sequence of events:

  1. A buyer first selected a shipping option during checkout.
  2. The buyer exited checkout flow, returned to their cart, and changed the cart's contents in such a way that the selected shipping option became invalid.
  3. Finally, the buyer returned to the checkout flow.

This fix removes the invalid shipping option from the CC Cart record when proceeding through checkout again.

W-7502323 Fixed an issue where files in a static resource, such as CSS and JavaScript files, were repeatedly fetched and stored in the web browser cache. This fix removes query string parameters from the URL paths that B2B Commerce for Visualforce generates for a page's <script> or <link> tags.
W-7488233 Fixed an issue where CSR flow didn't respect the Filter Orders Based on Owner storefront setting.
W-7488005 Fixed an issue when enabling the AddrReadOnly field on a CC Contact Address record. The value of this field didn't propagate to the related CC Contact Address records that B2B Commerce for Visualforce creates for a cart, order, or invoice.
W-7484694 Fixed an issue where the billing and shipping addresses in the Order Review section of the Checkout page showed data from the wrong object. This issue occurred when using effective accounts. The Checkout page didn't show the value of the Partner ID field from the selected account's default billing and shipping addresses. Instead, the page incorrectly showed the value of the Account Number field from the selected account's corresponding account record.
W-7481614 Added a global page label for the Send button in the Email Cart window. This page label is available for both the Shopping Cart page version 2.0 and 1.0.
W-7481059 Fixed an issue where the Owner column in the My Orders section of the My Account page showed an incorrect value. This issue occurred when the Filter Orders Based on Owner storefront setting was disabled.
W-7456721 Fixed an issue where a buyer couldn't add a product to the cart when the product's SKU value exceeded 18 characters. This issue occurred when the buyer clicked the Add to Cart button from the Product Detail page.
W-7453461

Fixed an issue where the Checkout page didn't reliably load the account's default shipping or billing address. Previously, B2B Commerce for Visualforce allowed multiple shipping or billing account address book records to have the Default field set. This fix enforces a limit of one shipping and one billing account address book entry per account.

UPGRADE IMPACT: Edit the account address book record that you want to use for the default selected during checkout, and enable its Default field. B2B Commerce for Visualforce uses whichever record where Default was most recently enabled as the default address during checkout.

W-7447431

Fixed potential security vulnerabilities in some extension point classes.

UPGRADE IMPACT: This fix deprecates the ccrz.cc_hk_EffectiveAccount.fetchAccountData() method.

W-7441603 Fixed an issue where a menu didn't show more than three levels of nested menus.
W-7402008

Fixed an issue where the CC Admin tab didn't load for a user whose admin profile didn't have Create access on the E_Foo__c object.

As a result of this change, a user with the admin profile can’t download files from CC Admin | Global Settings | Settings Loader.

W-7396481 Fixed an issue where the third line of a billing or shipping address didn't display in the order confirmation email.
W-7386336 Fixed an issue where subscriber extensions to the ccrz.cc_api_ShippingAndHandling extension point class couldn't perform HTTP/S callouts during Checkout flow.
# Patch Notes for B2B Commerce for Visualforce Summer ’18 (Version 4.9) Patch notes for B2B Commerce. ### Required Editions
Salesforce Compatibility Salesforce Classic and Lightning Experience for Enterprise, Performance, Unlimited, and Developer editions.

B2B Commerce Compatibility

Any org updating to or installing a patch for B2B Commerce for Visualforce Summer ’18 (version 4.9)

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2b_commerce_release_notes-264-0-0-production-enus/dd2bc651-f664-4278-bce2-a3d325362afb/images/icon_tip.png) Tip - If you install a particular build in a sandbox and test and validate against that version, ensure that you also install the _same_ build in production. For example, if you install build 3.136.1 in a sandbox, ensure that you also install build 3.136.1 in production. - Make sure that you find the correct link for your org type before you proceed with installing a patch. For example, if you're already logged in to a production org, select the URL for a production org, not a sandbox. Reverting or canceling an installation isn't always possible. - If you're installing B2B Commerce for Visualforce for the _first time_, install the most recent patch so that your implementation has the latest fixes. First, complete the _Set Up a Storefront_ steps in the [B2B Commerce for Visualforce Help](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/b2b_commerce_visualforce.pdf), and then complete any required upgrade steps for each patch that precedes the build you installed. - Some fixes update default handlebars.js templates that render components on the storefront. If you've previously overridden a default template that receives a fix, reimplement your customizations based on the fixed version of the default template. This step ensures that custom code in your solution receives the benefit of the patch's fix. ## 3.136.48—March 1, 2024 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-48 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-48
ID Fix
W-14628873

Added the ability to filter the static resources that the ccrz.cc_util_UserInterface API utility class queries. This query includes static resources that contain your storefront's product images, theme files, and so on. This enhancement works around limits in your org if you've installed multiple managed packages, and allows you to specify the static resource namespaces that you want to query.

UPGRADE IMPACT: To implement this filter in your org, create metadata for a new configuration in the User Interface module that uses the API name nsList. Then, in your storefront settings, set the value of this configuration to a comma-separated list of the namespaces that you want to query. Avoid spaces between comma values, and be sure to include the default ccrz namespace in the list. For example, enter ccrz,other-namespace where other-namespace is a custom namespace that you want to include. For more information, see Create Metadata for the Namespace List Configuration Added in a Patch in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

## 3.136.47—April 4, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-47 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-47 | ID | Fix | | --- | --- | | W-11148750 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.12.1 to 1.13.2 and jquery.validate.js from 1.17.0 to 1.19.5. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.2/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.5) release notes. | ## 3.136.43—January 31, 2022 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-43 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-43 | ID | Fix | | --- | --- | | W-9877344 | Upgraded the versions of these JavaScript libraries distributed with the managed package: handlebars.js from 4.7.6 to 4.7.7 and underscore.js from 1.9.1 to 1.13.1. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [handlebars.js release notes](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md) and [underscore.js release notes](https://github.com/jashkenas/underscore/releases/tag/1.13.1). | | W-9811683 | Fixed a potential vulnerability related to the My Orders section of the My Account page. | | W-9811541 | Fixed an issue where an admin could potentially inject cross-site scripting (XSS) when creating custom configuration modules. | ## 3.136.41—March 25, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-41 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-41
ID Fix
W-8509440

Upgraded the version of the following default third-party JavaScript libraries that the managed package distributes:

  • bootstrap.js to 3.4.1 (for Bootstrap 3-enabled themes only)
  • handlebars.js to 4.7.6
  • jquery-ui-custom.js to 1.12.1

This change updates the ccrz.cc_hk_UserInterface.standardIncludes extension point method. For more information about the changes in these versions, see the appropriate release notes:

W-8115337 Fixed an issue where a subscription for a kit or dynamic kit didn't correctly evaluate recurring cost when adding to a cart or after pricing the cart.
## 3.136.39—September 23, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-39 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-39
ID Fix
W-8032425

Fixed an issue where products with a significant number of price list items were excluded from the product index batch jobs, due to Apex governor limits. This fix adds two storefront configuration settings in the Product Indexing module, Override Default Batch Size and Custom Batch Size. Set values for these configurations to fine-tune the performance of your product index batch jobs.

UPGRADE IMPACT: After you install patch 3.136.39, create metadata for the Override Default Batch Size and Custom Batch Size configurations in the Product Indexing module. For more information, see Create Metadata for the Namespace List Configuration Added in a Patch in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

W-7976710

Enabled the Secure attribute for the following cookies:

  • apex__cc_anonymous_Country
  • apex__cc_anonymous_Currency
  • apex__cclgtkn
  • apex__currCartId
  • apex__effacc

This attribute ensures that the managed package sends cookie data securely through an encrypted request over HTTPS protocol. For more information, see:

## 3.136.38—August 26, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-38 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-38
ID Fix
W-7765184

Fixed an issue where a buyer wasn't able to log in to the storefront. This issue occurred in an org that's resolved the security alerts for preventing unauthorized guest user access to their storefront data. If the user configured as the Default Record Owner owned multiple active carts that were abandoned, the heap size filled up. As a result, no registered users could log in.

UPGRADE IMPACT: This fix updates the ccrz.ccLogicUserLogin.determineStartURL() logic provider method in the following ways:

  • The call to ccrz.ccApiUser.fetch() specifies ccrz.ccService.QUERYLIMIT => 1 and ccrz.ccService.WODAO => True.
  • The call to ccrz.ccApiCart.fetch() specifies ccrz.ccService.QUERYLIMIT => 1.
W-7561295

Updated the default ccrz.cc_hk_UserInterface extension point class to distribute the latest stable, secure versions of jQuery (3.5.1) and jQuery Migrate (3.3.0).

UPGRADE IMPACT: This upgrade also introduces a breaking change where non-void HTML elements that use self-closing tags, such as <div/>, no longer render. This HTML compatibility change affects the default Handlebars templates included in the managed package, and can affect front-end extensions or customizations that you've already developed. For more details about the jQuery upgrade and the impact on the HTML used in your storefront, see the Salesforce Knowledge article, Upgrade to jQuery 3.5.1 in B2B Commerce for Visualforce Spring ’20 (Version 4.12) or Earlier.

After you install patch 3.136.38, create metadata for the Restore Legacy jQuery HTML Prefilter configuration in the User Interface module. For more information, see Create Metadata for the Namespace List Configuration Added in a Patch in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

## 3.136.37—June 16, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-37 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-37
ID Fix
W-7453551

Fixed potential security vulnerabilities in some extension point classes.

UPGRADE IMPACT: This fix deprecates the ccrz.cc_hk_EffectiveAccount.fetchAccountData() method.

W-7386287 Fixed an issue where subscriber extensions to the ccrz.cc_api_ShippingAndHandling extension point class couldn't perform HTTP/S callouts during Checkout flow.
W-7371926 Fixed an out-of-date URL in an Apex method comment.
## 3.136.36—December 20, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-36 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-36
ID Fix
Multiple items

Fixed several issues that ensure that guest users can continue to self-register and create carts after you complete the required security alerts for guest security.

UPGRADE IMPACT: Complete the following:

## 3.136.34—November 21, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-34 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-34
ID Fix
W-6834090

Fixed an issue where an order item’s status didn’t appear on the Order View page.

UPGRADE IMPACT: With this change, the orderItemStatus field is now included in SZ_XL return data for the ccrz.ccApiOrder.fetchOrderItems() method.

## 3.136.33—October 16, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-33 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-33
ID Fix
Multiple items

Fixed several issues that enhance the security of B2B Commerce for Visualforce custom objects against unauthorized access. These fixes don’t require any action after you upgrade.

This patch removes a requirement to have the View All Users permission enabled on your storefront’s guest user profile. This permission was previously required to work around a Digital Experiences security fix. If you previously enabled this permission, update your guest user profile to disable the View All Users permission. This change ensures that you’re providing the least privilege to guest users to help keep your storefront data secure, while still supporting self-registration.

## 3.136.31—September 26, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-31 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-31
ID Fix
W-6546195

Fixed an issue where a product with a start date that’s valid for the current date didn’t appear on the storefront. This issue occurred because the product index included only price list items whose date ranges were valid for the time that the index was built. For example, a product with a start date of September 1 didn’t appear on the storefront on September 1, because the product index was built on August 15. With this fix, a price list item with a future Start Date is now included the next time you build a new product index.

If you start including future-dated products, the size of th e index and time required to build it both increase.

W-6536688 Fixed a rare issue where the Product List page timed out while querying for products and filters.
W-6422621 Fixed an issue where the storefront reverted to the default locale after a buyer selected a non-default locale and then failed a login attempt. This issue occurred for storefronts that support more than one locale and have enabled the Locale Switcher widget.
## 3.136.30—August 28, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-30 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-30
ID Fix
W-6501738

Fixed an issue where orgs with B2B Commerce for Visualforce Summer ’18 (version 4.9) patch 3.136.29 or 3.136.28 couldn't upgrade. This issue occurred only when trying to upgrade to any build of B2B Commerce for Visualforce Spring ’19 (version 4.10) build 3.142 or later.

UPGRADE IMPACT: If this scenario applies to you, install patch 3.136.30 before you install 3.142 or later.

## 3.136.29—August 9, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-29 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-29 | ID | Fix | | --- | --- | | W-6411737 | Fixed a rare issue with JavaScript null responses that could occur when using a logic override. | ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2b_commerce_release_notes-264-0-0-production-enus/dd2bc651-f664-4278-bce2-a3d325362afb/images/icon_important.png) Important If you've installed this patch and you want to upgrade to B2B Commerce for Visualforce Spring ’19 (version 4.10) build 3.142 or later, first install patch 3.136.30. Then, upgrade to 3.142. ## 3.136.28—July 16, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-28 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-28 | ID | Fix | | --- | --- | | W-6300945 | Fixed an issue where the estimated tax amount that’s calculated during checkout could be circumvented. | | W-6295269 | Fixed an issue where a user couldn't place an order when the default checkout flow was overridden to remove the first two checkout steps. | | W-6290383 | Fixed an issue where the Checkout page failed due to SOQL limits. This issue occurred when you enabled LLI checkout and set the Show Ship Options configuration of the Shipping Options module to FALSE. | | W-6289693 | Fixed an issue where checkout couldn’t complete when using CSR flow. This change updates Visualforce page access and object settings in the default B2B Commerce CSR permission set. | | W-6285281 | Fixed an issue where passing transaction payment data as a JSON string or `Map` for a `ccrz.ccApiCart.place()` method call caused the call to fail. | ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2b_commerce_release_notes-264-0-0-production-enus/dd2bc651-f664-4278-bce2-a3d325362afb/images/icon_important.png) Important If you've installed this patch and you want to upgrade to B2B Commerce for Visualforce Spring ’19 (version 4.10) build 3.142 or later, first install patch 3.136.30. Then, upgrade to 3.142. ## 3.136.25—June 25, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-25 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-25
ID Fix
W-6282204

Fixed an issue where B2B Commerce for Visualforce failed to transfer ownership of a cart from a guest user to an authenticated user once the user self-registered. This failure occurred only when all following conditions were true:

  • Your organization-wide default external access for the User object was set to Private.
  • The Experience Cloud site’s guest user profile had the View All Users permission disabled.
  • The Site User Visibility sharing setting was disabled.
W-6260796 Fixed an issue where no error appeared when a buyer created an address and saved it without entering any values for the new address record fields.
W-6246553 Fixed an issue where an extra <head> tag appeared in the <body> tag as a result of the apex:outputPanel layout for the bot-enabled Product Detail page.
W-6195953 Added an error message for tax calculation on the Order Review page. To customize the error message, create a page label record named Checkout_TaxCalculationError.
## 3.136.23—June 4, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-23 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-23 | ID | Fix | | --- | --- | | W-6144244 | Fixed CRUD permissions for the CC Product Indices custom object on the default B2B Commerce for Visualforce Admin permission set. If you previously updated CRUD permissions on CC Product Indices for the permission set assigned to your admin users, this fix doesn’t affect those permissions. | | W-6123268 | Fixed an issue where the Attribute Items window on the Order Review page incorrectly calculated the subtotal of ADC products. | | W-6053991 | Changed the behavior when deleting product index, site index, and product spec index records. Previously, B2B Commerce for Visualforce deleted the records but they were still available in the recycle bin, which affected performance when querying index data. Now, B2B Commerce for Visualforce permanently deletes the records in the recycle bin as part of the delete operation. | | W-6004098 | Fixed an issue where adding multiple complex products to a cart at one time caused errors. | ## 3.136.22—May 21, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-22 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-22
ID Fix
Multiple items

Fixed several minor issues to enhance the admin experience when managing B2B Commerce for Visualforce custom objects. These fixes relate to Create-Read-Update-Delete (CRUD) access and field-level security (FLS) on B2B Commerce for Visualforce custom objects.

This patch also includes a fix that enables a Cross-Site Request Forgery (CSRF) protection checkbox on all B2B Commerce Visualforce pages used for rendering CC Admin. These fixes don't require any action after you install this patch.

## 3.136.21—May 16, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-21 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-21 | ID | Fix | | --- | --- | | W-6098479 | Fixed an issue where the Product Detail page couldn't show a decimal spec value for a spec with the Slider filter type. | ## 3.136.20—May 15, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-20 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-20
ID Fix
Multiple items

Fixed several minor issues to enhance the admin experience when managing B2B Commerce for Visualforce custom objects. These fixes relate to Create-Read-Update-Delete (CRUD) access and field-level security (FLS) on B2B Commerce for Visualforce custom objects.

UPGRADE IMPACT: After installing this patch, update the permission set assigned to your admin users to include Create, Read, Edit, and Delete access on CC Product Indices. This step is required so that you can continue to build new product index records and keep the product data up to date on your storefront.

W-6076320

Removed cc_admin_Coupon.page as the default button behavior for the CC Coupon object. Now, clicking the New, Edit, or Clone button on the CC Coupon object uses a standard page, which removes all field dependency flows previously available with cc_admin_Coupon.page. The standard page also makes visible fields that were previously automated.

If your implementation doesn't currently use cc_admin_Coupon.page, this change doesn't impact you. Any existing customizations you've made to coupon pages for button behavior are preserved after you upgrade.

## 3.136.18—April 17, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-18 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-18 | ID | Fix | | --- | --- | | W-5998763 | Fixed an issue where the name of a contact's account didn't display correctly in the Account Information section of the My Account page. | | W-5974577 | Fixed an issue that prevented the localization of breadcrumb category names. | | W-5967005 | Fixed an issue where the shipping options displayed in checkout were not filtering by the buyer’s currency. | ## 3.136.17—March 25, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-17 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-17 | ID | Fix | | --- | --- | | W-5950412 | Fixed an issue where a page section tab on the Product Detail page showed padded zeroes for product spec values. | ## 3.136.16—March 11, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-16 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-16 | ID | Fix | | --- | --- | | W-5920710 | Fixed an issue where an error occurred when a buyer logged in to a storefront configured to use a gross layout override. | | W-5912442 | Fixed an issue where a cart's Contact field was empty when a guest user added a product to the cart and then logged in. | | W-5908399 | Fixed an issue where a buyer couldn't remove a filter on the Product List page version 2.0 when the filter value contained only numeric digits. | | W-5893268 | Fixed an issue where the Product Compare page didn't show a product with a status of Not Orderable. | | W-5891541 | Fixed an issue where the menu in the navigation bar obstructed fields of the date picker widget on the My Invoices page. This issue occurred only when the browser window width was less than 990-pixels wide and the menu contained more than one row of items. | | W-5832600 | Fixed an issue where the Product List page version 2.0 didn't show a buyer's entitled prices after loading the next page of results. | ## 3.136.13—February 19, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-13 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-13 | ID | Fix | | --- | --- | | W-5858678 | Added better error handling when sorting results on the Product List page by Sequence. When a buyer loads more results, but a product is missing a Sequence value, the page now shows an error and the ccLog output includes details. | | W-5853949 | Fixed an issue where a buyer couldn't check out with a bundle product. This issue occurred when the bundle product had a status of Released, and the bundle contained a component product with a status of Not Orderable. | | W-5833040 | Fixed an issue where a buyer could still edit a postal code during checkout even when addresses were configured to be non-editable. | | W-5831908 | Fixed an issue where the Component\_MiniCart\_Items page label didn't display correctly in the header. | ## 3.136.12—December 17, 2018 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-12 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-12 | ID | Fix | | --- | --- | | W-5682736 | Fixed an issue where a customer service representative (CSR) user couldn't see a buyer's shipping addresses during line-level independent checkout. | ## 3.136.11—December 10, 2018 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-11 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-11 | ID | Fix | | --- | --- | | W-5656373 | Fixed an issue where the same shipping address was incorrectly applied to all shipping groups during line-level independent checkout. This issue occurred when a buyer used the address book to select different shipping addresses for different shipping groups. | ## 3.136.10—November 26, 2018 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-10 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-10 | ID | Fix | | --- | --- | | W-5621420 | Improved performance when a buyer checks out on a storefront with multiple supported currencies. | ## 3.136.9—November 16, 2018 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-9 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-9
ID Fix
W-5602620 Fixed an issue where a single quote character in a product name caused an error when sorting by name on the Product List page version 2.0.
W-5544210

Improved SEO support on a storefront by expanding the number of pages with canonical URLs. Previous versions of B2B Commerce for Visualforce created a canonical link for only the Product Detail page. Also, the canonical link was added only when both of the following conditions were true:

  • You enabled friendly URLs.
  • You assigned the product to a category.

Now, B2B Commerce for Visualforce automatically creates a canonical link for the Home page, Product List page, and Product Detail page. These canonical links are created regardless of whether you enable friendly URLs or whether you assign a product to a category.

UPGRADE IMPACT: The following API changes support this change. If you previously created extensions or overrides, adjust your custom code to account for the changes where necessary.

  • The ccrz.cc_hk_UserInterface extension point has a new method, canonicalUrlInclude(), which handles returning the URLs for the Home page, Product List page, and Product Detail page.
  • The ccrz.ccApiProduct.getUrlFor() method includes a new key in the input map, ccrz.ccApiProduct.PRODUCTSKULIST, that also affects how the ccrz.ccApiProduct.PRODUCTURLMAP key in the output map returns data. The ccrz.ccLogicProductUrlFor class is also updated to handle this processing.
W-5544206

Improved SEO support on a storefront by changing the way that links to the Home page, Product List page, and Product Detail page are managed. These links now use href attribute values that B2B Commerce for Visualforce generates when the page loads. Previous versions of B2B Commerce for Visualforce navigated one of these links during the JavaScript onClick event, but search engine bots can’t crawl these types of links. These changes apply to both the Bootstrap 3 and classic page templates.

UPGRADE IMPACT:

  • If you haven’t created Handlebar template overrides for either the Bootstrap 3 or classic interface, this change doesn't affect your storefronts after upgrading.
  • If you have created Handlebar template overrides, update your code with required changes. See Update Handlebar Template Overrides for SEO Improvements in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.
## 3.136.6—November 13, 2018 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-6 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-6
Fix ID
W-5595790 Fixed an issue where building a product index on a storefront that supports multiple locales failed due to SOQL query limits.
W-5594250

Added a configuration in the Product List module, Spec Value Query Limit. This configuration specifies the maximum number of spec value records to search when returning results on the Product List page version 2.0.

The complexity of your product data can affect the scope of the query, regardless of the limit you specify in this configuration.

UPGRADE IMPACT:

  • If you're upgrading from a previous build of B2B Commerce for Visualforce Summer ’18 (version 4.9), manually create metadata for this configuration. See Create Metadata for the Namespace List Configuration Added in a Patch in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.
  • If you're upgrading from any version earlier than B2B Commerce for Visualforce Summer ’18 (version 4.9)—such as any CloudCraze build—this configuration is available. The default value is 20000. To change this limit, enter a new value with no thousands operator.
W-5590491 Fixed an issue where the product index included products whose price list end dates already expired.
W-5571361 Fixed an issue that reduces the impact of multiple supported locales when generating the category tree.
W-5555745 Fixed an issue where the Product List page version 2.0 didn't display the total count of results. This issue occurred when the Show Total Product Count and Create Master Index For All Currencies configurations were enabled.
W-5542463 Fixed an issue where a user assigned to the site's guest user profile couldn't self-register after a new installation.
## 3.136.5—October 23, 2018 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-5 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-5 | ID | Fix | | --- | --- | | W-5528305 | Fixed an issue where a product with a spec value that included an escape character didn't appear on the Product List page. Examples of escape characters include single or double quotes. This issue occurred when a buyer filtered results on the Product List page by that spec value. | ## 3.136.4—October 10, 2018 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-4 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-4
ID Fix
W-5507551

Fixed an issue, introduced in B2B Commerce for Visualforce Summer ’18 (version 4.9) patch 3.136.3, that prevented loading or upgrading the available global data in CC Admin.

UPGRADE IMPACT: If you previously installed B2B Commerce for Visualforce Summer ’18 (version 4.9) patch 3.136.3, upgrade to this patch.

W-5487834 Fixed an issue where overriding price logic did not correctly handle effective dates for price list items.
W-5465788 Fixed an issue where a price in the product index did not properly round to two decimal places. This issue affected only some orgs.
W-5278408 Fixed an issue to improve performance when pricing related products on the Shopping Cart page.
W-5276827 Fixed an issue to improve performance when loading the Home page.
W-5196144

Fixed an issue to improve performance when loading the Shopping Cart page. This fix slightly modifies the format of subscription data (ccrz__E_SubProdTerm__c) available to the ccrz.cc_api_PriceAdjustment or ccrz.cc_api_CartExtension extension points.

UPGRADE IMPACT: The version you're upgrading form determines whether this performance fix is enabled by default.

  • If you're upgrading from a previous build of B2B Commerce for Visualforce Summer ’18 (version 4.9), this fix is enabled by default. To disable the fix and use legacy cart fetch logic, manually create metadata for the Previous Cart Fetch Logic configuration. Then, set this configuration to TRUE. See Create Metadata for the Namespace List Configuration Added in a Patch in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.
  • If you're upgrading from any version earlier than B2B Commerce for Visualforce Summer ’18 (version 4.9), this fix is disabled by default. To enable the fix, change the value of the Previous Cart Fetch Logic configuration of the Cart module to FALSE. When this configuration is TRUE, B2B Commerce for Visualforce uses legacy cart fetch logic.

If you enable the performance fix and you're using ccrz.cc_api_PriceAdjustment or ccrz.cc_api_CartExtension, carefully evaluate the ccrz__E_SubProdTerm__c data those extension points are processing. If necessary, update your extensions to accommodate the changed format.

## 3.136.1—September 4, 2018 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-1 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-136-1 Sandbox org URL https://sfdc.co/b2bcommerce-pkg-sandbox-3-136-1 Production org URL https://sfdc.co/b2bcommerce-pkg-prod-3-136-1
ID Fix
W-5374299 Fixed an issue where the job that creates the product index is not properly scoped to the price list items of the master price list. This issue affected only solutions that use the master index for all currencies strategy for product index records.
W-5322150 Fixed an issue where a product media record displayed even when the Enabled field wasn't selected.
W-5315671

Fixed an issue where a CC Cart Item record's Unit of Measure field was empty instead of matching the corresponding CC Product record's value.

UPGRADE IMPACT: To update your existing CC Cart Item records, execute the following anonymous Apex code from the Developer Console:

System.debug('---start---');
Savepoint sp = Database.setSavepoint();
List<ccrz__E_CartItem__c> cartItems = [SELECT Id,ccrz__UnitOfMeasure__c,ccrz__Product__r.ccrz__UnitOfMeasure__c,ccrz__Cart__r.Id
                                    FROM ccrz__E_CartItem__c
                                    WHERE ccrz__UnitOfMeasure__c=NULL AND ccrz__Product__r.ccrz__UnitOfMeasure__c!=NULL];
System.debug('count: '+cartItems.size());
try {
    for(ccrz__E_CartItem__c ci : cartItems) {
        if (String.isNotBlank(ci.ccrz__Product__r.ccrz__UnitOfMeasure__c)) {
            ci.ccrz__UnitOfMeasure__c = ci.ccrz__Product__r.ccrz__UnitOfMeasure__c;
            System.debug('updating ' + ci.Id + ' of Cart ' + ci.ccrz__Cart__r.Id);
        }
    }
    update cartItems;
} catch(DMLException dmle) {
    Database.rollback(sp);
    System.debug(dmle.getMessage());
} finally {
    System.debug('---end---');
}
# Patch Notes for B2B Commerce for Visualforce Summer ’19 (Version 4.11) Patch notes for B2B Commerce. ### Required Editions
Salesforce Compatibility Salesforce Classic and Lightning Experience for Enterprise, Performance, Unlimited, and Developer editions.

B2B Commerce Compatibility

Any org updating to or installing a patch for B2B Commerce for Visualforce Summer ’19 (version 4.11)

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2b_commerce_release_notes-264-0-0-production-enus/dd2bc651-f664-4278-bce2-a3d325362afb/images/icon_tip.png) Tip - If you install a particular build in a sandbox and test and validate against that version, ensure that you also install the _same_ build in production. For example, if you install build 3.145.3 in a sandbox, ensure that you also install build 3.145.3 in production. - Make sure that you find the correct link for your org type before you proceed with installing a patch. For example, if you're already logged in to a production org, select the URL for a production org, not a sandbox. Reverting or canceling an installation isn't always possible. - If you're installing B2B Commerce for Visualforce for the _first time_, install the most recent patch so that your implementation has the latest fixes. First, complete the _Set Up a Storefront_ steps in the [B2B Commerce for Visualforce Help](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/b2b_commerce_visualforce.pdf), and then complete any required upgrade steps for each patch that precedes the build you installed. - Some fixes update default handlebars.js templates that render components on the storefront. If you've previously overridden a default template that receives a fix, reimplement your customizations based on the fixed version of the default template. This step ensures that custom code in your solution receives the benefit of the patch's fix. ## 3.145.30—March 1, 2024 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-30 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-30
ID Fix
W-14628880

Added the ability to filter the static resources that the ccrz.cc_util_UserInterface API utility class queries. This query includes static resources that contain your storefront's product images, theme files, and so on. This enhancement works around limits in your org if you've installed multiple managed packages, and allows you to specify the static resource namespaces that you want to query.

UPGRADE IMPACT: To implement this filter in your org, create metadata for a new configuration in the User Interface module that uses the API name nsList. Then, in your storefront settings, set the value of this configuration to a comma-separated list of the namespaces that you want to query. Avoid spaces between comma values, and be sure to include the default ccrz namespace in the list. For example, enter ccrz,other-namespace where other-namespace is a custom namespace that you want to include. For more information, see Create Metadata for the Namespace List Configuration Added in a Patch in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

## 3.145.29—August 4, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-29 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-29 | ID | Fix | | --- | --- | | W-13880591 | Fixed a potential vulnerability related to cross-site scripting (XSS). | ## 3.145.28—August 4, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-28 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-28 | ID | Fix | | --- | --- | | W-13171991 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.13.1 to 1.13.2 and jquery.validate.js from 1.19.4 to 1.19.5. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.2/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.5) release notes. | ## 3.145.27—August 29, 2022 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-27 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-27 | ID | Fix | | --- | --- | | W-11148655 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.12.1 to 1.13.1 and jquery.validate.js from 1.19.0 to 1.19.4. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.1/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.4) release notes. | ## 3.145.26—December 8, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-26 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-26 | ID | Fix | | --- | --- | | W-9877324 | Upgraded the versions of these JavaScript libraries distributed with the managed package: handlebars.js from 4.7.6 to 4.7.7 and underscore.js from 1.9.1 to 1.13.1. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [handlebars.js release notes](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md) and [underscore.js release notes](https://github.com/jashkenas/underscore/releases/tag/1.13.1). | | W-9811677 | Fixed a potential vulnerability related to the My Orders section of the My Account page. | | W-9811589 | Fixed a potential vulnerability related to cross-site scripting (XSS) when modifying storefront settings in CC Admin. | | W-9811528 | Fixed an issue where an admin could potentially inject cross-site scripting (XSS) when creating custom configuration modules. | ## 3.145.25—April 14, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-25 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-25 | ID | Fix | | --- | --- | | W-9081916 | Fixed an issue where autocomplete suggestions displayed on top of the Quick Order widget's input field, rather than below the field as expected. | ## 3.145.24—March 10, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-24 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-24 | ID | Fix | | --- | --- | | W-8935212 | Fixed an issue where a JavaScript error occurred and prevented autocomplete in the Quick Order widget from working correctly. | ## 3.145.23—March 4, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-23 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-23
ID Fix
W-8246158

Fixed an issue where the Checkout page returned an Apex error that prevented checkout flow from completing successfully. This issue occurred when both of the following conditions were satisfied:

  • The Address Owned by User configuration of the Checkout module (co.uown) was TRUE.
  • A customer service representative (CSR) was logged in to the storefront using CSR flow and selected an effective account.

UPGRADE IMPACT: After you upgrade the managed package, update the Checkout module's Address Owned by User configuration to apply to all pages instead of only the Checkout page (co). Then, build and activate a new configuration cache.

## 3.145.22—December 7, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-22 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-22
ID Fix
W-8433759 Fixed an issue where the Quick Order widget didn't show autocomplete suggestions. This issue occurred after a buyer clicked Add More to add extra rows and entered three or more characters of a SKU to add.
W-8291160 Fixed a rare issue where a product was added to an incorrect cart when a buyer was logged in with an effective account.
W-8147969 Upgraded the version of the handlebars.js library distributed with the managed package to 4.7.6. This change updates the ccrz.cc_hk_UserInterface.standardIncludes method for both the Bootstrap 3 and classic interfaces. For more information about the changes in version 4.7.6, see the Handlebars release notes.
W-8115324 Fixed an issue where a subscription for a kit or dynamic kit didn't correctly evaluate recurring cost when adding to a cart or after pricing the cart.
W-8018995

Fixed an issue where the sharing rules for the following custom objects potentially exposed personal identifiable information (PII) in carts, orders, and addresses:

  • CC Cart
  • CC Contact Address
  • CC Order

These sharing rules were previously required for a storefront that allows a guest buyer to create a cart and check out. This fix removes the dependency on the specific sharing rules. Guest user carts and checkout continue to behave correctly without these rules.

UPGRADE IMPACT: After you install the patch, to remove the affected sharing rules and update sharing attributes in the default order confirmation email template, complete the steps in Remove Sharing Rules for Carts, Orders, and Addresses in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

## 3.145.21—September 16, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-21 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-21
ID Fix
W-7961815

Enabled the Secure attribute for the following cookies:

  • apex__cc_anonymous_Country
  • apex__cc_anonymous_Currency
  • apex__cclgtkn
  • apex__currCartId
  • apex__effacc

This attribute ensures that the managed package sends cookie data securely through an encrypted request over HTTPS protocol. For more information, see:

W-7953270 Fixed an issue where clicking the Show Pricing Tiers button on the Shopping Cart page caused the API to query all the user's entitled products. For price lists with a significant number of price list items, this issue could result in Apex CPU Limit exceptions.
W-7914390

Fixed an issue where duplicate internationalized spec values appeared on the Product Compare page. This issue occurred when both of the following conditions were true:

  • At least two CC Spec records had the same Name (such as Color), but different Locales (such as en_US and ja_JP).
  • A product had a spec value assigned for each spec.
## 3.145.20—August 17, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-20 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-20
ID Fix
W-7768452 Fixed an issue where the Apex batch jobs that refresh product index records failed because of Apex governor limits. This issue occurred when a product had over 5,000 price list items assigned, and one of the price lists was the storefront's master price list..
W-7765030

Fixed an issue where a buyer wasn't able to log in to the storefront. This issue occurred in an org that's resolved the security alerts for preventing unauthorized guest user access to their storefront data. If the user configured as the Default Record Owner owned multiple active carts that were abandoned, the heap size filled up. As a result, no registered users could log in.

UPGRADE IMPACT: This fix updates the ccrz.ccLogicUserLogin.determineStartURL() logic provider method in the following ways:

  • The call to ccrz.ccApiUser.fetch() specifies ccrz.ccService.QUERYLIMIT => 1 and ccrz.ccService.WODAO => True.
  • The call to ccrz.ccApiCart.fetch() specifies ccrz.ccService.QUERYLIMIT => 1.
W-7514943

Updated the default ccrz.cc_hk_UserInterface extension point class to distribute the latest stable, secure versions of jQuery (3.5.1) and jQuery Migrate (3.3.0).

UPGRADE IMPACT: This upgrade also introduces a breaking change where non-void HTML elements that use self-closing tags, such as <div/>, no longer render. This HTML compatibility change affects the default Handlebars templates included in the managed package, and can affect front-end extensions or customizations that you've already developed. For more details about the jQuery upgrade and the impact on the HTML used in your storefront, see the Salesforce Knowledge article, Upgrade to jQuery 3.5.1 in B2B Commerce for Visualforce Spring ’20 (Version 4.12) or Earlier.

## 3.145.19—June 16, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-19 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-19 | ID | Fix | | --- | --- | | W-7665567 | Fixed an issue where component product images didn't appear on a dynamic kit's Product Detail page. This issue occurred when adding two of the same component products to a dynamic kit. The products image for the second product didn't appear. | | W-7646050 | Fixed an issue where the `ccrz.ccServiceProductSpecIndex` data service provider class incorrectly queried `ccrz__E_ProductSpecIndex__c` records for all locales instead of filtering by a specific locale. This issue only affected performance, and didn’t impact any functionality. | | W-7575793 | Fixed an issue where a buyer was redirected to a URL from a promotion in the current browser window instead of a new browser window. This issue occurred for a promotion where Location Type is Banner, Link Type is URL, and New Window is enabled. This issue occurred only when the storefront had Google Analytics set up. | | W-7538045 | Fixed an issue where a buyer couldn’t click Add to Cart from the Sellers widget on the Product Detail page. | | W-7537647 | Fixed an issue where the Reorder widget didn't filter available orders correctly. This issue occurred when the Filter Orders Based on Owner storefront setting was disabled. But, the Reorder widget continued to filter orders based on whether the Owner field matched the logged-in user's ID. | ## 3.145.18—May 12, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-18 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-18
ID Fix
W-7517750

Fixed an issue where an error occurred when showing shipping options during checkout. This issue occurred after the following sequence of events:

  1. A buyer first selected a shipping option during checkout.
  2. The buyer exited checkout flow, returned to their cart, and changed the cart's contents in such a way that the selected shipping option became invalid.
  3. Finally, the buyer returned to the checkout flow.

This fix removes the invalid shipping option from the CC Cart record when proceeding through checkout again.

W-7502320 Fixed an issue where files in a static resource, such as CSS and JavaScript files, were repeatedly fetched and stored in the web browser cache. This fix removes query string parameters from the URL paths that B2B Commerce for Visualforce generates for a page's <script> or <link> tags.
W-7488085 Fixed an issue where CSR flow didn't respect the Filter Orders Based on Owner storefront setting.
W-7488009 Fixed an issue when enabling the AddrReadOnly field on a CC Contact Address record. The value of this field didn't propagate to the related CC Contact Address records that B2B Commerce for Visualforce creates for a cart, order, or invoice.
W-7484695 Fixed an issue where the billing and shipping addresses in the Order Review section of the Checkout page showed data from the wrong object. This issue occurred when using effective accounts. The Checkout page didn't show the value of the Partner ID field from the selected account's default billing and shipping addresses. Instead, the page incorrectly showed the value of the Account Number field from the selected account's corresponding account record.
W-7481065 Fixed an issue where the Owner column in the My Orders section of the My Account page showed an incorrect value. This issue occurred when the Filter Orders Based on Owner storefront setting was disabled.
W-7456715 Fixed an issue where a buyer couldn't add a product to the cart when the product's SKU value exceeded 18 characters. This issue occurred when the buyer clicked the Add to Cart button from the Product Detail page.
W-7453539

Fixed potential security vulnerabilities in some extension point classes.

UPGRADE IMPACT: This fix deprecates the ccrz.cc_hk_EffectiveAccount.fetchAccountData() method.

W-7441605 Fixed an issue where a menu didn't show more than three levels of nested menus.
W-7386334 Fixed an issue where subscriber extensions to the ccrz.cc_api_ShippingAndHandling extension point class couldn't perform HTTP/S callouts during Checkout flow.
W-7343677

Fixed an issue where the Checkout page didn't reliably load the account's default shipping or billing address. Previously, B2B Commerce for Visualforce allowed multiple shipping or billing account address book records to have the Default field set. This fix enforces a limit of one shipping and one billing account address book entry per account.

UPGRADE IMPACT: Edit the account address book record that you want to use for the default selected during checkout, and enable its Default field. B2B Commerce for Visualforce uses whichever record where Default was most recently enabled as the default address during checkout.

## 3.145.17—April 10, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-17 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-17
ID Fix
W-7401997

Fixed an issue where the CC Admin tab didn't load for a user whose admin profile didn't have Create access on the E_Foo__c object.

As a result of this change, a user with the admin profile can’t download files from CC Admin | Global Settings | Settings Loader.

W-7398539 Added an enhancement to reduce CPU usage when retrieving Schema information. For example, this fix applies when adding a product to a cart and validating the cart's currency ISO code against the org's Active Currencies.
W-7396478 Fixed an issue where the third line of a billing or shipping address didn't display in the order confirmation email.
W-7371918 Fixed an out-of-date URL in an Apex method comment.
W-7350567

Fixed an issue where the Reorder widget didn't show the correct recent order history for a selected effective account. This issue occurred when:

  1. The Filter Effective Account configuration of the My Account module was TRUE.
  2. The buyer placed an order from one child account.
  3. Then, the buyer selected a different effective child account.

The Reorder widget incorrectly showed all orders from the parent-child account hierarchy, instead of just the selected child account's orders.

## 3.145.15—March 17, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-15 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-15 | ID | Fix | | --- | --- | | W-7323750 | Fixed a rare issue that affected performance after migrating to sObject configuration from legacy page settings. | | W-7320777 | Fixed an issue where a standard storefront page executed the logic for returning the static, bot-enabled breadcrumb component. | ## 3.145.14—March 4, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-14 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-14
ID Fix
W-7246931 Fixed an issue where the Product List page (version 2.0 or 1.0) showed an incorrect product total. This issue occurred when the search results included a price list item with a Start Date value set to a future date.
W-7246924 Fixed an issue where the PDF sent from the Email Cart button on the Shopping Cart page didn't show product prices. This issue occurred when the schema setting, Restrict access to custom settings, was enabled. This schema setting was likely enabled in your org for the critical update, Require Customize Application Permission for Direct Read Access to Custom Settings.
W-7185761

Fixed an issue where a buyer wasn't able to add an aggregated product to a cart. This issue occurred if you previously installed B2B Commerce for Visualforce Summer ’19 (version 4.11) patch 3.145.13 or 3.145.12.

UPGRADE IMPACT: If you previously installed B2B Commerce for Visualforce Summer ’19 (version 4.9) patch 3.145.13 or 3.145.12, upgrade to this patch.

This patch also includes fixes originally available in patch 3.145.13.
ID Fix
W-7209148 Added an error message for the Shopping Cart page. The error appears when a cart item's Primary Attribute field doesn’t match the attributes in the corresponding price list item's Attribute Pricing field.
W-7181359 Added an error message that appears on the Forgot Password page when a buyer enters an invalid format for their email address.
W-7175766 Fixed an issue when pressing Enter (Windows) or Return (macOS) to rename a cart in the My Carts section of the My Account page. Pressing the keyboard button didn't apply the new name, and incorrectly redirected the buyer back to the My Account page.
W-7166397 Fixed an issue that caused anonymous users attempting to check out to be redirected to a Login page that didn't display their selected locale.
W-7138942 Fixed an issue where changing the storefront’s locale using the Locale Switcher widget dropped context-specific URL parameters from the current page. This issue forced the buyer to renavigate the storefront after selecting a locale.
W-7045007 Fixed an issue where the cart contents email sent from the Shopping Cart page didn’t show a unit price for an assembly product.
W-7018704

Fixed an issue in the Effective Account selector for an account name that contained a symbol (such as &). The account name rendered with the symbol’s HTML code (such as &amp;) instead of the symbol itself.

UPGRADE IMPACT: This fix updates the default EffAcctSel-Widget-View-Desktop Handlebars template. If you've previously overridden this default template, reimplement your customizations based on the fixed version of the default template. This step ensures that custom code in your solution receives the benefit of the fix.

This patch also includes fixes originally available in patch 3.145.12. | ID | Fix | | --- | --- | | W-7108826 | Fixed an issue where the Reorder widget failed to render due to a missing parameter. | | W-7040199 | Fixed an issue where B2B Commerce for Visualforce didn't properly post Google Analytics events based on product SKUs with only numeric characters, such as 123456. | ## 3.145.10—January 13, 2020 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-10 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-10
ID Fix
W-7074624 Fixed an issue where the Shopping Cart page (versions 2.0 and 1.0) removed items from the cart after updating cart item quantities to resolve validation errors.
W-7015925 Fixed an issue where the Product List page (version 1.0) performed a duplicate Apex remote action call. This issue occurred when the Join Filtering configuration of the Feature Filtering module was TRUE.
W-7000730 Fixed an issue where the Category Tree component wasn't included when overriding the default bot-enabled Home page, Product List page, or Product Detail page.
W-6985639 Fixed an issue where setting ccrz.ccApi.SZ_ASSC => false in the ccrz.ccApiCart.CLI_ENTITYNAME sizing map for a ccrz.ccApiCart.fetch() method call still completed the related call to the ccrz.ccApiProduct.fetch() method instead of skipping it.
W-6984928 Fixed an issue where a buyer couldn't switch between effective accounts when the Cart Mode configuration of the Effective Account module was set to SingleCart.
W-6971854 Fixed an issue where SEO metadata tags were empty when overriding the default bot-enabled Product Detail page.
W-6959093 Fixed an issue where the Save Address Book Default field failed. This issue occurred when a user that wasn't the Account owner attempted to manage the shared Account Address Book entries.
W-6763814

Replaced hard-coded text strings with the following localizable page labels:

  • LLI_CheckOut_Of in the Move Item window in LLI checkout
  • PaginatorOf on the Shipping step of LLI checkout
  • LLICheckout_SummaryWidget on the Shipping and Order Confirmation steps of LLI checkout
  • catalogSearchInc_QuickSearch in the Feature Filtering widget on the Product List page
## 3.145.9—December 16, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-9 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-9
ID Fix
Multiple items

Fixed several issues that ensure that guest users can continue to self-register and create carts after you complete the required security alerts for guest security.

UPGRADE IMPACT: Complete the following steps:

  1. Install patch 3.145.9 to upgrade the managed package. Be sure to update the available global data in the Data Loader page of CC Admin after you install the patch.
  2. Complete the steps in Resolve Guest User Security Alerts to Keep Your Storefronts Secure by Default in the B2B Commerce for Visualforce Release Notes and Upgrade Guide. These steps describe how to manually resolve each security alert.
## 3.145.8—November 26, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-8 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-8 | ID | Fix | | --- | --- | | W-6952413 | Improved cart performance by eliminating the `ccrz.ccApiCart.setActive()` refetch that occurs with each cart pricing call and removing the `ccrz.ccLogicCartSetActive` fetch of all cart, cart item, and product data. | ## 3.145.7—November 22, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-7 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-7 | ID | Fix | | --- | --- | | W-6875113 | Fixed an issue where a read-only wish list didn't display in the My Templates section of the My Account page. | ## 3.145.6—November 13, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-6 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-6 | ID | Fix | | --- | --- | | W-6830570 | Fixed an issue where B2B Commerce for Visualforce components in Experience Builder showed data from only the default storefront. If you have multiple sites and storefronts, this fix ensures that components correctly show data from whatever storefront is specified at the site's root domain. | ## 3.145.3—October 16, 2019 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-145-3 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-145-3
ID Fix
Multiple items

Fixed several issues that enhance the security of B2B Commerce for Visualforce custom objects against unauthorized access. These fixes don’t require any action after you upgrade.

This patch removes a requirement to have the View All Users permission enabled on your storefront’s guest user profile. This permission was previously required to work around a Digital Experiences security fix. This change ensures that you’re providing the least privilege to guest users to help keep your storefront data secure, while still supporting self-registration.

UPGRADE IMPACT: If you previously enabled the View All Users permission, update your guest user profile to disable the View All Users permission.

W-6593132 Fixed an issue where the picker dropdown for cloned wishlists didn't refresh upon refetch.
W-6546262

Fixed an issue where a product with a start date that’s valid for the current date didn’t appear on the storefront. This issue occurred because the product index included only price list items whose date ranges were valid for the time that the index was built. For example, a product with a start date of September 1 didn’t appear on the storefront on September 1, because the product index was built on August 15. With this fix, a price list item with a future Start Date is now included the next time you build a new product index.

If you start including future-dated products, the size of the index and time required to build it both increase.

W-6536719 Fixed an issue where the storefront reverted to the default locale after a buyer selected a non-default locale and then failed a login attempt. This issue occurred for storefronts that support more than one locale and have enabled the Locale Switcher widget.
W-6536705 Fixed an issue where using ccrz.ccApiCoupon.remove() to remove a coupon didn't always clear the AbsoluteDiscount__c, PercentDiscount__c, and Coupon__c fields.
W-6536700 Fixed a rare issue where the Product List page timed out while querying for products and filters.
# Patch Notes for B2B Commerce for Visualforce Winter ’21 (Version 4.13) Patch notes for B2B Commerce. ### Required Editions
Salesforce Compatibility Salesforce Classic and Lightning Experience for Enterprise, Performance, Unlimited, and Developer editions.

B2B Commerce Compatibility

Any org updating to or installing a patch for B2B Commerce for Visualforce Winter ’21 (version 4.13)

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2b_commerce_release_notes-264-0-0-production-enus/dd2bc651-f664-4278-bce2-a3d325362afb/images/icon_tip.png) Tip - If you install a particular build in a sandbox and test and validate against that version, ensure that you also install the _same_ build in production. For example, if you install build 3.149.1 in a sandbox, ensure that you also install build 3.149.1 in production. - Make sure that you find the correct link for your org type before you proceed with installing a patch. For example, if you're already logged in to a production org, select the URL for a production org, not a sandbox. Reverting or canceling an installation isn't always possible.. - If you're installing B2B Commerce for Visualforce for the _first time_, install the most recent patch so that your implementation has the latest fixes. First, complete the _Set Up a Storefront_ steps in the [B2B Commerce for Visualforce Help](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/b2b_commerce_visualforce.pdf), and then complete any required upgrade steps for each patch that precedes the build you installed. - Some fixes update default handlebars.js templates that render components on the storefront. If you've previously overridden a default template that receives a fix, reimplement your customizations based on the fixed version of the default template. This step ensures that custom code in your solution receives the benefit of the patch's fix. ## 3.149.13—August 17, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-13 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-13 | ID | Fix | | --- | --- | | W-13907587 | Fixed an issue where a product URL in some Lightning components for B2B Commerce for Visualforce didn't resolve correctly. This issue affected the links to products in the B2B Commerce Featured Products and B2B Commerce Spotlight Product components. | ## 3.149.12—June 30, 2023 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-12 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-12 | ID | Fix | | --- | --- | | W-13547255 | Fixed a potential vulnerability related to cross-site scripting (XSS). | | W-13464590 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.13.1 to 1.13.2 and jquery.validate.js from 1.19.4 to 1.19.5. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.2/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.5) release notes. | ## 3.149.10—June 23, 2022 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-10 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-10 | ID | Fix | | --- | --- | | W-11148626 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.12.1 to 1.13.1 and jquery.validate.js from 1.19.2 to 1.19.4. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.1/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.4) release notes. | ## 3.149.9—April 21, 2022 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-9 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-9
ID Fix
W-10735876

Added the ability to filter the static resources that the ccrz.cc_util_UserInterface API utility class queries. This query includes static resources that contain your storefront's product images, theme files, and so on. This enhancement works around limits in your org if you've installed multiple managed packages, and allows you to specify the static resource namespaces that you want to query.

UPGRADE IMPACT: To implement this filter in your org, create metadata for a new configuration in the User Interface module that uses the API name nsList. Then, in your storefront settings, set the value of this configuration to a comma-separated list of the namespaces that you want to query. Avoid spaces between comma values, and be sure to include the default ccrz namespace in the list. For example, enter ccrz,other-namespace where other-namespace is a custom namespace that you want to include. For more information, see Create Metadata for the Namespace List Configuration Added in a Patch in the B2B Commerce for Visualforce Release Notes and Upgrade Guide.

W-9904369 Fixed an issue with line-level independence (LLI) checkout where moving an item to a different shipping group didn't copy the country specified in the original shipping group.
## 3.149.8—October 27, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-8 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-8 | ID | Fix | | --- | --- | | W-9959967 | Added the `@JsonAccess` annotation to the default definitions of several utility classes in the B2B Commerce for Visualforce API. This change affects bean classes such as `ccrz.cc_bean_CartItem`, remote action classes such as `ccrz.cc_RemoteActionContext`, and certain subclasses, such as `ccrz.ccApiCart.LineData`. If you created any extensions that serialize or deserialize affected Apex objects, this fix restores the behavior from previous versions of B2B Commerce for Visualforce. For more information about the `@JsonAccess` annotation, see [JsonAccess Annotation](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_annotation_JsonAccess.htm) in Salesforce Developers documentation. | ## 3.149.7—September 27, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-7 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-7 | ID | Fix | | --- | --- | | W-9811670 | Fixed a potential vulnerability related to the My Orders section of the My Account page. | | W-9811563 | Fixed a potential vulnerability related to cross-site scripting (XSS) when modifying storefront settings in CC Admin. | | W-9811503 | Fixed an issue where an admin could potentially inject cross-site scripting (XSS) when creating custom configuration modules. | | W-9788517 | Updated the label for the `pri.masterpl` configuration setting to use the term Primary instead of Master. The new complete label is Create Primary Index for All Currencies. For compatibility, the API name for this configuration remains `pri.masterpl`. | | W-9162616 | Fixed an issue where a guest user could get stuck during checkout. This issue occurred when the Address Owned by User configuration of the Checkout module (`co.uown`) was TRUE and the Allow Anonymous Checkout option in storefront settings was enabled. | ## 3.149.6—August 25, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-6 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-6 | ID | Fix | | --- | --- | | W-9775967 | Upgraded the versions of these JavaScript libraries distributed with the managed package: handlebars.js from 4.7.6 to 4.7.7 and underscore.js from 1.11 to 1.13.1. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method for both the Bootstrap 3 and classic interfaces. For more information about the changes in these versions, see the [handlebars.js release notes](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md) and [underscore.js release notes](https://github.com/jashkenas/underscore/releases/tag/1.13.1). | | W-9729026 | Fixed an issue where the State dropdown menu incorrectly renders on the Checkout page. This issue occurred only in standard checkout when the Country dropdown menu didn't support selecting the United States. This fix updates the `CCRZ.views.UserInfoView` functions in the ccrz.CheckoutNew Visualforce page. | | W-9705485 | Fixed an issue where the Add to Wishlist button didn't appear for cart items on the Scaled Cart page. This issue occurred even when the Show Add Button configuration of the Wishlists/Templates module (`wl.pkron`) was TRUE. | ## 3.149.4—July 20, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-4 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-4 | ID | Fix | | --- | --- | | W-9493068 | Fixed an issue where the See All Invoices link on an invoice's details in the My Invoices section of the My Account page didn't work correctly. With this fix, the See All Invoices link correctly navigates back to the full list of invoices. This fix updates the default Handlebars template InvoicePayment-Single-Desktop. | ## 3.149.3—July 1, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-3 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-3 | ID | Fix | | --- | --- | | W-9288787 | Fixed an issue where a buyer was redirected to the CC Site Login page instead of the storefront's Visualforce Home page after they selected an effective account. This issue occurred only for a storefront that didn't allow guest buyers and had configured their Experience Cloud site home page to use the CC Site Login page. In this scenario, the expected behavior after selecting an effective account was that the buyer was redirected to the storefront's Visualforce Home page. This fix ensures the expected behavior for an effective account. | | W-9231601 | Fixed an issue where the quantity of a selected product in a dynamic kit didn't update correctly if the same product was already selected and had a quantity specified. This issue occurred only when the Dynamic Kit Flow Enabled configuration was `TRUE` and the storefront used a Bootstrap 3-enabled theme. | ## 3.149.2—May 19, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-2 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-2
ID Fix
W-9190629 Fixed an issue where the bot-enabled Product Detail page didn't load when the product specified a decimal value for a spec that used the Slider filter type.
W-8951263

Fixed an issue where the Shopping Cart page returned an error. This issue occurred after a buyer added a kit to the cart, the kit's price list item expired, and the buyer attempted to reload the Shopping Cart page. This issue affected the following versions of the Shopping Cart page:

  • Scaled Cart page with synchronous pricing
  • Shopping Cart page version 2.0
  • Shopping Cart page version 1.0
## 3.149.1—April 20, 2021 - Sandbox org URL: https://sfdc.co/b2bcommerce-pkg-sandbox-3-149-1 - Production org URL: https://sfdc.co/b2bcommerce-pkg-prod-3-149-1
ID Fix
W-9081892 Fixed an issue where autocomplete suggestions displayed on top of the Quick Order widget's input field, rather than below the field as expected.
W-9077008

Fixed an issue where autocomplete results in search boxes weren't compatible with contract pricing entitlements. With this fix, autocomplete is now compatible with contract pricing by default. This change affects autocomplete in the following components:

  • Search Box in the header
  • Search Box widget in a page column
  • Quick Order widget in a page column
  • Search Box widget in the B2B Commerce Header component for an Experience Builder page
W-9067854 Fixed an issue where the Search Within filter on the Product List page version 1.0 didn't update the number of matching results shown on the page. This issue occurred only when a buyer searched within a category using a query that matched a product that existed in the catalog but that wasn't included in the current category.
W-9057285 Fixed an issue where the B2B Commerce Spotlight Product and B2B Commerce Featured Products components in an Experience Builder page didn't navigate to the Product Detail page on the Visualforce storefront as expected.
W-8875804 Fixed an issue where older versions of the ccrz.ccApiCart.fetch global API method weren't compatible with the ccrz.cc_hk_TaxCalculation.getTaxAmount extension point method. This issue affected functionality of the Avalara AvaTax for B2B Commerce market template.
# Patch Notes for CloudCraze 4.5 Patch notes for CloudCraze. ### Required Editions
Salesforce Compatibility Salesforce Classic and Lightning Experience for Enterprise, Performance, Unlimited, and Developer editions.

B2B Commerce Compatibility

Any org installing a patch for CloudCraze 4.5

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2b_commerce_release_notes-264-0-0-production-enus/dd2bc651-f664-4278-bce2-a3d325362afb/images/icon_important.png) Important These patch notes are provided for maintaining existing CloudCraze 4.5 solutions. However, most information in these help topics applies only to B2B Commerce for Visualforce Summer ’18 (version 4.9) or later. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-b2b_commerce_release_notes-264-0-0-production-enus/dd2bc651-f664-4278-bce2-a3d325362afb/images/icon_tip.png) Tip - If you install a particular build in a sandbox and test and validate against that version, ensure that you also install the _same_ build in production. For example, if you install build 3.115.3 in a sandbox, ensure that you also install build 3.115.3 in production. - The installation URLs for these patches—in either a sandbox org or production org—are available only by submitting a case through Support & Services. ## 3.115.66—April 11, 2023 | ID | Fix | | --- | --- | | W-11148834 | Upgraded the versions of these JavaScript libraries distributed with the managed package: jquery-ui-custom.js from 1.12.1 to 1.13.2 and jquery.validate.js from 1.14.0 to 1.19.5. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method. For more information about the changes in these versions, see the [jquery-ui.js release notes](https://jqueryui.com/changelog/1.13.2/) and [jquery.validate.js](https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.5) release notes. | ## 3.115.65—December 16, 2021 | ID | Fix | | --- | --- | | W-9877370 | Upgraded the versions of these JavaScript libraries distributed with the managed package: handlebars.js from 4.7.6 to 4.7.7 and underscore.js from 1.8.3 to 1.13.1. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` method. For more information about the changes in these versions, see the [handlebars.js release notes](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md) and [underscore.js release notes](https://github.com/jashkenas/underscore/releases/tag/1.13.1). | | W-9811731 | Fixed a potential vulnerability related to the My Orders section of the My Account page. | | W-9811555 | Fixed an issue where an admin could potentially inject cross-site scripting (XSS) when creating custom configuration modules. | ## 3.115.64—February 23, 2021 | ID | Fix | | --- | --- | | W-8509434 | Upgraded the version of the following default third-party JavaScript libraries that the managed package distributes: handlebars.js to 4.7.6 and jquery-ui-custom.js to 1.12.1. This change updates the `ccrz.cc_hk_UserInterface.standardIncludes` extension point method. For more information about the changes in these versions, see the appropriate release notes: [Handlebars release notes](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md) and [jQuery UI release notes](https://jqueryui.com/). | ## 3.115.62—September 23, 2020
ID Fix
W-7976771

Enabled the Secure attribute for the following cookies:

  • apex__cc_anonymous_Country
  • apex__cc_anonymous_Currency
  • apex__cclgtkn
  • apex__currCartId
  • apex__effacc
  • apex__CSRportalUserId

This attribute ensures that the managed package sends cookie data securely through an encrypted request over HTTPS protocol. For more information, see:

W-7566537

Updated the default ccrz.cc_hk_UserInterface extension point class to distribute the latest stable, secure versions of jQuery (3.5.1) and jQuery Migrate (3.3.0).

UPGRADE IMPACT: This upgrade also introduces a breaking change where non-void HTML elements that use self-closing tags, such as <div/>, no longer render. This HTML compatibility change affects the default Handlebars templates included in the managed package, and can affect front-end extensions or customizations that you've already developed. For more details about the jQuery upgrade and the impact on the HTML used in your storefront, see the Salesforce Knowledge article, Upgrade to jQuery 3.5.1 in B2B Commerce for Visualforce Spring ’20 (Version 4.12) or Earlier.

## 3.115.61—June 3, 2020
ID Fix
W-7453599

Fixed potential security vulnerabilities in some extension point classes.

UPGRADE IMPACT: This fix deprecates the ccrz.cc_hk_EffectiveAccount.fetchAccountData() method.

W-7371942 Fixed an out-of-date URL in an Apex method comment.
## 3.115.60—October 16, 2019
ID Fix
Multiple items

Fixed several issues that enhance the security of CloudCraze custom objects against unauthorized access. These fixes don’t require any action after you upgrade.

This patch removes a requirement to have the View All Users permission enabled on your storefront’s guest user profile. This permission was previously required to work around a Salesforce Communities security fix. If you previously enabled this permission, update your guest user profile to disable the View All Users permission. This change ensures that you’re providing the least privilege to guest users to help keep your storefront data secure, while still supporting self-registration.

## 3.115.59—August 9, 2019 | ID | Fix | | --- | --- | | W-6397974 | Fixed an issue where any details entered in the Contact Information form in LLI Checkout were incorrectly cleared after editing a Shipping Group address. | ## 3.115.58—July 16, 2019 | ID | Fix | | --- | --- | | W-6312092 | Fixed an issue where the estimated tax amount that’s calculated during checkout could be circumvented. | ## 3.115.56—August 23, 2018 | ID | Fix | | --- | --- | | W-5367745 | Fixed an issue where the Request Date on an order item record didn't match the Request Date selected for the cart during checkout. This issue occurred only when the order item's corresponding cart item didn't specify a Request Date. This fix applies a default date for the cart item's and order item's Request Date: the date when the item was added to the cart. | ## 3.115.55 | ID | Fix | | --- | --- | | PATCH-3333 | Fixed multiple potential vulnerabilities related to cross-site scripting (XSS), and enforced a sharing rule to meet security standards. | ## 3.115.53
ID Fix
PATCH-2847 Updated the place order logic to set the request date on order items to the requested delivery date selected during checkout.
PATCH-2796 Fixed an issue where a redundant My Wallet section was available for a guest buyer in the Payment section of the Checkout page.
PATCH-2385

Fixed an issue where a guest buyer lost their cart. This issue occurred when the following conditions were true:

  • The Redirect To Login configuration of the User Profile (Registration) module (ur.dirlogin) is TRUE.
  • The guest buyer registered for a storefront account after clicking Checkout from the Shopping Cart page.
## 3.115.52 | ID | Fix | | --- | --- | | PATCH-2889 | Fixed an issue where the currency code for a cart item didn't match the cart's currency code. This issue occurred when a buyer applied a coupon to a dynamic kit. | ## 3.115.51 | ID | Fix | | --- | --- | | PATCH-2790 | Fixed an issue where a coupon cart item's currency code didn't match the cart's currency code when a buyer applied the coupon. | | PATCH-2778 | Updated the place order logic to set the request date on order items to the requested delivery date selected during checkout. | | PATCH-2705 | Fixed an issue that affected how the promotion API respected attachments for internationalization fallback behavior. | ## 3.115.48 | ID | Fix | | --- | --- | | PATCH-2303 | Fixed an issue where the My Subscriptions section of the My Account page didn't hide the Actions column. This issue occurred even when the My Subscriptions configuration of the Show Actions Column module (`shact.subs`) was FALSE. | ## 3.115.47 | ID | Fix | | --- | --- | | PATCH-2322 | Fixed an issue where the `ccrz.ccApiCart.addTo` method didn't add or remove a cart total coupon to a cart that contained dynamic kits. | ## 3.115.46 | ID | Fix | | --- | --- | | PATCH-2243 | Fixed an issue where CC Admin didn't save the default locale correctly. | | PATCH-2237 | Removed an extra HTML `` element from the one- and two-column page layouts. | | PATCH-2231 | Increased the amount of feature filters data that the Product List page can retrieve and show. | ## 3.115.44
ID Fix
PATCH-2192

Fixed an issue where the ccrz.ccApiCart.addTo method didn't create a new cart when both of the following conditions were true:

  • The call was in the context of a buyer shopping on behalf of another account.
  • The call didn't specify a cart ID.
PATCH-2186

Fixed an issue where a SOQL row governor limit occurred when both of the following conditions were true:

  • The buyer could access to all carts in the org.
  • A call to ccrz.ccApiCart.addTo method didn't include the cart ID.

UPGRADE IMPACT: This fix applies a default limit of 5,000 rows for any API fetch method. If your subscriber code includes any API queries that don't specify a limit, but you want to return more than 5,000 rows, add the ccrz.ccService.QUERYLIMIT key.

PATCH-2156 Fixed an issue where the rich text short and long descriptions for products and categories didn't display when Always Use RT Fields was enabled. This fix ensures that the rich text fields display when this storefront setting is enabled and the non-rich text description fields are empty. This fix also ensures that the correct localized rich text short description field displays even when the non-rich text short description field is empty.
PATCH-1935 Fixed an issue where fetching wish lists data potentially reached heap size limits. This fix updates the ccrz.ccApiWishLists.fetch method call within ccrz.cc_util_UITransformsWishlists to use a ccrz.ccApi.SZ_S data size request.
PATCH-1697

Fixed an issue where the Product List page didn't sort by Newest correctly.

UPGRADE IMPACT: This fix updates the ccrz.ccApiProduct.fetch return data so that the ccrz__StartDate__c field is included in a ccrz.ccApi.SZ_S data request instead of ccrz.ccApi.SZ_L.

## 3.115.39
ID Fix
PATCH-2113 Increased the timeout on the Order Confirmation section of the Checkout page to accommodate delays in outbound order callouts.
PATCH-2095 Fixed an issue that caused a SOQL limit error in the Featured Products widget.
PATCH-2053 Updated category caching to query only required data, which accommodates a larger number of categories. This fix also updates ccrz.ccApiCategory.fetch method to include the ccrz__CategoryID__c field in the ccrz.ccApi.SZ_S data size request.
PATCH-1894

Updated the ccrz.ccApiProduct.fetch data size request return data to improve performance.

UPGRADE IMPACT: This fix updates the ccrz.ccApiProduct.fetch return data so that:

  • The ccrz__LongDesc__c and ccrz__LongDescRT__c fields are included in a ccrz.ccApi.SZ_XL data request instead of ccrz.ccApi.SZ_L.
  • The Product_Inventory_Items__r related query is included in a ccrz.ccApi.SZ_XL data request instead of ccrz.ccApi.SZ_L.

If you previously relied on this data in your extensions or other subscriber code, update your customizations to accommodate the new data request size.

## 3.115.37 | ID | Fix | | --- | --- | | PATCH-1876 | Fixed an issue where contacts of an account couldn't edit the address book for other contacts in the same account. | ## 3.115.36 | ID | Fix | | --- | --- | | PATCH-1876 | Fixed an issue where the `ccrz.cc_hk_Pricing` extension point class executed a SOQL query in a For loop. | ## 3.115.35 | ID | Fix | | --- | --- | | PATCH-1917 | Fixed a rare issue where a guest buyer could create a wish list. | | PATCH-1858 | Fixed an issue where CSR flow didn't show prices in the currency of the buyer that the CSR was logged in on behalf of. | ## 3.115.34 | ID | Fix | | --- | --- | | PATCH-1809 | Updated the default email templates to reference `ccrz.cc_CallContext` data. | | PATCH-1803 | Fixed an issue that affected cloning a storefront that was previously renamed. | | PATCH-1091 | Updated the Settings Loader section of CC Admin Global Settings to include an option for Language data. | | PATCH-912 | Fixed an issue where the order confirmation email sent even when the transaction payment was missing a billing address. | ## 3.115.33 | ID | Fix | | --- | --- | | PATCH-1787 | Fixed an issue where the `fetchCart` remote action on the Shopping Cart didn't return the correct name fields on the `ccrz__E_Cart__c` record. This fix updates the `fetchCart` remote action so that the name field maps to the ccrz\_\_Name\_\_c object field and the sfdcName field maps to the standard Name object field. | | PATCH-1745 | Fixed an issue where clicking Remove Coupon on the Shopping Cart page didn't remove a previously applied percentage discount. | | PATCH-1709 | Fixed an issue where the selected currency didn't update after a guest buyer logged in. This fix ensures that the logged-in buyer's selected currency becomes active after they log in. Previously, the logged-in buyer's selected currency remained the default currency assigned when they were browsing anonymously. | | PATCH-1691 | Fixed an issue that affected the Product List page for a category when the page URL didn't specify a category ID. With this fix, the page now defaults to the storefront's root category instead of the overall top-level category. | | PATCH-1621 | Fixed an issue where a cart item identified as invalid didn't become valid after the invalidation was corrected. | ## 3.115.31 | ID | Fix | | --- | --- | | PATCH-1727 | Updated the settings for managing logic service provider classes in CC Admin to be storefront-specific. | ## 3.115.29 | ID | Fix | | --- | --- | | PATCH-1565 | Fixed an issue where a guest buyer experienced page label values in their browser's language, even when the storefront didn't support that locale. | | PATCH-1550 | Fixed an issue where the Related Products widget on the Checkout page showed duplicates of recommended products. This issue occurred when multiple products defined a CrossSell relationship to the same product. | ## 3.115.28 | ID | Fix | | --- | --- | | PATCH-1495 | Fixed an issue where `` and ` ``` ## Validate Structured Data To validate structured data in an environment, inspect the HTML source code for a page and navigate to the `