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: Enroll your endpoint in the Developer Portal
Once the endpoint is ready, enroll it using the Developer Portal:
Navigate to the Developer Portal
Navigate to your Marketplace integration
Navigate to the "Webhook subscriptions" section
Click "Configure endpoint"
Select the appropriate provider type
For "Event", select "Full Inventory Pull"
Enter the URL
- Enter the URL along with a
%s
to indicate where in the string DoorDash should pass the storelocation_id:https://{merchant_pull_endpoint}/%s
. DoorDash will send through the store_location_id _wherever you locate the%s
each time a request is made. Your endpoint must accept that URL parameter and return the inventory data only for the store specified. - Examples:
- Enter the URL along with a
Enter the authentication token (if needed)
- Currently we support static tokens and Oauth authentication mechanisms when calling Pull endpoints.
Step 4: 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: 1/21/2025