Inventory Management

The B2C Commerce platform provides basic storefront inventory tracking functionality. Itโ€™s intended to work with an external inventory management system, with the external system as the system of record for inventory data. For more powerful functionality, you can also integrate with Salesforce Omnichannel Inventory.

Inventory Basics

Depending on your business needs, your implementation can include both availability tracking in B2C Commerce and inventory data exchange with an external system. For example, B2C Commerce can import inventory data at regular intervals, and avoid overselling between imports by updating local data when creating orders.

In version 21.2, we introduced Salesforce Omnichannel Inventory. It replaces some of the B2C Commerce platformโ€™s inventory functionality and provides a more full-featured interface with your external inventory management system. Itโ€™s designed to easily integrate with B2C Commerce and Salesforce Order Management. Like Salesforce Order Management, it runs on the Salesforce Lightning Platform.

For more information about using Omnichannel Inventory with B2C Commerce, see Inventory Management Using Omnichannel Inventory.

Note: When you integrate B2C Commerce with Omnichannel Inventory, some of the functionality described in this topic works differently or isnโ€™t available. Carefully review the details to understand the differences.

Inventory Features

Some of B2C Commerceโ€™s inventory features include:

  • Providing information about product availability based on current and future stock level information.
  • Supporting different types of availability, such as backorders, preorders, and perpetual availability. (Omnichannel Inventory doesnโ€™t directly support these types. Instead, it uses a future inventory system.)
  • Sending requests to the external system or to Omnichannel Inventory to reserve specific quantities of products for an order.
  • Automatically adjusting visible availability when reserving inventory for an order in the external management system.
  • The ability to consider availability data in promotion rules.
  • The ability to consider availability data in product search results.
  • Support for Script API customizations, such as:
    • Buy Online, Pick Up in Store (BOPIS) orders
    • Temporary inventory reservations for baskets
    • Partial inventory reservations for baskets
    Note: Developer documentation and reference materials are available in English only. Refer to the English-language Infocenter to access this information.

When you manage inventory with Omnichannel Inventory, inventory records in B2C Commerce are read-only. If you instead manage inventory on the B2C Commerce platform, you can use Business Manager to:

  • Import inventory data according to the Inventory.xsd schema.
  • Create individual product inventory records, including perpetual, pre-order, and backorder settings.
  • Extend the ProductInventoryRecord object to store custom attributes. For example, include a product-specific message to display when the inventory of a product drops below a threshold value.

For details about how storefront cart and product detail pages display availability information, see the SiteGenesis wireframes.

Inventory Lists

An inventory list defines a set of inventory records associated with individual products. You can associate each inventory list with one or more sites or stores, but can associate each site or store with only one inventory list. The inventory list assigned to a site represents the default online inventory of that site. When creating an order, B2C Commerce uses the siteโ€™s inventory list by default.

Each product line item in an order can be associated with an inventory list, such as the list assigned to a store. When B2C Commerce creates an order, it tries to reserve inventory for each product in the order using the inventory list associated with that product. If a product line item isnโ€™t explicitly associated with an inventory list, then the order uses the siteโ€™s inventory list for that line item.

Note: Only the inventory list assigned to the current site shows product availability. When viewing any other inventory list, all products appear with Availability as N/A.

Hereโ€™s an example: A shopper places an order for two products, one to be shipped and one to pick up in store. When the shopper selects a store for the second product, the product line item added to the order is associated with the inventory list for the selected store. B2C Commerce requests an inventory reservation based on the site inventory list for the first product, and based on the store inventory list for the second product.

B2C Commerce can store up to 3,000 inventory lists, enforced by the Inventory List (Product Inventory Record) quota. You can import up to 3,000 inventory lists at a time. Both full and delta inventory imports are supported, with UPDATE, REPLACE, and MERGE modes. You can delete records by using REPLACE mode with import data that doesnโ€™t include those records.

Note:

If you see unavailable fields in the Business Manager Inventory module, you have read-only permission. You can search for inventory lists and view their details. You can't modify, delete, or create inventory lists. If you have mixed permission to access one module (via different roles), the higher-level access is granted. See your administrator if you require write access.

For read-only access, the role still needs the functional permissions, either Manage_Inventory (for all inventory lists globally) or Manage_Site_Inventory for selected sites.

The Inventory Record

An inventory record describes a product's stock level and availability data in the context of an inventory list. It references exactly one product and one list. A list can include only one inventory record for each unique product SKU. The following table shows the attributes of an inventory record.

Note: When using Omnichannel Inventory, inventory records in B2C Commerce are read-only. When not using Omnichannel Inventory, you can use Business Manager to set any of the attributes except for Reset Date.
Attribute Description
Allocation The quantity of products in stock on the Reset Date. Omnichannel Inventory refers to Allocation as On Hand.
Reset Date The time that the Allocation was initialized or reset.
Perpetual A flag that specifies that the product is always in stock. When using Omnichannel Inventory, this value is always false.
Pre-Order/Backorder Handling A value that specifies a product's availability if it's not in stock. The possible values are NONE, PREORDER, and BACKORDER. When using Omnichannel Inventory, this value is BACKORDER if the product has any future restocks, and NONE if it doesnโ€™t.
Pre-Order/Backorder Allocation The quantity of products available for order if the product is out of stock. When using Omnichannel Inventory, this value is the sum of future restocks for the product.
In-StockDate The date that a product is expected to be in stock. When using Omnichannel Inventory, this value is the date of the earliest future restock.

Inventory Situations

The following are some examples of how your application, based on Business Manager settings, can handle specific inventory situations:

In this situation... Your application can...
A product isn't released yet
  • Allow or disallow orders
  • Show a customized message to the shopper
  • Provide an availability date
  • Take pre-orders
  • Limit the number of pre-orders
A product isnโ€™t in stock
  • Allow or disallow orders
  • Show a customized message to the shopper
  • Provide an availability date
  • Take backorders
  • Limit the number of back-orders
An order requests more units of a product than are in stock Break an order into X units for immediate delivery and Y units for backorder
You don't want to promote out of stock products Write promotion rules that consider units available to sell (ATS)
Out of stock products appear in search lists
  • Sort unavailable products to the bottom of the search results lists
  • Set the product on-line attribute to false.
Stock levels are inaccurate Correct stock levels with an inventory update

Dealing with Product Availability

B2C Commerce offers strategies for dealing with product availability in the following situations:
  • A site doesn't have an assigned inventory list
  • A product doesn't have an inventory record
Name Description Approach
Default No inventory list is assigned to the site. No information is available to derive availability. All products are considered not available.
Single site setting The site has an inventory list, but the product itself doesn't have a record. If the default is in stock, the product is considered in stock; otherwise the product isn't available.
Single product setting The product has an inventory record, but no allocation is specified. If Perpetual is set, the product is considered in stock; otherwise the product isn't available.
Allocation tracking The product has an inventory record and an allocation is specified. The availability is calculated at run time.

Notes

  • An inventory record isn't created implicitly by creating or importing a new product. You explicitly create the record in Omnichannel Inventory, through Business Manager, or by import from a third-party tool.
  • Availability information can't be staged.
  • If you switch from one inventory list to another, a product's availability immediately changes in the storefront to reflect the new inventory list.
  • Availability isn't adjusted for bundled products. To retain availability information for a product bundle, you create a product inventory record for the product bundle.