The purpose of this document is to explain how the inventory update, reindex eand export process works.
Update source stock quantities
The OMS is expecting to receive available to sell stock quantities for each source location, so that the information can be exported to the selling platforms and to source the received orders.
There are 3 different ways to update stock:
- stock-snapshot: sending a single message for a specific source (either DELTA, FULL or NONZERO) for intra-day updates
- stock-snapshots in a batch: a daily batch of snapshots for all the sources (this last process is recommended to be run once per day)
- adjustment: intraday frequent adjustments that will adjust the stock relative to the quantity already available in the OMS (the stock will increment or decrement as indicated by the quantity field of the message). OMS will recalculate the stock available to be sold for the modified skus and export a stock-snapshot DELTA message.
The stock snapshots can be provided using 3 different modes:
Every sku option existing in the catalog should be included in this feed. An item stock (known by the OMS) missing in the feed will result in a warning message. The FULL message is expected only once/twice per day.
This message will include only the skus with positive stock in the defined source, and the skus not provided in the message are assumed to zero. Therefore is important to know that any skus from the message will be set to zero values. The NON-ZERO message is expected only once/twice per day.
Any number of sku options that have changed since last FULL snapshot known should be included in this message. Only the options included in the feed will be updated, and exported while other skus are not updated. OMS can receive as many and as frequent DELTA updates as necessary.
Aggregation and stock export
The OMS have the capability to define Stock Aggregates: entities which will define the stock pool to be exported to the sale channel. Each aggregate will have multiple stock sources associated and can be linked to one or more sales channel.
Every time there is a stock snapshot update from a warehouse or a physical store the reindex process is run that will recalculate the final stock available to sell. The process takes into account the following parameters:
- Inflight orders
- Aggregation of the various sources/quantities
- Safety stock calculations (thresholds defined at source or aggregate level)
Via a configuration is also possible to configure OMS to export updates for each sale/cancellation event to keep multiple sales channel using the same aggregate updated as soon as new orders are received in OMS.
The in-flight stock is a mechanism to ensure that orders, which are not yet sourced or fulfilled, will have a “stock reservation” in place that will prevent the skus to be sold to other customers. In the OMS there are 2 types of in-flight stock:
- soft inflights that are set as soon as the order is imported (while pending to do the payment/risk validations, remorse time, sourcing etc..). This will decrease the stock quantity from the aggregate stock pool.
- hard inflights that are defined as soon as an order is sourced. The stock is decremented from the source stock quantities until the Logistics provider is informing of the acknowledgment of the purchased skus.
The soft inflights are only removed by the OMS when an order get hard allocated, therefore changed to hard inflights. While for hard allocated items the Logistic provider is the one that will trigger the removal of such inflight by acknowledging the receival of the order lines. The acknowledgment by the Logistic provider is done through the message lines_change_status (http://documentation.cs.mcom.magento.com/specifications/#magento.logistics.shipment_request_management) and should indicate the status RECEIVEDBYLOGISTICS at each order line. At this point OMS assumes that the WMS/Logistics has already accounted for this order items therefore expecting that the snapshot is already accounting for them, and so removing the hard inflight.
NOTE: In case a Logistic provider is not capable of sending the RECEIVEDBYLOGISTICS status to OMS, the hard inflight will be accounted for until the lines are either shipped or cancelled.