MuleSoft Accelerator for Salesforce B2C Commerce Cloud icon

MuleSoft Accelerator for Salesforce B2C Commerce Cloud

(2 reviews)

Use case 1 - Products


The following use case is covered:

  • Products (PIM -> B2B Commerce & B2C Commerce)

This use case enables the integration of incremental updates made to products in a PIM, not the initial bulk upload of the product catalog. The B2C Commerce Product Catalog import page describes how to do the initial bulk import into B2C Commerce.

On a (configurable) scheduled basis, build the product list from the PIM database and push changes in product data since the previous load into B2C Commerce.


  • The Products Process API has been configured to push product updates to both B2B Commerce and B2C Commerce.
  • The initial load of products into B2B and B2C Commerce Systems has already occurred.
  • All new products from the delta load will be associated with the Standard Catalog (B2C Commerce).
  • Delta is loaded into the B2C Commerce System staging environment with the assumption that additional attributes and categorization will need to take place before it is published to the production environment. The promotion of products from staging into production should be handled within B2C Commerce itself: it is not addressed by this Accelerator.
  • Only products of type 'master' are pushed to B2B Commerce.
  • The entities ProductCategory, ProductCatalog, ProductImage, PriceBook and CommerceEntitlementPolicy must already exist in B2B Commerce.

This Accelerator supports the standard product type within B2C Commerce (standalone products).

High-level architecture



  1. At a configured schedule, the Product Process API calls PIM System API to query PIM for new or updated products.
  2. The Products Process API calls the B2B Commerce System API to upsert the product details into B2B Commerce if the product type is 'master'.
  3. The Products Process API calls the B2C Commerce System API to upsert the product details into B2C Commerce.

Sequence diagram


Systems involved

  • PIM: contains all required information about products (product codes, pricing, images, etc.). This system is simulated with an Oracle database.
  • B2B Commerce: Mule publishes product information into B2B Commerce with default values as configured in this process API.
  • B2C Commerce: Mule publishes product information into the staging environment of B2C Commerce.

Setup instructions

Product Information Management (PIM) system configuration

Perform the following steps to configure the PIM:

  • Create products table using the sql scripts provided in the Mule project
  • Insert products data into the products table.

Please refer to this template for sql scripts. Scripts are located under "src/test/resources/db scripts".

Mule projects

Follow the readme instructions of the following Mule application projects to set
up and deploy the projects into Anypoint Platform for this use case.

Configurable Properties in the YAML file

demandware.oAuth.refresh-intervalB2C Commerce login token refresh interval. This value is set as 29 minutes; typically the token expires after 30 minutes.

B2C Commerce components & configurations

PIM components & configurations

The PIM consists of a single database table with product information for demonstration purposes.

Product data elements

Element NameData TypeDescription
brandStringThe brand of the product.
creation_dateDateReturns the value of attribute 'creationDate'.
product_idStringThe ID (SKU) of the product.
image_pathStringThe path to the image file
min_order_quantityStringMinimum order quantity of the product
in_store_pickupCharWhether in store pickup available or not
in_stockBooleanThe flag that indicates if the product is in stock, or not. This is a calculated value.
is_searchableSiteSpecific \(Boolean))The site specific searchable status of the product.
last_modifiedDateReturns the value of attribute 'lastModified'.
long_descriptionLocalized \(MarkupText\)The localized long description of the product.
global_product_idStringThe global identifier of the product. This is applicable for product types "variation_group" and "variant" only.
owning_catalog_idStringThe ID of the catalog that owns the product.
original_retail_priceDecimalThe price of the product.
price_currencyStringCurrency for the product's price.
primary_category_idStringThe id of the products primary category.
product_nameLocalized \(String\)The localized name of the product.
product_typeStringThe type of the product. It can be 'master', 'product' or 'variant'
sale_unitStringThe sales unit of the product.
short_descriptionStringThe localized short description of the product.
step_qntyStringThe step quantity.
tax_class_idStringTax class Id of the product
upcStringThe Universal Product Code of the product.
variation_attribute_key1StringThe variation attribute key1.
variation_attribute_key2StringThe variation attribute key2.
variation_attribute_value1StringThe variation attribute value1.
variation_attribute_value2StringThe variation attribute value2.
vendor_numberStringThe vendor number of the product.
vendor_nameStringThe name of the product's vendor.
vendor_skuStringThe SKU of the product's vendor.


Published by
MuleSoft Solutions
Published onJun 29, 2021
Asset overview

Asset versions for 1.5.x

Asset versions


Industry Vertical
RetailNo values left to add
SalesforceSAPServiceNowNo values left to add
B2C Commerce CloudService CloudNo values left to add