Convert items for WFS

When you sell on Walmart Marketplace, you have 2 fulfillment options: seller fulfilled and Walmart fulfilled. Seller fulfilled means you manage inventory, shipping and customer service yourself. Walmart fulfilled means you send items to our fulfillment centers, where we take care of storage, packing, shipping, returns and customer support on your behalf. You must be enrolled in Walmart Fulfillment Services (WFS) to use this option.

Call this endpoint to convert an existing Walmart Marketplace item so it can be fulfilled by Walmart Fulfillment Services (WFS). Ensure that the items are WFS eligible before creating an inbound purchase order.

Note: If you have not set up your items, you can use the full Item + WFS Json spec to convert and upload items in one process, refer to Create a new item (Full item setup). To download the spec, go to Item spec versions and download the Convert existing item to WFS item step.

To learn how to convert your item for WFS using Walmart Seller Center, refer to Seller Help: Convert your items to WFS.

Prerequisites

Consider the following prerequisites before converting an item for it to be fulfilled by WFS:

Endpoint

Note: This page describes an example using only the required parameters and inputs to convert item for Walmart Fulfillment Services (WFS). For a full list of customization options and additional capabilities, refer to the Marketplace WFS API Reference.

POST https://marketplace.walmartapis.com/v3/feeds

Item conversion overview

This section provides an overview of the item conversion process to convert your items to WFS eligible items. If you haven't created your items yet, you can set up your items for WFS in one step. Refer to Set up items for WFS in the WFS guide.

Step 1: Download the WFS item conversion JSON schema

Download and extract the WFS conversion spec to convert your item to WFS or create an inbound purchase order. To download the spec, go to Item spec versions and download the Convert existing item to WFS item step.

Step 2: (Optional) Create an inbound purchase order

You can optionally create an inbound Purchase Order (PO). Download and extract the Inbound Purchase Order JSON Schema: InboundPurchaseOrderSchema.zip.

The InboundPurchaseOrderSchema.zip contains the JSON Schema definitions for creating WFS inbound purchase orders. It specifies the payload structure, required fields, data types, and validation rules for purchase order metadata, ship-to facility details, shipments, and shipment item lines (SKU and quantities), including enumerations and date/time formats used for validation.

Step 3: Call the convert items to WFS API

