Add DoorDash exports
Use the DoorDash exports to keep your product catalog, store-level pricing and availability, and store hours up to date on DoorDash.
Introduction
DoorDash is a US-based on-demand delivery platform where grocery and convenience retailers list their products for local delivery. Productsup has built the DoorDash exports to let you keep your DoorDash listings up to date automatically — your product catalog, your store-level pricing and availability, and your store opening hours.
DoorDash keeps three kinds of data separate — your product catalog, your store-level inventory, and your store details. Productsup provides four channels across them. You can add one, some, or all of them, depending on what you need:
| Channel | What it sends | When to use it |
|---|---|---|
| DoorDash Items - API | Your product catalog — names, descriptions, images, and categories. | You need your products listed on DoorDash. |
| DoorDash Inventory - API | Store-level pricing and availability as a delta — only what has changed since the last run is sent directly to DoorDash. | You need ongoing, incremental price and stock updates per store. |
| DoorDash Inventory Pull - API | Store-level pricing and availability as a full catalogue — every run prepares a complete per-store file that DoorDash collects itself. | You have large or batch-style stock updates, or DoorDash prefers to pull a full file. |
| DoorDash Store Management - API | Each store's opening hours and holiday hours. | You need your store hours synced to DoorDash. |
Inventory has two flows: choose DoorDash Inventory - API for incremental delta updates pushed to DoorDash, or DoorDash Inventory Pull - API for full-catalogue files that DoorDash pulls. Use one or the other, not both, for a given store.
Each channel is added and set up separately, following the same steps.
The DoorDash exports cannot delete items or create stores. DoorDash has no delete operation, so to remove a product you mark it as unavailable instead. The DoorDash Store Management - API channel only updates stores that already exist on DoorDash — it cannot create new ones.
Prerequisites
To add a DoorDash export, you need:
- A DoorDash merchant account with API access enabled.
- Your DoorDash API credentials: Developer ID, Key ID, and Signing Secret. You enter these in the destination settings in Productsup.
- For the DoorDash Store Management - API channel, the stores you want to update must already be live on DoorDash.
Add and set up the export
Repeat these steps for each DoorDash channel you want to use.
Go to Exports from your site's main menu and select ADD EXPORT.
Search for the DoorDash channel you need — DoorDash Items - API, DoorDash Inventory - API, DoorDash Inventory Pull - API, or DoorDash Store Management - API — hover over it, and select Add.
On the Exports page, select the name of the added export to set it up.
Select Add Destination, choose the matching DoorDash destination from the drop-down list, give it a name as desired, and then select Save.
Enter your DoorDash API credentials in Developer ID, Key ID, and Signing Secret. These let the Productsup platform authenticate with your DoorDash account.
Switch Active to On to activate the destination.
Select Save.
Go to Dataflow from your site's main menu and select the added export from the drop-down menu in the upper ribbon.
Map the attributes from import to export, then run the export. See Use Dataflow to map your attributes from import to export for more information.
Map repeating fields
The channel template already includes the columns you map your data into. Some fields can repeat — for example, a store's opening hours or a product's images — and these come as numbered columns ending in _1, _2, _3, and so on. The template ships with a set number of these columns. If a store or product needs more, add the next-numbered column following the same name.
| What repeats | Already in the template | Add more as |
|---|---|---|
| Store opening hours (Store Management) | open_hours_day_index_1 to _8, each with its matching open_hours_start_time_N and open_hours_end_time_N | open_hours_day_index_9, _10, and so on, with matching start and end times |
| Store holiday and special hours (Store Management) | special_hours_date_1 to _5, each with its start time, end time, and closed value | special_hours_date_6, _7, and so on |
| Product images (Items) | image_url_1 | image_url_2, image_url_3, and so on |
Tip
For a day that has a break — for example, a store that closes for lunch — map that day a second time in the next available block. A seven-day store with one lunch break maps into blocks _1 to _8.
Caution
Keep the numbering in order from 1, with no gaps. A missing number stops the platform from picking up every column after it.
Check the feedback file
After each export, the platform retries any failed records automatically. Anything that still fails is written to a feedback file that names the product or store that failed and the reason DoorDash gave. The feedback file is the first place to look when something does not appear on DoorDash as expected.
The following table covers the most common issues:
| What you see | Likely cause | What to do |
|---|---|---|
| Some items show errors on the first run | The items already exist on DoorDash, and the export had no way to know | This is expected. Later runs correct themselves. |
| Every record fails | Missing, incorrect, or expired credentials in the destination settings, or a DoorDash outage | Check your credentials in the destination settings, then check DoorDash's status. |
| A store's hours are rejected | The hours were not in the format DoorDash expects | Check the feedback file for that store and review the hours formatting in your feed. |
| A store update fails with "not found" | That store is not set up on DoorDash yet | Use a store that is already live on DoorDash. |
| An error never appears in the feedback file | DoorDash reported the problem after accepting the request | Check your DoorDash developer portal. |
How is this guide?