Inventory

This page details how the different inventory flows, such as an inventory update, a reindex, or an export process, work.

Update source stock quantities

Your Order Management System (OMS) expects to receive on hands stock quantities for each specific source. The information is exported to the seller platforms and new orders start to be sourced, according to stock availability.

There are three 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—Saily batch of snapshots for all sources (we recommend you run this once per day)
  • Adjustment—Frequent intra-day adjustments that adjust the relative stock to the available quantity already in your OMS. Available stock is then recalculated to be sold for the modified SKUs and exportd a DELTA stock-snapshot message.

Stock snapshots modes

The stock snapshots can be provided using three different modes:

Mode Description
FULL Every SKU option 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.
NON-ZERO This mode means that this message must include all the SKUs with stock. The SKUs that are not included in the snapshot are assumed to have no stock and will be updated to zero stock. The NON-ZERO message is expected to be used on a daily synchronization between the inventory source and your OMS.
DELTA Any number of SKU options that have changed since the last FULL known snapshot should be included in this message. Only the options included in the feed will be updated and exported, while other SKUs are not updated. Your OMS can receive as many DELTA updates as necessary.

Configure stock aggregates

Your OMS has the capability to define stock aggregates, which are entities which define the stock pool that is exported to the sales channel. Multiple stock sources are associated with each aggregate, and can link to one or several sales channels.

You can create and edit stock aggregates via the OMS Backoffice or the API.

To configure stock aggregates via the API:

  1. Use the source management create and update messages to create and update stock to be used in the aggregate.

     {
     "source": {
         "id": "string",
         "name": "string",
         "type": "string",
         "timezone": "string",
         "configurations": {
         "active": "boolean",
         "capabilities": {
             "shipping": [
             "string"
             ],
             "services": [
             "string"
             ],
             "accepts_returns": "boolean",
             "fulfillment": {
             "can_ship_to_source": "boolean"
             }
         },
         "integration_name": "string",
         "ship_from_store": "boolean"
         },
         "address": {
         "reference": "string",
         "address_type": "string",
         "first_name": "string",
         "last_name": "string",
         "address1": "string",
         "address2": "string",
         "city": "string",
         "state": "string",
         "zip": "string",
         "country_code": "string",
         "phone": "string",
         "email": "string",
         "latitude": "string",
         "longitude": "string",
         "custom_attributes": [
             {
             "name": "string",
             "value": "string"
             }
         ]
         },
         "aggregate_ids": [
         "string"
         ]
     },
     "user": "string"
     }
    
  2. Use the stock aggregate management create and update messages to create or update aggregates.

     {
     "aggregate": {
         "id": "string",
         "name": "string",
         "sources": [
         "string"
         ]
     }
     }
    

Export stock aggregation updates

Every time there is a stock snapshot update from a warehouse or a physical store the re-index process recalculates the real stock available to sell. The process takes into account the following parameters:

  • In-flight orders
  • Aggregation of the various sources/quantities
  • Safety stock calculations (thresholds defined at source or aggregate level)

Reindex process

You can setup your OMS via the OMS Backoffice. There you can export updates for each sale or cancellation event to keep multiple sales channels using the same aggregate, which is updated as soon as new orders are received in your OMS.

Configure sources

Quickly and easily add and configure sources right in the OMS Backoffice, or via the API. You can configure source nodes, applicable capabilities, and pickup locations all from the same Backoffice page.

Via Backoffice

The following configuration fields are available for a source in the OMS Backoffice.

Details section

Field Description
Name Name of the source
External ID ID by which you reference the source externally
Type Type of source, such as warehouse (WH)
Timezone in which source operates Timezone for the source
Internal ID ID by which you reference the source internally (integer)
Safety Stock Quantity defined at the source, category, or stock level of the item that acts as overstock (stock set aside, other than what is already specified as “available to sell”, to provide a buffer against over-selling)

Capabilities section

Field Description
Accepts Returns? Enable/disable ability to accept returns
Can fulfill and ship orders to another source Enable/disable ability to fulfill and ship orders to another source
In store Pick up Enable/disable ability to support the In-store pickup (ISPU) shipment method

Configurations section

Field Description
Integration name Add the name of the applicable integrations for this source
Ship from store Enable/disable ability for the integration to be applicable to SFS orders

Contact section

Field Description
First Name First name of source contact
Last Name Last name of source contact
Email Email of source contact
Phone Number Phone number of source contact

Address section