After you have extracted the wFS item conversion spec, you can call the Convert Items to WFS API. The default feedType is OMNI_WFS, (such as https://marketplace.walmartapis.com/v3/feeds?feedType=OMNI\_WFS).

Step 4: Restrict item sale by geographic location

If there are any sale restrictions by geographic location such as state or ZIP code, ensure you indicate them. If there are no restrictions, you can set the restriction type to None.

For more details about the State Restrictions attribute and its usage, see Restrict item sale by state or zip code.

Sample request

This sample request demonstrates how to convert an existing Walmart Marketplace item to be fulfilled by WFS.

curl --request POST \ --url 'https://marketplace.walmartapis.com/v3/feeds?feedType=OMNI_WFS' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'Authorization: Basic <Base64EncodedClientID:ClientSecret> \ --header 'WM_SEC.ACCESS_TOKEN: <Base64EncodedConsumerKey:ConsumerSecret>' \ --header 'WM_SVC.NAME: Walmart Marketplace' \ --header 'WM_QOS.CORRELATION_ID: 123456abcdef5' \ --data '
{ "SupplierItemFeedHeader": { "subCategory": "baby_clothing", "sellingChannel": "fbw", "processMode": "REPLACE", "locale": "en", "version": "1.4", "subset": "EXTERNAL" }, "SupplierItem": [ { "Visible": { "Baby Clothing": { "clothingSize": "S", "color": [ "Pink" ], "countryOfOriginTextiles": "USA", "smallPartsWarnings": [ "0 - No warning applicable" ], "mainImageUrl": "image.jpeg", "prop65WarningText": "Warning", "seasonYear": 2020, "manufacturer": "Generic" } }, "Orderable": { "productIdentifiers": { "productId": "05923239836453", "productIdType": "GTIN" }, "batteryTechnologyType": "Does Not Contain a Battery", "electronicsIndicator": "No", "endDate": "2040-01-01T00:00:00.000Z", "price": 10, "chemicalAerosolPesticide": "No", "sku": "sku_item", "stateRestrictions": [ { "stateRestrictionsText": "None" } ], "brand": "Goodlife", "productName": "Goodlife Corona_merge_split_19", "startDate": "2020-06-15T00:00:00.000Z" }, "TradeItem": { "countryOfOriginAssembly": [ "US - United States" ], "innerPack": { "innerPackWidth": 2, "innerPackHeight": 3, "qtySellableItemsInnerPack": 1, "innerPackGTIN": "gtin_item", "innerPackWeight": 2, "innerPackDepth": 1 }, "sku": "sku_item", "orderableGTIN": "gtin_item" } } ]
}
'
import requests url = "https://marketplace.walmartapis.com/v3/feeds?feedType=OMNI_WFS" headers = { "accept": "application/json", "content-type": "application/json" 'Authorization': 'Basic #####', 'WM_SEC.ACCESS_TOKEN': 'Base64EncodedConsumerKey:ConsumerSecret', 'WM_SVC.NAME': 'Walmart Marketplace', 'WM_QOS.CORRELATION_ID': '123456abcdef5',
} payload = { "SupplierItemFeedHeader": { "subCategory": "baby_clothing", "sellingChannel": "fbw", "processMode": "REPLACE", "locale": "en", "version": "1.4", "subset": "EXTERNAL" }, "SupplierItem": [ { "Visible": { "Baby Clothing": { "clothingSize": "S", "color": ["Pink"], "countryOfOriginTextiles": "USA", "smallPartsWarnings": ["0 - No warning applicable"], "mainImageUrl": "https://i5-qa.walmartimages.com/asr/549ecbe9-c874-475b-87d8-5e4cb19934ec.8f5d70e62bd0bb8abc6772c9ef1694e0.jpeg", "prop65WarningText": "Warning", "seasonYear": 2020, "manufacturer": "Generic" } }, "Orderable": { "productIdentifiers": { "productId": "05923239836453", "productIdType": "GTIN" }, "batteryTechnologyType": "Does Not Contain a Battery", "electronicsIndicator": "No", "endDate": "2040-01-01T00:00:00.000Z", "price": 10, "chemicalAerosolPesticide": "No", "sku": "05923239836453", "stateRestrictions": [ { "stateRestrictionsText": "None" } ], "brand": "Goodlife", "productName": "Goodlife Corona_merge_split_19", "startDate": "2020-06-15T00:00:00.000Z" }, "TradeItem": { "countryOfOriginAssembly": ["US - United States"], "innerPack": { "innerPackWidth": 2, "innerPackHeight": 3, "qtySellableItemsInnerPack": 1, "innerPackGTIN": "05923239836453", "innerPackWeight": 2, "innerPackDepth": 1 }, "sku": "05923239836453", "orderableGTIN": "05923239836453" } } ]
} response = requests.post(url, headers=headers, json=payload) print(response.status_code)
print(response.text) 

Modify your code

  • Use a unique WM_QOS.CORRELATION_ID for each request.
  • Replace WM_SEC.ACCESS_TOKEN with your valid access token obtained through authentication. Replace Base64EncodedConsumerKey:ConsumerSecret with your Base64 encoded client ID and client secret pair.
  • Replace sku_item with the item's actual SKU.
  • Replace gtin_item with the item's actual GTIN.

Sample response

The response confirms that the feed submission was processed successfully, and the item was converted so it can be fulfilled by Walmart Fulfillment Services (WFS).

{ "feedId": "FFE538D9B25A4000AD2A067ACEDCF4C4@AUoBAQA"
}

Rate limits

If you submit too many feeds in a short period of time, you may exceed Walmart’s rate limits and receive HTTP 429 (Too Many Requests) responses. For more details on throttling and best practices, refer to the Rate Limiting Guide.

Result

If successful, the API response returns a feedID and a message indicating that the Reduced Referral Fee incentives will be applied.

You can use this feed ID with the Feed Status API or All Feed Statuses API to monitor the progress of your submission and see the line item status.