Inventory Export

Warning

This documentation is for translated APIs and intended only for some implementations who have upgraded from a previous version of Order Management. Verify whether your implementation uses translated APIs before making this call, as you will experience errors if your tenant is not configured to use these. If your implementation is not configured to do so, then refer to the standard API documentation instead.

Kibo clients typically have extensive inventory data to share. While Kibo best practices recommend using the Inventory REST APIs, which provide better error handling and faster responses, the Bulk Data Exchange tools are also available. After processing the inventory data from the client import and factoring in issues such as pending orders, an Export file is made by Kibo and delivered to the front end for display. This file takes into account all current orders that impact inventory and informs the client about the actual quantities they have available to sell. This available quantity is calculated by subtracting the pending order items and safety stock from the amount “on hand”, so Inventory Export is valuable to clients to maintain reliability in their inventory management.

Some clients may use the imported inventory data to assign orders to their fulfillment locations. The inventory data is also provided to clients through the Inventory Export process.

For clients upgrading from a previous version of OMS to the Unified Commerce Platform, the process to import an inventory file remains unchanged. This includes the data fields within the files, as the platform’s translation layer is applied to these files to enable backwards compatibility.

Using Inventory Export

Two types of exports are available: Aggregate Exports and Location Exports.

  • Aggregate Exports provides total stock information for items across all fulfillment locations included in the export.
  • Location Exports provide item stock and location information, sorted by fulfillment location.

Note that there is no “trickle feed” in Inventory Export.

Getting Started

Setup Requirements

To get started, there must be an SFTP (Secure File Transfer Protocol) site where Kibo can pick up and drop off inventory files. The client needs to provide a username, password, remote path, and remote path archive for the file transmission location.

Scheduling Imports and Exports

Inventory imports and exports will occur on a regular, set schedule. Kibo Engineering can set up crons (scheduled jobs) to fetch inventory either at a specific time or on a regular interval, such as every 10 minutes or every hour.

Inventory Export Files

Inventory data is provided as XML files, compressed into Zip format. Kibo also provides a Trigger or Control file with the data. The Trigger file is written to the SFTP after transmission of the Inventory Export file is completed. Trigger files are empty files and have an extension of .done.

Aggregate Export Files

Aggregate Export files provide total stock information for items across multiple fulfillment locations.

File Names for Aggregate Exports

Files are named as follows:

  • mfg_id_AGG_YYMMDDhhmmss – for XML files
  • File name extension is .xml for XML files; .zip for zip files; .done for Trigger files.

Where:

  • mfg_id is the Kibo-assigned manufacturer ID (for example, 3456)
  • YYMMDD is the date as year-month-day that the file is created (for example, 130301 for March 1, 2013)
  • _AGG_ designates that this is an Aggregate file, and is entered literally
  • hhmmss is the time as hour-minute-second that the file is created in Pacific Standard Military Time (for example, 225912 for 10:59:12 p.m. PT)

Data Elements

Schema: http://api.shopatron.com/xsd/InventoryAggregateExport.xsd

ElementRequiredData Type OccursDescription
itemYes
Number of items in inventory (1 to 50)A container that includes information for one item in inventory.
PartNumberOptionalString0 or 1/itemThe merchant-assigned Part Number for the product. The maximum length is 50.
UPCOptionalString0 or 1/itemThe UPC of the product. The maximum length is 50.
SKUOptionalString0 or 1/itemThe SKU for the product. The maximum length is 50.
QuantityOnHandYesInteger1/itemThe number of this item in inventory.
QuantityAvailableYesInteger1/itemThe number of this item that are available to sell; in other words, the QuantityOnHand minus the quantity already allocated minus the safety stock level.
AttributesOptionalArray0 or 1/itemA list of attributes that are assigned to the item.
InventoryLocatorNameOptionalString0 or 1/itemAn identifier to indicate where a particular SKU exists within a location. For example, “Aisle 5” would indicate that the bin this item belongs to is located in Aisle 5. The maximum length is 50.

Location Export Files

Location Exports provide item stock and location information, by fulfillment location.

File Names for Location Exports

Files are named as follows:

  • mfg_id_LOC_YYMMDDhhmmss.xml – for XML files
  • mfg_id_LOC_YYMMDDhhmmss .zip – for zip files

