The On Order Inventory setting enables you to account for ordered inventory that hasn’t been exported for shipping.
You can control the on order reservation behavior based on an inventory list. How you configure this setting depends on how you normally handle orders after the storefront checkout process.
Inventory list import considers On Order Inventory an optional value. When the On Order Inventory value is missing:
Inventory list export always considers the On Order Inventory setting.
Because the On Order setting is related to an inventory list, and isn't a site preference:
If you enable this setting, then when an order is placed, its inventory is handled in a two-step process:
Resetting the allocation level sets the turnover value to zero, but doesn’t affect the on-order value.
If used, the on-order quantity represents the quantity ordered that isn't yet exported
for shipping. The turnover doesn't include the on-order quantity, since it represents
the amount that has shipped since the last inventory update. When deciding which product
units are available for shipping, Salesforce B2C Commerce uses this formula:
available for shipping = max(0, allocation - turnover )
.
The stock level represents the number of units
that can be sold after taking the shipment of all currently placed orders
into account: StockLevel = max(0, allocation - turnover –
on-order).
On Order Inventory Disabled:
Step | Allocation | Backorder allocation | Turnover | On Order | Stock level | Available for Shipping | Available to Sell |
---|---|---|---|---|---|---|---|
Inventory allocation is reset to 20 | 20 | 10 | 0 | not used | 20 | 20 | 30 |
Customer places order1, qty 5 | 20 | 10 | 5 | not used | 15 | 15 | 25 |
Customer places order2, qty 2 | 20 | 10 | 7 | not used | 13 | 13 | 23 |
Both orders are exported for shipping | 20 | 10 | 7 | not used | 13 | 13 | 23 |
Inventory is reset to 11 | 11 | 10 | 0 | not used | 11 | 11 | 21 |
On Order Inventory Enabled:
Step | Allocation | Backorder allocation | Turnover | On Order | Stock level | Available for Shipping | Available to Sell |
---|---|---|---|---|---|---|---|
Inventory allocation is reset to 20 | 20 | 10 | 0 | 0 | 20 | 20 | 30 |
Customer places order1, qty 5 | 20 | 10 | 0 | 5 | 15 | 20 | 25 |
Order1 is exported for shipping | 20 | 10 | 5 | 0 | 15 | 15 | 25 |
Customer places order2, qty 2 | 20 | 10 | 5 | 2 | 13 | 15 | 23 |
Inventory allocation is reset to 11 | 11 | 10 | 0 | 2 | 9 | 11 | 19 |
Order2 is exported for shipping | 11 | 10 | 2 | 0 | 9 | 9 | 19 |
Note the timing of the allocation resets in these examples. The B2C Commerce inventory records are updated with an earlier allocationResetDate.
On Order Inventory Disabled:
Step | Allocation | Backorder allocation | Turnover | On Order | Stock level | Available for Shipping | Available to Sell |
---|---|---|---|---|---|---|---|
Inventory allocation is reset to 20 | 20 | 10 | 0 | not used | 20 | 20 | 30 |
Customer places order1, qty 5 | 20 | 10 | 5 | not used | 15 | 15 | 25 |
Order1 is exported for shipping | 20 | 10 | 5 | not used | 15 | 15 | 25 |
Inventory allocation is reset to 11 but not yet imported into B2C Commerce | 20 | 10 | 5 | not used | 15 | 15 | 25 |
Customer places order2, qty 2 | 20 | 10 | 7 | not used | 13 | 13 | 23 |
Order2 is exported for shipping | 20 | 10 | 7 | not used | 13 | 13 | 23 |
The inventory allocation reset is imported into B2C Commerce with an inventoryRecord.allocaionResetDate earlier than the Order2.exportDate | 11 | 10 | 2 | not used | 9 | 9 | 19 |
Order1 is canceled | 11 | 10 | 2 | not used | 9 | 9 | 19 |
Order2 is canceled | 11 | 10 | 0 | not used | 11 | 11 | 21 |
On Order Inventory Enabled:
Step | Allocation | Backorder allocation | Turnover | On Order | Stock level | Available for Shipping | Available to Sell |
---|---|---|---|---|---|---|---|
Inventory allocation is reset to 20 | 20 | 10 | 0 | 0 | 20 | 20 | 30 |
Customer creates order1 (payment not captured), qty 5 | 20 | 10 | 0 | 5 | 15 | 20 | 25 |
Customer creates and places order2 (payment captured), qty 2 | 20 | 10 | 0 | 7 | 13 | 20 | 23 |
Inventory allocation is reset to 11 but not yet imported into B2C Commerce | 20 | 10 | 0 | 7 | 13 | 20 | 23 |
Order2 is exported for shipping | 20 | 10 | 2 | 5 | 13 | 18 | 23 |
The inventory allocation reset is imported into B2C Commerce with an inventoryRecord.allocaionResetDate earlier than the Order2.exportDate | 11 | 10 | 2 | 5 | 4 | 9 | 14 |
Order1 is failed | 11 | 10 | 2 | 0 | 9 | 9 | 19 |
Order2 is canceled | 11 | 10 | 0 | 0 | 11 | 11 | 21 |
Undo order1 failure | 11 | 10 | 0 | 5 | 6 | 11 | 16 |
Undo order2 cancellation | 11 | 10 | 2 | 5 | 4 | 9 | 14 |