Set up Catalog Pull
THIS FEATURE IS IN ACTIVE DEVELOPMENT - DOCUMENTATION SUBJECT TO FREQUENT CHANGE
Overview​
As part of the integration workflow, partners can implement an endpoint that allows DoorDash to pull all items sold at a store (the store's Catalog). A Catalog combines with Inventory to produce a customer-facing menu; without a Catalog, a store can't go live on DoorDash Marketplace. The Catalog pull feature allows for faster and more efficient store onboarding.
The response from this endpoint should match BatchAddOrUpdateItemRequest request model
Partners can trigger the job by creating a Catalog pull job by POST /api/v2/jobs with CreateJob request.
Get Started​
Step 1: Set up Endpoint Specification to Pull Catalog​
The set up of the endpoint is:
GET
/{merchant_pull_endpoint}/{partner_business_id}
partner_business_id
is the unique ID that is configured for that business within the partner's system. The endpoint will deliver the full catalog for 1 single business at a time. A "business" is a parent object that can have 1 or more children "stores"; all stores must share exactly the same Catalog to belong to the same business.
A simple test to determine if 2 stores belong to the same business:
- If item XYZ at store A has ID 123, while item XYZ at store B has ID 789, the 2 stores do not belong to the same business.
- If item XYZ at store A has ID 123, and item XYZ at store B has ID 123, and store A and store B have the same owners, then the 2 stores do belong to the same business.
Once the endpoint is ready, reach out to your Technical Account Manager to register the endpoint with DoorDash. Coming Soon: Self-serve subscription registration within the Developer Portal
Currently we support static tokens and Oauth authentication mechanisms when calling Pull endpoints. 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 items.json response from endpoint has the correct format​
As mentioned above, the Catalog pull request must return the response that matches BatchAddOrUpdateItemRequest request model
Note: The response should contain all items in a business. DoorDash will upsert the items from the partner's json response to the business' DoorDash Catalog when calling the pull job endpoint. If the response for any business will exceed 50,000 items, please inform your Technical Account Manager and request a limit increase.
Model response expected from endpoint:
{
"scope": {
"business_ids": [
"string"
]
},
"items": [
{
"merchant_supplied_item_id": "string",
"name": "string",
"description": "string",
"product_traits": [
"ALCOHOL"
],
"other_identifiers": [
{
"identifier_type": "UPC",
"identifier_value": "string"
}
],
"images": [
{
"url": "string",
"sort_id": 0
}
],
"size": {
"details": {
"dimensions": {
"length": {
"value": 0,
"unit": "inch"
},
"width": {
"value": 0,
"unit": "inch"
},
"height": {
"value": 0,
"unit": "inch"
}
},
"weight": {
"value": 0,
"unit": "lbs"
},
"volume": {
"value": 0,
"unit": "oz"
},
"product_specific_size_definition": {
"value": "string",
"description": "string"
}
},
"pack_size_details": {
"count_per_pack": 0,
"per_item_size_details": {
"dimensions": {
"length": {
"value": 0,
"unit": "inch"
},
"width": {
"value": 0,
"unit": "inch"
},
"height": {
"value": 0,
"unit": "inch"
}
},
"weight": {
"value": 0,
"unit": "lbs"
},
"volume": {
"value": 0,
"unit": "oz"
},
"product_specific_size_definition": {
"value": "string",
"description": "string"
}
}
}
},
"weighted_item_info": {
"average_weight_per_each": 0,
"average_weight_measurement_unit": "ea",
"shop_by_measurement_unit": "kg",
"price_by_measurement_unit": "kg"
},
"brand_info": {
"name": "string"
},
"program_eligibility": [
"SNAP"
],
"item_categorizations": [
{
"category": {
"name": "string",
"sub_category": {}
}
}
],
"product_attributes": [
{
"attribute_name": "string",
"attribute_value": {
"single_select_bool": true
}
}
]
}
]
}
Next Steps​
To ensure that Catalog pull is working as expected, please reach out to support via Developer Portal or your Technical Account Manager (if applicable) to test.
Modified: 11/11/2024