Skip to main content

Set up StoreItem 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