Walmart Stock Update
Summary of Changes: (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)
Version | Date | Created / Updated | Notes |
---|---|---|---|
v1.0 | N/A | Danail | First publish |
v1.1 | 14/12/2023 | Hristiyan | Walmart has new API version and updates. The scope was also updated to the latest changes on Walmart. Everything that is not tagged with v1.1 remains the same. |
The purpose of this page is to outline the way of handling Walmart stock updates
API Docs: https://developer.walmart.com/doc/us/mp/us-mp-inventory/ & https://developer.walmart.com/api/us/mp/inventory
<v1.1> Walmart are currently supporting both XML and JSON but we will go for JSON.
There are options for a single calls as well (same as for eBay) and if and where applicable we would like to move to a point where we examine what we have to update easily and decide if it will make more sense to do it in bulk or via the single record update.
Single item quantity update:
API call : PUT https://marketplace.walmartapis.com/v3/inventory
Example payload:
{
"sku": "97964_KFTest",
"quantity": {
"unit": "EACH",
"amount": 10
}
}
Mapping :
Walmart Field | Hemi Field | Notes | |
---|---|---|---|
sku |
Product > SKU |
string | |
An arbitrary alphanumeric unique ID, specified by the seller, which identifies each item. This will be used by the seller in the XSD file to refer to each item. Special characters in the sku needing encoding are: ':', '/', '?', '#', '[', ']', '@', '!', '$', '&', "'", '(', ')', '*', '+', ',', ';', '=', ‘ ’, '{', '}' as well as '%' itself if it's a part of sku. Make sure to encode space with %20. Other characters don't need to be encoded. | |||
quantity |
|||
unit |
N/A | Hardcoded as “EACH” | |
amount |
Product Account > Quantity |
Since this call is for single item quantity update, we want to use it exactly for that. We need to have some internal validation and if we have more than 1 item for stock update we will use the Bulk inventory update as per the below scenario. </v1.1>
Bulk item quantity update:
API Call : POST https://marketplace.walmartapis.com/v3/feeds
Feed Type: Inventory
Below can be found an example payload followed by Mapping
{
"InventoryHeader": {
"version": "1.4"
},
"Inventory": [
{
"sku": "test1",
"quantity": {
"unit": "EACH",
"amount": 10
}
},
{
"sku": "894728",
"quantity": {
"unit": "EACH",
"amount": 20
}
}
]
}
Mapping
Walmart Field | Hemi Mapping | Hemi Notes | ||
---|---|---|---|---|
InventoryHeader |
N/A | |||
version |
N/A | Hardcoded to “1.4” | ||
Inventory |
N/A | |||
sku |
Product > SKU |
|||
quantity |
N/A | |||
unit |
N/A | Hardcoded to “EACH” (this can be used to update multiple locations on Walmart with different stock levels. At the moment we don’t support updating multiple locations just keeping the info in Hemi the right way) | ||
amount |
Product Account > Quantity |
<v1.1> The standard Stock rules should apply as per the stock update abstraction Stock Update general requirements</v1.1>. Also the set general Walmart feed rules should apply too (re timing of reading, errors handling, etc. mentioned in the main page).