Inventory Synchronization

When Order Management is integrated with Salesforce B2C Commerce, inventory levels are always mastered in Order Management. (The synchronization of inventory levels can be disabled, but that isn't recommended.) An automated task sends full inventory data to B2C Commerce on a regular schedule. Optionally, a second automated task can send updates containing only changed inventory information on a more frequent basis.

In a basic implementation, global inventory data is imported or exported in a single master file. You can also import and export other data files pertaining to individual warehouse or store sites.

The automated jobs that import and export inventory data are flexible and can be configured in several ways to support your business needs. See Managing jobs in Administration.

Some implementations deal with the turnover of large numbers of products. To support large volumes, you can configure an import job to automatically zero the inventory of all products not explicitly included in an inventory file.

This topic contains the following sections:

Importing Multiple Inventory Files

You can configure an inventory import job to import multiple data files, which is useful when stores export their own inventory files for Order Management. The job imports all files in the import location that match the <filename> pattern specified in the job configuration. See Scheduling jobs.

Note: To prevent extended processing times, a single job only imports the first 50 files that match the specified filename. If a file causes an error, the job continues with the next file in the set.

The following is an example filename pattern:


This pattern picks up the first 50 .csv files in the store_files folder named with the current date and a store ID of inventory_store plus a two-character ID.


Exporting Store-Level Inventory

You can export store-level inventory data in addition to the master data. The system doesn't consume store-level data; the files are made available for use by custom implementations.

To enable store-level inventory export, in Order Management Administration: Settings > Providers > Demandware and then the Company-Level link. On the Object Configuration page, set the Inventory Sync (Fulfillment Site Feed) to Enabled. This causes store-level data files to be exported for each store site in addition to the normal master inventory data file. The files are named according to the following convention:

Inventory_[Store, Warehouse]_sitename_[Delta, Full]_timestamp.xml

The following are not included in exported inventory levels:

Zero Inventory Import Option

You can configure inventory import jobs to set the inventory level to zero for physical items that are not included in the data source file. Use this feature to delete large numbers of discontinued or outdated products without having to specify each one.

For site-level inventory data, this option only affects sites that are specified in the data file. Inventory is not zeroed at any other sites.

Note: Avoid inadvertently zeroing out available products. Don't enable this option when running a delta import (changes only), because it sets any item not in the change list to quantity zero.

This feature only applies to items that meet all of the following requirements. For example, an item that is suspended at the time the import job runs is not zeroed.

In Order Management Administration: Utilities > Jobs > job ID > Extra Settings section, with Item Inventory specified, select Set On Hand Quantity for Unspecified Items to 0 to enable the zero inventory import option.

Note: This setting only applies to physical items. It does not set virtual items or gift certificates to zero inventory.

Inventory Holdback Levels

Inventory holdback levels help prevent B2C Commerce from overselling items in between inventory updates. The holdback level is subtracted from inventory data sent to B2C Commerce, which limits the amount of inventory available to be sold through B2C Commerce. It provides a buffer when the actual inventory level has decreased since the last synchronization. The holdback level can be a set value or a percentage of the total On Hand inventory. For example, if the holdback level is 10% and the On Hand inventory is 20, then B2C Commerce receives an On Hand inventory of 18.

You can define a global holdback level in the company-level Demandware provider. You can also define levels for individual items in item-level Demandware providers. The global level is applied to any item that doesn't have a level defined in its own provider.

Note: Holdback levels cannot be set at the site level. They do not affect site inventory files unless set for individual items at a site.