Where:

  • mfg_id is the Kibo-assigned manufacturer ID (for example, 3456)
  • YYMMDD is the date as year-month-day that the file is created (for example, 130301 for March 1, 2013)
  • _LOC_ designates that this is a location file, and is entered literally
  • hhmmss is the time as hour-minute-second that the file is created in Pacific Standard Military Time (for example, 225912 for 10:59:12 p.m. PT.

Data Elements

Schema: http://api.shopatron.com/xsd/InventoryExport.xsd

ElementRequiredData Type (Length)OccursDescription
LocationYesStructNumber of locations in inventory fileA container that includes all the information for this location.
LocationNameYesString (50)1/locationThe name of this location.
LocationActiveYesInt1/locationIndicates whether this location is active (1) or not active (0).
STHEnabledOptionalInt1/locationIndicates whether this store fulfills Standard (ship to home) orders; 0 (no) or 1 (yes). If not specified, default of 1 (yes) is used.
STSEnabledOptionalInt1/locationIndicates whether this store fulfills Ship to Store orders; 0 (no) or 1 (yes). If not specified, default of 0 (no) is used.
ISPUEnabledOptionalInt1/locationIndicates whether this store fulfills In-Store Pickup Local Search First orders; 0 (no) or 1 (yes). If not specified, default of 0 (no) is used.
IncludeInAggregateFeedOptionalInt1/locationIndicates whether this location information is included in the aggregate inventory export file; 0 (no) or 1 (yes). If not specified, default of 1 (yes) is used.
ItemYes
Number of items in inventory file (1 to 50)A container that includes information for one item in inventory.
PartNumberOptionalString (50)0 or 1/itemThe merchant-assigned Part Number for the product.
UPCOptionalString (50)0 or 1/itemThe UPC of the product.
SKUOptionalString (50)0 or 1/itemThe SKU for the product.
QuantityOnHandYesInt1/itemThe number of this item in inventory.
QuantityAvailableYesInt1/itemThe number of this item that are available to sell; in other words, the QuantityOnHand minus the quantity already allocated minus the safety stock level.
SafetyStockOptionalInt0 or 1/ItemQuantity you want to keep in stock to ensure your stock isn’t completely depleted. Both Safety Stock and Floor are optional; most people prefer Safety Stock to Floor.
FloorOptionalInt0 or 1/itemAbsolute minimum number that should be in stock at any time. Both Safety Stock and Floor are optional; most people prefer Safety Stock to Floor.
AttributesOptionalArray0 or 1/itemA list of attributes that are assigned to the item.
InventoryLocatorNameOptionalString0 or 1/itemAn identifier to indicate where a particular SKU exists within a location. For example, “Aisle 5” would indicate that the bin this item belongs to is located in Aisle 5. The maximum length is 50. The maximum length is 50.

Example Files

Aggregate Export 

<?xml version="1.0" encoding="UTF-8"?>
<InventoryAggregateExport
    xmlns="http://api.shopatron.com/xsd/InventoryAggregateExport"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://api.shopatron.com/xsd/InventoryAggregateExport http://api.shopatron.com/xsd/InventoryAggregateExport.xsd">
    <Item>
        <PartNumber>8888074513</PartNumber>
        <UPC>8888074513</UPC>
        <SKU>8888074513</SKU>
        <QuantityAvailable>10</QuantityAvailable>
        <QuantityOnHand>15</QuantityOnHand>
        <Floor>0</Floor>
    </Item>
    <Item>
        <PartNumber>8888074514</PartNumber>
        <UPC>8888074514</UPC>
        <SKU>8888074514</SKU>
        <QuantityAvailable>0</QuantityAvailable>
        <QuantityOnHand>10</QuantityOnHand>
        <Floor>0</Floor>
    </Item>
</InventoryAggregateExport>

Location Export 

<?xml version="1.0"?>
<InventoryExport>
        xmlns="http://api.shopatron.com/xsd/InventoryExport"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://api.shopatron.com/xsd/InventoryExport InventoryExport.xsd">
    <Location>
        <LocationName>1010</LocationName>
        <LocationActive>true</LocationActive>
        <STHEnabled>true</STHEnabled>
        <RestockEnabled>false</RestockEnabled>
        <PickupEnabled>true</PickupEnabled>
        <IncludeInAggregateFeed>true</IncludeInAggregateFeed>
        <Item>
            <PartNumber>11223344</PartNumber>
            <UPC>11223344</UPC>
            <QuantityAvailable>10</QuantityAvailable>
            <QuantityOnHand>12</QuantityOnHand>
            <SafetyStock>5</SafetyStock>
            <Floor>2</Floor>
            <LTD>1</LTD>
            <InventoryLocatorName>Aisle 3</InventoryLocatorName>
        </Item>
        <Item>
            <SKU>11223345</SKU>
            <QuantityAvailable>1</QuantityAvailable>
            <QuantityOnHand>2</QuantityOnHand>
        </Item>
    </Location>
    <Location>
        <LocationName>1011</LocationName>
        <LocationActive>false</LocationActive>
        <STHEnabled>false</STHEnabled>
        <RestockEnabled>true</RestockEnabled>
        <PickupEnabled>true</PickupEnabled>
        <IncludeInAggregateFeed>true</IncludeInAggregateFeed>
        <Item>
            <PartNumber>11223346-XL</PartNumber>
            <QuantityAvailable>0</QuantityAvailable>
            <QuantityOnHand>0</QuantityOnHand>
            <LTD>2</LTD>
            <InventoryLocatorName>Aisle 2</InventoryLocatorName>
        </Item>
        <Item>
            <SKU>xxxx-yyy-zzz-1</SKU>
            <QuantityAvailable>0</QuantityAvailable>
            <QuantityOnHand>1</QuantityOnHand>
        </Item>
    </Location>
</InventoryExport>