- 15 Aug 2024
- 4 Minutes to read
- Print
- DarkLight
- PDF
Walmart Marketplace
- Updated on 15 Aug 2024
- 4 Minutes to read
- Print
- DarkLight
- PDF
Walmart Marketplace API
Any instance where an entry in the below configuration has a leading $ represents a parameter that needs to be replaced with a static value.
Parameters in this document:
- $client_id and $client_secret - The Client ID and Client Secret will be used to authenticate calls to the Walmart Marketplace API. These values are associated wtih an Authenticated User in Walmart, and will be exchanged for the access token that will be used to make API calls. You can find your Client ID and Client Secret here.
- $encoded_auth - In order to utilize the Client ID and Client Secret to access the Walmart API, it must be added to the Refresh Access Token process as a Base64-encoded value. To get this, within your computer's terminal, enter the following string:
echo -n '$client_id:$client_secret' | base64
. The result will be the value to use for this parameter. If you run into any problems running the above string in the terminal, you can also find online resources for generating a Base64-encoded value, or reach out to our Support Team and we'd be happy to assist in generating this value. - $endpoint - The Endpoint represents the data that you would like to ingest into Panoply from the Walmart Marketplace API. The value that should be used here can be found in the API Resources table below.
- $version - The version of the API can be found in the Walmart documentation for a given resource, and will be given as
v#
(e.g. v2, v3, etc.). - $limit - The Limit value represents the number of records returned by the API per page.
- $pagination_key - The Pagination Key represents the column that will be used for paginating results in the API.
- $data_key - The Data Key represents the location of the data in the API response from Walmart Marketplace.
- $incremental_key - The Incremental Key represents the column that will be used to collect only new records in subsequent collections.
- $primary key - Primary keys are used to ensure the uniqueness of the rows in a table. The Primary Key is comprised of one or more columns that can be used to identify the row in the data warehouse. The process guarantees that no two rows have the same value in their primary key.
- $incremental_starting_value - The Incremental Starting Value represents the earliest date that data should be collected for, given in
yyyy-mm-DD
format. For example, if you would like your historical data to go back to the start of 2021, this value would be set to2021-01-01
.
API Resources
For a list of API Resources available for the Walmart Marketplace API, please refer to the list of endpoints found here. We have also provided a list below with endpoints that we have successfully connected to in the Panoply platform to provide integration details that are necessary and utilized below. If an endpoint that you would like to ingest does not appear in this list, please reach out to our Support Team and we'd be happy to assist in getting that connected!
Resource Name | $endpoint | $incremental_key | $data_key | $primary_key | $limit | $pagination_key |
---|---|---|---|---|---|---|
Fulfillment Inventory | fulfillment/inventory | frommodifieddate | payload.inventory | {sku}-{shipnodes_modifieddate} | 300 | |
Items | items | frommodifieddate | ItemResponse | {sku} | 50 | nextCursor |
Orders | orders | lastmodifiedstartdate | list.elements.order | {purchaseorderid} | 200 | poIndex |
Returns | returns | returnlastmodifiedstartdate | returnOrders | {returnorderid} | 200 | offset |
Connector configuration
- Base url: https://marketplace.walmartapis.com/$version/$endpoint
- Method: GET
All resources utilize the limit=$limit
URL parameter, however additional parameters can be used in addition to this and can be found in the links above for each resource. For example, if you only want to collect Published Items that are in New condition, the following would be the URL Parameters entry:
limit=$limit&publishedStatus=PUBLISHED&condition=New
To find additional parameters available for a given resource, visit the link for the resource provided above in the API Resources section.
- Headers: {"WM_QOS.CORRELATION_ID":"Panoply","WM_SVC.NAME":"Walmart Marketplace","Accept":"application/json"}
Destination Table naming convention is ultimately up to you as the data owner. One common structure used for this API is concatentating "walmart_" and the resource being ingested. For example, when ingesting the Orders resource, the destination table name would be walmart_orders
.
Pagination
- Enable:
- Get next page value: Static (integer to be incremented)
- Start page: 0
- Page step: $limit
- Use next page value: AS a URL parameter value
- URL/body key: $pagination_key
- Stop iterating when: Empty data
- Enable:
- Get next page value: Dynamic (next page value included in the response)
- Next page key in response: $pagination_key
- Use next page value: As a URL parameter value
- URL/body key: $pagination_key
- Stop iterating when: No next page in response
Refresh access token
- Enable:
- URL: https://marketplace.walmartapis.com/v3/token
- Method: POST
- POST data: {"grant_type":"client_credentials"}
- Headers: {"WM_SVC.NAME":"Global_SVC_NAME","WM_QOS.CORRELATION_ID":"Panoply","Content-Type":"application/x-www-form-urlencoded","Accept":"application/json","Authorization":"Basic $encoded_auth"}
- Access token response key: access_token
- Access Token header key: WM_SEC.ACCESS_TOKEN
- Error status codes: 401; 403
Advanced Settings
- Data key: $data_key
For the Fulfillment Inventory resource, set the Array to flatten value to shipNodes
. For all other resources, leave this value empty.
- Primary Key: $primary_key
- Incremental Key:
Column name Column value $incremental_key $incremental_starting_value
When entering a column value to the incremental key feature, you will need to use the following format: yyyy-mm-DD
For the Fulfillment Inventory and Items resource, set the Default Behavior to Flatten on parent table
. For all other resources, leave this value as Create one-to-many tables
.