Inventory interface

This page describes the data format specification data format specification for transfering inventory-related information between Walmart.com and drop-ship vendors.

You can download this article in Word format: Walmart.com Drop Ship Vendor_Inventory Interfaces_XML.docx

Interface description

Data files

The inventory interface supports the following data files:

  • Item inventory file: Contains elements that reflect the current count of all items. Sent from DSV to Walmart.com only.

Response files supported by these interfaces are as follows:

  • Confirmation file: Contains a file confirmation. Sent from Walmart.com to DSV only.
  • Error file: Contains a file error message. Sent from Walmart.com to DSV only.

File transfer process

Each file transfer entails the following three steps:

  1. The sender generates a data file and pushes it to the recipient's server.
  2. The recipient parses the received file and validates the file format and data consistency.
  3. If the file parses, the recipient replies with a confirmation file to the sender. Otherwise, reply with an error file.

Interface design and implementation

System requirements

Messages are sent between Walmart.com and the DSV as ASCII text files in XML format. After creating a file, its creator pushes it to the recipient.

Error handling & resend process

Error messages are passed in error files. There are two types of errors:

  1. The received file is incomplete or invalid against the v4.0 DTD. In this case, the entire file is bad, and it is assumed that no data was processed. The sender will receive only the error file, no confirmation file, and resend a valid file as soon as possible.
  2. The file contains a message with bad data. In this case, only the error message is rejected, and all other messages in the file are processed. For example, if Walmart.com processes an item inventory file with 10 II_ITEM messages and finds 2 messages that contain bad data, then the following will occur:
    • Walmart.com sends a confirmation file, because the item inventory file is complete and valid against the v4.0 DTD.
    • Walmart.com sends an error file with 2 FE_ERROR elements detailing the bad II_ITEM messages.
    • Walmart.com processes the other 8 II_ITEM messages.
    • Supplier resends the II_ITEM messages in a subsequent file.

Scheduling & volume analysis

Variations on the standard schedule can be negotiated between each DSV and the Walmart.com logistics team. Outbound Walmart.com messages are generated as follows:

  • Confirmation and error files: One or both of these messages are generated as each inbound file is processed (if applicable). The messages are placed in an outbound queue and transmitted every ten minutes.

Inbound Walmart.com messages are processed as they are uploaded to the gateway server. Each DSV is expected to send files as follows:

  • Inventory update: The DSV sends item inventory files every 20 minutes. Vendors with many items can reduce the volume of inventory data by sending a full refresh once per day and an update every 20 minutes containing items that have been changed since the last update.

Sample inventory file

<?xml version="1.0" encoding="UTF-8"?>
<WMI>
<WMIFILEHEADER FILEID="225474.20091104.150503.841770" FILETYPE="FII" VERSION="4.0.0">
<FH_TO ID="2677" NAME="Walmart.com"/> <FH_FROM ID="123456" NAME="ABC brands">
<FH_CONTACT NAME=" ABC brands - Tom Clever" EMAIL="[email protected]" PHONE="2607235171" PHONEEXT="1067"/> </FH_FROM>
</WMIFILEHEADER>
<WMIITEMINVENTORY>
<II_ITEM ITEMNUMBER="10669104" UPC="0088333406931" SKU="BEACHR12 GOL">
<II_AVAILABILITY CODE="AC">
<II_ONHANDQTY>22</II_ONHANDQTY>
<II_DAYS MIN="1" MAX="2"/>
</II_AVAILABILITY>
</II_ITEM>
<II_ITEM ITEMNUMBER="10669105" UPC="0088333406932" SKU="BEACHR12 SIL">
<II_AVAILABILITY CODE="AC">
<II_ONHANDQTY>37</II_ONHANDQTY> <II_DAYS MIN="1" MAX="2"/>
</II_AVAILABILITY>
</II_ITEM>
<II_ITEM ITEMNUMBER="10669106" UPC="0088333406576" SKU="CDPCB">
<II_AVAILABILITY CODE="AC">
<II_DAYS MIN="1" MAX="2"/>
</II_AVAILABILITY>
</II_ITEM>
<II_ITEM ITEMNUMBER="10669107" UPC="0088333406921" SKU="CDRET">
<II_AVAILABILITY CODE="AC">
<II_DAYS MIN="1" MAX="2"/>
</II_AVAILABILITY>
</II_ITEM>
</WMIITEMINVENTORY>
</WMI>

General XML File Structure

Initial XML declaration

The first line of the file defines the XML standard version and the character encoding used in the file. The format for this is as follows:

XML data definition

