Set up Inventory Pull
Overview
As part of the integration workflow, partners can implement an endpoint that allows DoorDash to pull and replace all StoreItems sold in a store location. This effectively refreshes the item availability and pricing visible to Customers shopping on DoorDash.
The response from this endpoint should match BatchAddOrUpdateStoreItemRequest request model
Partners can trigger the job creating a StoreItem pull job by POST /api/v2/jobs with CreateJob request.
The job parameters in CreateJobRequest should match CreatePullStoreItemsJobParameters
Get Started
Step 1: Set up Endpoint Specification to Pull StoreItem
The set up of the endpoint is:
GET
/{merchant_pull_endpoint}/{store_location_id}
store_location_id
is the unique Merchant Supplied ID that is configured for that store location. The endpoint will deliver the full inventory for 1 single location at a time.
Once the endpoint is ready, reach out to your Technical Account Manager to register the endpoint with DoorDash.
Currently we support static tokens and Oauth authentication mechanisms when calling Pull Store Item endpoint. If DoorDash needs to authenticate with your endpoint using Oauth, please share the oauth endpoint with Technical Account Manager to register in DoorDash.
Step 2: Ensure that storeItems.json response from endpoint has the correct format
As mentioned above, the StoreItem Pull request must return the response that matches BatchAddOrUpdateStoreItemRequest request model
Note: The response should contain all StoreItems in a store. DoorDash will replace the all StoreItem attributes of the store with the ones from the json response when calling the pull job endpoint.
Sample response expected from endpoint:
{
"items": [
{
"merchant_supplied_item_id": "1",
"item_availability": "ACTIVE",
"price_info": {
"base_price": 1099,
"sale_price": 999,
}
},
{
"merchant_supplied_item_id": "2",
"item_availability": "INACTIVE",
"price_info": {
"base_price": 599,
"sale_price": 599,
}
}
.
.
.
{
"merchant_supplied_item_id": "10000",
"item_availability": "ACTIVE",
"price_info": {
"base_price": 499,
"sale_price": 499,
}
},
]
}
Step 3: Trigger StoreItem Pull by creating pull Job
You can trigger a StoreItem pull by POST /api/v2/jobs
with CreateJob request and job parameters in CreateJobRequest should match CreatePullStoreItemsJobParameters. The CreateJob request can accept only 1 location. To pull inventory for multiple locations, you will make multiple requests to the /api/v2/jobs endpoint, one for each location.
Following is a sample CreateJob request to trigger StoreItem pull
{
"job_type": "PULL_STORE_ITEMS",
"job_parameters": {
"store_location_id": "100",
"pull_mode": "REPLACE"
}
}
Next Steps
To ensure that StoreItem Pull is working as expected, please reach out to support via Developer Portal or your Technical Account Manager (if applicable) to test StoreItem Pull.
Modified: 2/04/2024