Field Description
Address Line #1 First address line for source location
Address Line #2 Second address line for source location
City City the source is within
State State the source is within
ZIP Zip code of the source location
Country Country the source is within
Latitude Latitude coordinate of source location
Longitude Longitude coordinate of source location

To add or configure a source in the Backoffice:

  1. Navigate to System > Sources.
  2. To edit an existing source, click the available souce in the Name column, or to create a new source click Add source.
  3. In the Details section, add a source name, an external ID (like “SOU1”), a type (like “WH”), the timezone in which the source operates, an internal ID (an integer, such as “1”), and a safety stock number (the quantity that is set aside) in the applicable fields.

    Create or edit a source

  4. In the Capabilities section, enable or disable the ability to accept returns, fulfill and ship orders to another source, or use the source for ISPU orders via the applicable fields.
  5. In the Configurations section, add an applicable source integration and enable or disable the source for SFS orders.
  6. In the Contact section, add a first and last name, email, and contact phone number for the source contact.
  7. In the Address section, add the address, including city, state, zip, country, latitude, and longitude, for the source location.
  8. Click Update, if you are updating an existing source, or Create, if you are creating a new source.

Via the API

You can also use the API to create a new source or edit an existing source.

Use the magento.inventory.source_management create message to create a new source and the update message to update an existing source.

You cannot currently configure safety stock via the API option. That configuration must be modified in the Backoffice.

{
  "source": {
    "id": "string",
    "name": "string",
    "type": "string",
    "timezone": "string",
    "configurations": {
      "active": "boolean",
      "capabilities": {
        "shipping": [
          "string"
        ],
        "services": [
          "string"
        ],
        "accepts_returns": "boolean",
        "fulfillment": {
          "can_ship_to_source": "boolean"
        }
      },
      "integration_name": "string",
      "ship_from_store": "boolean"
    },
    "address": {
      "reference": "string",
      "address_type": "string",
      "first_name": "string",
      "last_name": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country_code": "string",
      "phone": "string",
      "email": "string",
      "latitude": "string",
      "longitude": "string",
      "custom_attributes": [
        {
          "name": "string",
          "value": "string"
        }
      ]
    },
    "aggregate_ids": [
      "string"
    ]
  },
  "user": "string"
}

In-flight stock

In-flight stock is a mechanism to ensure that orders, which are not yet sourced or fulfilled, have a stock reservation in place that prevents other customers from allocating the same SKU on a new order (it sets aside stock so that a new purchase does not grab an item that’s already meant for a previous order).

In your OMS there are two types of in-flight stock:

  • Soft in-flights—Set as soon as the order is imported (while pending validations, such as payments, risk assesdments, remorse time, or sourcing). This reduces the stock quantity from the aggregate stock pool.
  • Hard in-flights—Defined as soon as an order is sourced. The stock is decremented from the source stock quantities until the logistics provider is informed of the acknowledgment of the purchased SKUs.

The soft in-flights are only removed by your OMS when an order gets hard-allocated, and changes the items to hard in-flights. The logistics provided triggers the removal of the in-flight for hard-allocated items by acknowledging the reception of those order lines.

The acknowledgment by the logistics provider is done via the lines_change_status message, and indicates the RECEIVEDBYLOGISTICS status at each order line.

At this point, your OMS assumes that the WMS/Logistics has already accounted for these order items, therefore it expects that the snapshot is already accounting for them, and removes the hard in-flight.

If a logistics provider is not capable of sending the RECEIVEDBYLOGISTICS status to your OMS, the hard in-flight will be accounted for until the lines are either shipped or cancelled.

Email notification for orders to fulfill

Every time a Ship from Store (SFS) order is generated an email is sent to the store assistant to notify them of orders that need to be fulfilled.

This configuration is only available for SFS orders at this time, but we are working to enable this option for ISPU and STS orders as well.

To configure the email sent to store assistants about orders ready to be fulfilled:

  1. To enable (make active and visible) the Categories for configuration in your System Integrator (SI) Portal, select a scope from the Select scope dropdown.
  2. Navigate to Sales Channel > Omnichannel > SFS email to store assistant.
  3. Select to enable the SFS email.
  4. Add a standard email subject in the Email Subject field.
  5. Add text for the body of the email, in the Email Body field, that will be sent to store assistants.
  6. Click Save.

The email recipient is defined at the Source level, via the Email option.

The System Integrator (SI) Portal is not accessible externally yet. Contact your Customer Success Manager (CSM) or Technical Account Manager (TAM) for assistance.