SaaS Price Indexing

SaaS pricing indexing optimizes site performance by offloading resource-intensive tasks—like indexation and price calculation—from the Commerce application to Adobe’s Cloud infrastructure. This approach enables merchants to rapidly scale resources to accelerate price indexation times and deliver price updates to the storefront and connected Commerce services more quickly.

The following diagram shows the indexing data flow to SaaS services when Commerce is using the price indexing process included in the Commerce application:

Default data flow

With SaaS price indexing enabled, the data flow changes. Price indexing is performed using Commerce SaaS data export.

SaaS price indexing data flow

All merchants can benefit from using SaaS price indexing, but merchants that have projects with the following characteristics can realize the greatest gains:

  • Constant price changes–Merchants that require repeated changes to their prices to meet strategic goals such as frequent promotions, seasonal discounts, or inventory markdowns.
  • Multiple websites and/or customer groups–Merchants with shared product catalogs across multiple websites (domains/brands) and/or customer groups.
  • Many unique prices across websites or customer groups–Merchants with extensive shared product catalogs that contain unique prices across websites or customer groups. Examples include B2B merchants that have pre-negotiated prices or brands with different pricing strategies.

Use SaaS Price Indexing

SaaS price indexing is enabled automatically when you install Adobe Commerce Services. It supports price calculation for all built-in Adobe Commerce product types.

Requirements

  • Adobe Commerce 2.4.4+

Prerequisites

NOTE
If needed, the default price indexer in the Commerce application can be disabled using the Catalog Adapter.

Synchronize prices with SaaS price indexing

After enabling SaaS price indexing for Adobe Commerce, update prices on the Storefront and in Commerce Services by synchronizing the new feeds:

bin/magento saas:resync --feed=scopesCustomerGroup
bin/magento saas:resync --feed=scopesWebsite
bin/magento saas:resync --feed=prices

Monitor sync progress

To verify that the data sync is working, confirm that data exported successfully from Adobe Commerce and that the data was successfully delivered to the connected Commerce service. Use the dashboards for your deployment to check both steps.

Start with export, then confirm delivery.

  1. Check the sync status in the Commerce Admin.

    Go to System > Data Transfer > Data Feed Sync Status.

    Data Feed Sync Status page with feed item status reporting {width="800" modal="regular"}

    When the sync is running, the feed data shows successfully sent records. Select a feed to view details or troubleshoot sync issues.

  2. Confirm the data was delivered to connected Commerce Services.

    From the Commerce Admin, go to System > Data Transfer > Data Management Dashboard.

    Data Management dashboard showing synced catalog data in connected Commerce Services {width="700" modal="regular"}

    Verify that the expected products, prices, and attributes appear.

TIP
If you have any additional issues with the data sync, see Review logs and troubleshoot.

Use the Commerce CLI to manually resync feeds when needed. For resync options and additional troubleshooting steps, see Manage synchronization in the SaaS Data Export Guide.

NOTE
If the Data Feed Sync Status page is not available in the Commerce Admin for Commerce on Cloud or on premises deployments, follow the extension installation instructions to enable it.

Prices for custom product types

Price calculations are supported for custom product types such as base price, special price, group price, catalog rule price, and so on.

If you have a custom product type that uses a specific formula to calculate the final price, you can extend the behavior of the product price feed.

  1. Create a plugin on the Magento\ProductPriceDataExporter\Model\Provider\ProductPrice class.

    code language-xml
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
        <type name="Magento\ProductPriceDataExporter\Model\Provider\ProductPrice">
            <plugin name="custom_type_price_feed" type="YourModule\CustomProductType\Plugin\UpdatePriceFromFeed" />
        </type>
    </config>
    
  2. Create a method with the custom formula:

    code language-php
    class UpdatePriceFromFeed
    {
        /**
        * @param ProductPrice $subject
        * @param array $result
        * @param array $values
        *
        * @return array
        */
        public function afterGet(ProductPrice $subject, array $result, array $values) : array
        {
            // Override the output $result with your data for the corresponding products (see original method for details)
            return $result;
        }
    }
    
recommendation-more-help
commerce-help-price-index