Walmart Product Create
Version | Date | Created / Updated | Notes |
---|---|---|---|
v1.0 | 06/11/2025 | Hristiyan | First publish |
This page is to define general requirements for Walmart listing creation.
This is an extention of our current call logic and feed management logic so this does not change. The changes are in the schemas and payloads being used. So we should keep our general logic for product create on Walmart.
API Docs: https://developer.walmart.com/api/us/mp/feeds & https://developer.walmart.com/global-marketplace/reference/itembulkuploads
API Call: POST /v3/feeds
Feed type : MP_ITEM
All triggers, validations etc. are as per our abstraction for Product Creation. Product Listing general requirements
Below is an example payload for the feed followed by mapping
{
"MPItemFeedHeader": {
"businessUnit": "WALMART_US",
"locale": "en",
"version": "5.0.20240517-04_08_27-api"
},
"MPItem": [
{
"Orderable": {
"sku": "09876543210987",
"productIdentifiers": {
"productIdType": "UPC",
"productId": "876543210987"
},
"price": 249.99,
"ShippingWeight": 0.57,
"stateRestrictions": [
{
"stateRestrictionsText": "None"
}
],
"specProductType": "Instant Cameras",
"startDate": "2024-01-01T00:00:00+00:00",
"endDate": "2032-12-31T00:00:00+00:00",
"fulfillmentLagTime": "1",
"MustShipAlone": "No"
},
"Visible": {
"Instant Cameras": {
"productName": "Wireless Earphones with Advanced Features",
"brand": "Walmart",
"shortDescription": "<p>Totally wireless earphones are built to revolutionize your workouts. The adjustable, secure-fit earhooks are customizable for extended comfort and stability.</p>A reinforced design for sweat and water resistance lets you take it to the next level. Each earbud has full volume and track controls and up to 9 hours of listening time to fuel your training with powerful, balanced sound.",
"keyFeatures": [
"Designed to keep up with your workouts",
"Reinforced design for sweat and water resistance with adjustable, secure-fit earhooks for added comfort and stability.",
"Stay connected from a distance with Bluetooth technology, these wireless earphones deliver extended range and fewer dropouts.",
"Powers through long hours of training"
],
"mainImageUrl": "https://i5.walmartimages.com/seo/onn-Wireless-Bluetooth-on-Ear-Headphones-Black-New_07de2d93-505b-4902-8366-388a3f30e3b4.9375c5690645733ec080eef3f4895f7b.jpeg",
"countPerPack": 1,
"multipackQuantity": 1,
"isProp65WarningRequired": "No",
"condition": "New",
"has_written_warranty": "Yes - Warranty Text",
"netContent": {
"productNetContentMeasure": 1,
"productNetContentUnit": "Each"
},
"productSecondaryImageURL": [
"https://i5.walmartimages.com/seo/onn-Wireless-Bluetooth-on-Ear-Headphones-Black-New_07de2d93-505b-4902-8366-388a3f30e3b4.9375c5690645733ec080eef3f4895f7b.jpeg"
],
"assembledProductLength": {
"measure": 4.33,
"unit": "in"
},
"assembledProductHeight": {
"measure": 4.33,
"unit": "in"
},
"assembledProductWeight": {
"measure": 0.57,
"unit": "lb"
},
"assembledProductWidth": {
"measure": 3.15,
"unit": "in"
},
"prop65WarningText": "No",
"manufacturer": "Walmart",
"manufacturerPartNumber": "WM123456",
"count": 1,
"warrantyText": "1 Year",
"color": "Blue"
}
}
}
]
}
Mapping (please note the mapping is based on the example. As a follow information please see a general breakdown of the schema)
Walmart field | MCPro Mapping | Notes | ||||
---|---|---|---|---|---|---|
MPItemFeedHeader |
N/A | |||||
locale |
Hardcoded as “en” | |||||
businessUnit |
Hardcoded as “WALMART_US” for the moment. | |||||
version |
To be picked from the Schema being used, can be found in version property |
|||||
MPItem |
||||||
Orderable |
||||||
sku |
Product > SKU |
|||||
productIdentifiers |
||||||
productIdType |
This should be either EAN or |
|||||
MPN or UPC or ISBN depending on which one we are sending. |
||||||
productId |
Product > EAN |
OR
Product > MPN
OR
Product > UPC
OR
Product > ISBN
| We should pick one of the 4 in that priority order and present it in the required format of key [mapped to productIdType
] and value [mapped to productId
] |
| | | price
| | | Listing
> Price
| |
| | | ShippingWeight
| | | Product
> Weight
| |
| | | stateRestrictions
| | | | |
| | | | stateRestrictionsText
| | | We pick this as per the Taxonomy - Walmart Taxonomy.
If empty we exclude it from the payload as it is not required. |
| | | specProductType
| | | | This will be the category that we have validated against. This is the leaf category (so productTypeName from the taxonomy) |
| | | startDate
| | | Listing Walmart
> Start Date
| In a ISO8601 format |
| | | endDate
| | | Listing Walmart
> End Date
| In a ISO8601 format.
We want to have a validation and we should not be able to have End Date
bigger than the Start Date
|
| | | fulfillmentLagTime
| | | Shipping Template
> Dispatch Time Max
| This is for the specific Channel. It is not a required field so if we don’t have shipping template we exclude it from the payload. |
| | | MustShipAlone
| | | Product Account Walmart
> Must Ship Alone
| Boolean value |
| | Visible
| | | | N/A | |
| | | Instant Cameras
| | | | This is the category picked. Same as specProductType
above |
| | | | productName
| | Listing
> Title
| |
| | | | brand
| | Listing
> Item Specifics
OR
Product
> Brand
| If the attribute “Brand” is present in Listing
> Item Specifics
we pick it from there. Otherwise we pick from Product
> Brand
This is a required attribute |
| | | | shortDescription
| | Listing > Description
| |
| | | | keyFeatures
| | Listing > Item Specifics
| Just a random category IS |
| | | | mainImageUrl
| | Listing Image | As per the Images abstraction - Images Handling Additional Explanation |
| | | | countPerPack
| | Listing > Item Specifics
| Just a random category IS |
| | | | multipackQuantity
| | Listing > Item Specifics
| Just a random category IS |
| | | | isProp65WarningRequired
| | Listing Walmart
> Prop65 Warning Required
| |
| | | | condition
| | Product
> ConditionID
| We need mapping :
-If we have New (with tags) we send “New”
-If we have New other (see details, without tags/box) we send “Open Box”
-If we have Used (Pre-owned, Like new) we send “Pre-Owned: Like New”
-If we have Like New we send “Pre-Owned: Like New”
-If we have Seller Refurbished OR Manufacturer refurbished, we send “Restored: Like New”
has_written_warranty |
Listing > Item Specifics |
This is a required IS as per the schema. | netContent |
productNetContentMeasure |
Listing > Item Specifics |
This is a complex multi attribute as per the taxonomy | productNetContentUnit |
Listing > Item Specifics |
This is a complex multi attribute as per the taxonomy | productSecondaryImageURL |
Main Image and More Images | As per the Images abstraction - Images Handling Additional Explanation Based on the explanation of the JSON schema it seems to be an Array field so we should be able to fit in all our additional images for the product. |
|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
assembledProductLength |
|||||||||||||||||||||||||||||||||||||||
measure |
Product > Length |
Since we currently only keep it in cm and walmart only accepts US metric units, we need to convert it to inches. | |||||||||||||||||||||||||||||||||||||
This is not a required field. | |||||||||||||||||||||||||||||||||||||||
unit |
Hardcoded as “in” | ||||||||||||||||||||||||||||||||||||||
assembledProductHeight |
|||||||||||||||||||||||||||||||||||||||
measure |
Product > Height |
Since we currently only keep it in cm and walmart only accepts US metric units, we need to convert it to inches. | |||||||||||||||||||||||||||||||||||||
This is not a required field. | |||||||||||||||||||||||||||||||||||||||
unit |
Hardcoded as “in” | ||||||||||||||||||||||||||||||||||||||
assembledProductWeight |
|||||||||||||||||||||||||||||||||||||||
measure |
Product > Weight |
Since we currently only keep it in cm and walmart only accepts US metric units, we need to convert it to pounds. | |||||||||||||||||||||||||||||||||||||
This is not a required field. | |||||||||||||||||||||||||||||||||||||||
unit |
Hardcoded as “lb” | ||||||||||||||||||||||||||||||||||||||
assembledProductWidth |
|||||||||||||||||||||||||||||||||||||||
measure |
Product > Width |
Since we currently only keep it in cm and walmart only accepts US metric units, we need to convert it to inches. | |||||||||||||||||||||||||||||||||||||
This is not a required field. | |||||||||||||||||||||||||||||||||||||||
unit |
Hardcoded as “in” | ||||||||||||||||||||||||||||||||||||||
prop65WarningText |
Product Account Walmart > Prop 65 Warning Text |
Not a required field. | |||||||||||||||||||||||||||||||||||||
manufacturer |
Product Account > Item Specifics |
| Just a random category IS |
| | | | manufacturerPartNumber
| | Product > MPN
| |
| | | | count
| | Product Account > Item Specifics
| Just a random category IS |
| | | | warrantyText
| | Product Account > Variation Specifics
| |
| | | | color
| | Product Account > Variation Specifics
| VS are generally treated as just another attribute on Walmart with just the option for the product to “vary” by those attributes. More is explained in the detailed section of “Visible” below through the additional fields |
As there are a lot of additional fields based on the JSON schema for product creation within the “Visible” and “Orderable” they should all be handled through the Taxonomy and item/variation specifics.
Additional specifications:
- Walmart is a single step feed creation - meaning once we push the product with all necessary information it should directly be available to the buyers for purchase (if successful of course)
- Everything else not specified above as part of the feed should be part of the Item Specifics to define the product requirements
- We should think on general best practice to normalise fields from Item Account > Item Specifics so we don’t have to force people to input their information specifically in Camel case
- Every Walmart feed is featuring 1 category - I am almost 100% sure this is how it is to be used via API as well when it goes through their UI and an excel template is uploaded