Each data element is described in the following bullet points:

  • XPath location: The location of each element or attribute within the data element is defined based on Xpath notation.

    • If the Xpath begins with a / character, then it is absolute within the XML message (for example: /WMI/WMIHEADER/FH_TO@ID).
    • If the Xpath begins with any other character, then it is relative to the specified reference node (for example, FH_TO@ID, with a reference node of /WMI/WMIHEADER).

    For more information, refer to the XML Path Language documentation .

  • Required or optional: Specifies whether each element or attribute is required to populate its parent element.

    • If optional, then the element or attribute may be populated with no data or may be omitted entirely. Note that most optional data must be populated based on certain conditional business rules, so this must be considered when validating the file.
    • If required, then the element or attribute must exist and may not be empty.
  • Data type: Specifies the type of data that's contained in an element or attribute.

    • STR – A string value that can contain alphanumeric characters and punctuation. This is parsed data, so any XML markup delimiters must be escaped with a character string as follows:

      • Replace greater than (>) with \>
      • Replace less than (<) with \<
      • Replace ampersand (&) with \&
      • Replace double-quote (") with \"
      • Replace apostrophe (') with \'
      • For more information, refer to the Extensible Markup Language documentation
    • DEC – A decimal value that contains only numeric data and a decimal point. If the decimal is not present, it’s implied at the end.

    • NUM – Numeric data that can’t contain any alphabetic characters or punctuation.

    • DTM – A formatted date-time value that contains only numeric and punctuation characters. It is formatted as MM/DD/CCYY.hh24.mi, where MM/DD/CCYY is the date and hh24.mi is the 24-hour time (for example, 12/11/2025.17.01).

    • FID – A formatted file identifier that contains only numeric and punctuation characters. It is built from the file generation date and time, the WMFC vendor number and a six-digit random number (to guarantee uniqueness). The format is: VVVVVVVVV.YYYYMMDD.HHMMSS.NNNNNN, using the following notation:

      • VVVVVVVVV is the Vendor ID assigned by Walmart.com (1 to 9 digits)
      • YYYYMMDD is an eight-digit file creation date (GMT date)
      • HHMMSS is a six-digit file creation time (24-hour GMT time)
      • NNNNNN is a six-digit random number.

      Note that these are the same fields used to generate an XML filename. The filename and the file ID will use the same date, time and random number values.

  • Data length: Specifies the maximum length of the data as follows:

    • STR – Number of character digits. Note: When a character is escaped, the length of the data string expands. The length of the data string may be up to 6 times the number of string characters (for a case with all double-quote characters).
    • DEC – Expressed as N.D notation, where N is the number of characters allowed to the left of the decimal and D is the number of digits to the right. Note: Leading zeros are not required.
    • NUM – Number of numeric digits.
    • DTM – Number of characters in the formatted string.
    • FID – Number of characters in the formatted string.

WMIHEADER element

The WMIHEADER element is the first element in any file. It contains a unique file ID, the sender's name, the sender's vendor number, and information for contacting the sender.

For the FILETYPE value, use FII:

  • FII: File contains WMIITEMINVENTORY data element
NameReqTypeLengthDescription
/WMI/WMIHEADER (reference node)RFile descriptor with the following attributes: FILEID, FILETYPE, and VERSION. Also contains one each of the following elements: FH_TO and FH_FROM
@FILEIDRFID24 to 32Unique ID for this file. See the naming convention above.
@FILETYPERSTR3File Type code, see notes for FILETYPE values
@VERSIONRSTR5Version level of the XML format used. The value is ‘4.0.0’ for files using this specification.
FH_TORRecipient information, containing the following attributes: ID and NAME.
FH_TO@IDRNUM1 to 9Supplier number of the recipient. The value is ‘2677’ for files sent to Walmart.com.
FH_TO@NAMERSTR1 to 30Text name of the recipient. The value is ‘Walmart.com’ for files sent to Walmart.com.
FH_FROMRSender information, containing the following attributes: ID and NAME. Also contains a FH_CONTACT element.
FH_FROM@IDRNUM1 to 9Supplier number of the sender. The value is ‘2677’ for files from Walmart.com.
FH_FROM@NAMERSTR1 to 30Text name of the sender. The value is ‘Walmart.com’ for files from Walmart.com.
FH_FROM/FH_CONTACTROperations support contact information, with attributes NAME, EMAIL, PHONE, and PHONEEXT.
FH_FROM/FH_CONTACT@NAMERSTR1 to 30Name of the operations support contact
FH_FROM/FH_CONTACT@EMAILRSTR1 to 50Operations contact email address
FH_FROM/FH_CONTACT@PHONERNUM1 to 10Operations contact phone number a (10-digit string containing no punctuation or spaces).
FH_FROM/FH_CONTACT@PHONEEXTONUM1 to 5Operations contact phone extension (if applicable)

Item inventory XML file

Vendors use the item inventory file to periodically update the Walmart.com website's item information. This information tells customers whether an item is available through the website and how long it will take to fulfill.

File naming convention

The file name contains the file type, creation date and time, the supplier ID, and a six-digit random number. All filenames are case-sensitive.

The naming convention is: WMI_Inventory_VVVVVVVVV_YYYYMMDD_HHMMSS_NNNNNN.xml, where:

  • VVVVVVVVV is the Supplier ID assigned by Walmart.com (up to 9 digits)

  • YYYYMMDD is a formatted file creation date (GMT date)

  • HHMMSS is a formatted file creation time (24-hour GMT)

  • NNNNNN is a six-digit random number to guarantee uniqueness.

Example: WMI_Inventory_999999_20010418_163108_097981.xml

WMIITEMINVENTORY element

The WMIITEMINVENTORY element contains a group of inventory update messages. Each message from the supplier contains an update for a specific UPC. If data is missing or invalid, then II_ITEM elements can be individually rejected via a WMIFILEERROR file.

NameReqTypeLengthDescription
/WMI/WMIITEMINVENTORY (Reference Node)RContains at least one II_ITEM element
II_ITEMRInventory item with attributes ITEMNUMBER, UPC and SKU. Has one II_AVAILABILITY element and may contain one II_PRICE element
II_ITEM@ITEMNUMBERONUM1 to 13Walmart.com item number
II_ITEM@UPCRNUM13Wal-Mart UPC (13 digits with no check digit)
II_ITEM@SKURSTR1 to 20Vendor SKU or model number
II_ITEM@FACILITY_IDOSTR1 to 20DSV Facility Identifier; location where the inventory information pertains to, used when an item can be shipped from multiple facilities
II_ITEM/II_AVAILABILITYRItem availability with CODE attribute. May contain II_ONHANDQTY, II_DAYS, II_START and/or II_END, depending on the CODE value. See table below for details.
II_ITEM/II_AVAILABILITY@CODERSTR2Availability code. See list below for values
II_ITEM/II_AVAILABILITY/II_ONHANDQTYONUM1 to 10Quantity of items that are available to ship
II_ITEM/II_AVAILABILITY/II_DAYSOAn estimated number of business days that it’ll take to fulfill an order for this item, with MIN and MAX attributes.
II_ITEM/II_AVAILABILITY/II_DAYS@MINRNUM1 to 2Minimum number of business days
II_ITEM/II_AVAILABILITY/II_DAYS@MAXRNUM1 to 2Maximum number of business days
II_ITEM/II_AVAILABILITY/II_STARTOThe first date when the inventory will be available to sell, with DAY, MONTH and YEAR attributes.
II_ITEM/II_AVAILABILITY/II_START@DAYRNUM2Day of the month (01 to 31)
II_ITEM/II_AVAILABILITY/II_START@MONTHRNUM2Numeric month of the year (01 to 12)
II_ITEM/II_AVAILABILITY/II_START@YEARRNUM4Four-digit year (e.g. 2001)
II_ITEM/II_AVAILABILITY/II_ENDOThe last date when the inventory will be available, with DAY, MONTH and YEAR attributes.
II_ITEM/II_AVAILABILITY/II_END@DAYRNUM2Day of the month (01 to 31)
II_ITEM/II_AVAILABILITY/II_END@MONTHRNUM2Numeric month of the year (01 to 12)
II_ITEM/II_AVAILABILITY/II_END@YEARRNUM4Four-digit year (e.g. 2001)
II_ITEM/II_PRICEOPrice ($US) per Item with MSRP, RETAIL and COST attributes
II_ITEM/II_PRICE@MSRPODEC8.2Suggested retail price per item
II_ITEM/II_PRICE@RETAILODEC8.2Actual retail price per item
II_ITEM/II_PRICE@COSTODEC8.2Supplier cost per item to Walmart.com

Availability code values

  • AC: Active – Item can be ordered only if the number of items on hand is sufficient to fulfill the amount ordered. An II_ONHANDQTY element is required, and an II_DAYS element is optional. If II_DAYS is not specified, a default range of 1 to 2 business days is assumed.

  • AA: Always available – This is for high-demand items that might drop to zero on hand but are restocked constantly. The supplier will accept orders, even if there is zero stock, and ship items as they become available. An II_DAYS element is required to indicate how long it will take to fulfill an order.

  • PO: Pre-order – Supplier is accepting pre-orders for the item. An II_START element is required to indicate when orders are expected to ship. In addition, an II_ONHANDQTY element is required to determine how many items may be pre-ordered. After the start date, it behaves like an active item (II_ONHANDQTY required and II_DAYS optional).

  • JT: Just in time – Item is stocked on demand. II_DAYS must indicate how long it will take to fulfill an order.

  • BO: Build to order – Item is pre-configured and manufactured on demand. II_DAYS must indicate how long it will take to fulfill an order. Since the supplier configures these items before the order is placed, it’s assumed that the item will always ship, and backorders aren't allowed.

  • SE: Seasonal – Item is available but seasonal, and orders are only accepted during a specified date range. Both II_START and II_END elements are required to indicate the date range. Within the date range, it behaves like an active item (II_ONHANDQTY required and II_DAYS optional).

  • RO: Run out – Item is discontinued and will not be restocked. For II_INVENTORY, II_END indicates the last date on which orders will be accepted. Before the end date, it behaves like an active item (II_ONHANDQTY required and II_DAYS optional).

  • NA: Not active – Item isn't available for purchase at this time.

  • DT: Deleted – Item isn't available for purchase and might be deleted from the catalog.

Two availability code values will automatically remove an item from the Walmart.com site catalog. The NA code is used when it is possible that the item UPC may return at some time in the future.DT is used if the item UPC will not return (such as when a UPC is discontinued). Send at least two consecutive update messages before the UPC is removed from the inventory feed.