Skip to main content

Get started (WooCommerce Plugin)

This tutorial will introduce you to the Local Delivery by DoorDash plugin for WooCommerce. It assumes you're familiar with the basics of WordPress and WooCommerce. If you'd like to learn the Drive APIs by writing code, you should use the Get started (Node.js SDK) tutorial or Get started (API) tutorial instead.

Table of contents

  1. Sign into the Developer Portal
  2. Create an access key
  3. Install the Local Delivery by DoorDash plugin for WooCommerce
  4. Create a delivery
  5. Use the Delivery Simulator
  6. Get the status of your delivery
  7. Finish up

Prerequisites

  1. A valid SSL certificate is required.
  2. PHP version 7.4 or higher.
  3. A functional WordPress and WooCommerce installation.

Sign into the Developer Portal

Go to the Developer Portal using the link in the top right corner of this page. If you already have a DoorDash account, enter your email and password and sign in; if not, or if you want to use a different account for development, click Sign Up and follow the process to create an account.

A screenshot of the Developer Portal sign-in screen

Create an access key

In the left navigation, click Credentials.

A screenshot of the Developer Portal left navigation menu with the Credentials navigation item highlighted

On the Credentials page, click the plus (+) icon in the center of the page to create a new access key. You'll use this access key to create a JSON Web Token (JWT) that you can use to make requests to the Drive API.

A screenshot of the Credentials page with the button for creating a new access key highlighted

Name your key test-app and click Create Access Key.

A screenshot of the modal for creating an access key

Click Copy to copy the access key to your clipboard and then paste it somewhere where you can access it later in the tutorial.

A screenshot of an access key

Install the plugin

Installation

Follow the instructions below to install the Local Delivery by DoorDash plugin.

From Local Delivery by DoorDash from within WordPress

  1. From your dashboard, navigate to Plugins > Add New.
  2. Search for Local Delivery by DoorDash.
  3. Click Install Now.
  4. Click Activate, after the plugin downloads.

Install Local Delivery by DoorDash Manually

  1. Upload the woocommerce-doordash folder to your /wp-content/plugins/ directory.
  2. Activate the Local Delivery by DoorDash plugin by visiting Plugins > Installed Plugins and clicking Activate.

Configuration

After installation, a new tab will be added under WooCommerce > Settings called “Local Delivery by DoorDash.” Use the controls on this page to configure your connection with DoorDash, create an API user for DoorDash to update your orders with delivery status information, and manage the pickup locations for your deliveries.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Local Delivery by DoorDash settings screen

Settings Tab

The first tab contains general configuration settings for the plugin, allowing you to connect the plugin to the DoorDash API, configure the types of deliveries your store offers and the fees that will be charged to customers, and the default delivery hours for your store.

API Configuration

If you don’t already have one, you will need to create an account on the DoorDash Developer portal to be able to create deliveries. After your account is created, you can follow the instructions on the DoorDash Developer documentation on creating and managing credentials to generate your Developer ID, Key ID, and Signing Secret.

Developer ID

This ID identifies your user on the DoorDash Developer Portal and is used to connect to the DoorDash Drive API. Paste the value of the developer_id generated with your access keys in this field. Note: Your developer_id will remain the same for all sets of credentials within your DoorDash Organization.

Active Environment

The DoorDash Drive API provides Sandbox and Production modes. Sandbox mode can be used for testing your integration and will not create live deliveries. Production mode will dispatch a DoorDasher to complete a delivery. The plugin allows for separate Sandbox and Production keys to be entered in the configuration, and the active mode can be selected with this dropdown.

Key ID and Signing Secret

After generating your Access Keys, paste the appropriate values in these fields to allow your site to communicate with the DoorDash Drive API. Both Production and Sandbox keys are saved.

Delivery Configuration

These settings allow you to select the desired parameters for deliveries from your store.

Delivery Scheduling

There are two types of delivery available. Either or both can be offered to customers.

  1. Scheduled Deliveries allow users to choose a time for their delivery. Available times are limited by the configured delivery hours for your shop or the selected location.
  2. ASAP Deliveries will be delivered in the next available delivery window, as limited by the location hours.

Select both ASAP and Scheduled Deliveries to allow customers to choose their delivery type.

Order Lead Time

This value is the number of minutes that are required to fill an order before a DoorDasher should arrive. In retail environments, this might be just 10 minutes to allow an employee to pick a product and bag it for the DoorDasher. For restaurant environments, this value might be 60 minutes to allow for an order to be prepared by the kitchen. In some cases, this value might be much higher to allow for preparation of more complex orders.

Default Pickup Instructions

The text in this field will be sent through the DoorDash app to the DoorDasher assigned to the delivery. These are instructions for the Dasher to follow upon pickup of the order. This can be overridden on a per-location basis.

Fees Configuration

These settings configure the fees charged to your customers for DoorDash delivery. Note: DoorDash rates are paid by the shop owner. See the documentation.

Delivery Fees Mode

This setting controls the type(s) of fees charged to your customers for DoorDash delivery. There are three options:

  1. No charge for customer (shop pays) allows you as the shop owner to cover the cost of delivery for the order.
  2. Charge customer the quoted DoorDash rate will pass the quoted cost on to the customer as a shipping charge in WooCommerce.
  3. Charge customer a fixed rate allows for a fixed price to be set for delivery.
Delivery Fee

When used with Charge customer a fixed rate, the amount entered in this field will be added to the order as a shipping charge. When used with Charge customer the quoted DoorDash rate, this amount will be added to the quoted DoorDash rate.

DoorDasher Tipping

This setting allows for tipping for DoorDashers to be disabled. This is not recommended as tips can help an order get accepted by a Dasher more quickly. 100% of the tip goes directly to the Dasher.

Default Delivery Hours

Default delivery hours will apply to all locations that do not have their own delivery hours configured. This is helpful when you have many locations that all offer the same hours.

Enter hours for each day with a dash separating the opening and closing time, eg 10:00am - 8:00pm. Multiple ranges can also be entered separated with a comma, eg, 10:00am - 1:00pm, 4:00pm - 7:00pm. Make sure you have configured your Timezone in your WordPress settings under Settings > General. If deliveries are not offered, leave the field for that day blank.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Webhooks configuration tab in Local Delivery by DoorDash settings

Webhooks Tab

Webhooks are events that fire when a certain action has been completed. In the case of the DoorDash Drive API, these events pertain to the lifecycle of a delivery. Webhooks are sent out of DoorDash when a delivery has been accepted, when the Dasher arrives at the pickup, when the order is delivered, etc.

This settings page helps configure WooCommerce to receive webhooks fired from DoorDash, which allows for WooCommerce Orders to be updated with information about the delivery as it’s happening. It also provides values for configuring webhooks in the DoorDash Developer Portal. When DoorDash updates the status of a delivery, the webhook will trigger and update that order with a note and status change in WooCommerce.

Click the Generate Credentials button to create an API user for DoorDash in WooCommerce. This will direct you to the following screen:

A screenshot of the Local Delivery by DoorDash Plugin settings tab

WooCommerce authorization screen

Click the Approve button to allow the plugin to create a new API user. API users can also be managed under WooCommerce Settings > Advanced > REST API.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Webhooks configuration screen with newly generated credentials

You will then be redirected back to the Webhooks Configuration screen, where your configuration details will be displayed.

This information will only be displayed once. For security reasons, the Authorization Header will be deleted from the database immediately after it is displayed. Make sure to save this information in a safe place. However, if this information is lost, you can generate a new API user from this page.

Now follow the instructions to configure your webhook in the portal. Use the delivery URL, Authentication Type, and Authentication Header displayed on the Webhooks configuration page.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Multiple locations can be configured on the Locations screen.

Locations

Local Delivery by DoorDash allows shop owners to configure multiple pickup locations for your business. Each location can be configured with a location name that is displayed to the user, the address where orders will be picked up by DoorDashers, delivery hours for that location. Each location can also be configured with an individual email address which can be used to monitor new orders to be fulfilled from that location.

Click the Add pickup location button to add your first location.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Location editor screens

Location Information

Location Name

This is the name for this location that will be displayed to customers when selecting a location for their order to be fulfilled from.

Enabled

If disabled, this location will not be displayed as an available location for DoorDash delivery.

Email Address

New order notifications for this location will be sent to this email address (in addition to your configured WooCommerce admin email). This allows for individual locations to have a separate email account to monitor for incoming orders, or to trigger third-party automations.

Phone Number

The phone number for the Dasher to call, including country code, if there are any issues with the pick up. The phone number must be a valid US phone number.

Pickup Instructions

If filled in, the contents of this field will be provided to Dashers picking up orders from this location.

Address

Fill in the address fields with the physical address of the pickup location. State and Country should use two-character abbreviations, e.g. PA and US.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Custom hours section of the Location editor

Hours

Check the “Customize hours for this location” checkbox to display hours fields that can be customized for this location.

Enter hours for each day with a dash separating the opening and closing time, eg 10:00am - 8:00pm. Multiple ranges can also be entered separated with a comma, eg, 10:00am - 1:00pm, 4:00pm - 7:00pm. If deliveries are not offered, leave the field for that day blank.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Location listing screen

Location List

After locations have been added, they will be listed on the Locations screen. Locations can be added, edited, or deleted from this screen. There are also toggles available for each location to allow for turning custom hours for that location on or off, or quickly enabling/disabling the location.

Adding a Shipping Method

Local Delivery by DoorDash works as a WooCommerce shipping method. To allow customers to select it as a shipping method, the method must be added to a Shipping zone.

Visit WooCommerce > Settings > Shipping to access the Shipping zones screen.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

WooCommerce shipping zones screen

The screenshot above shows the default setup for a new WooCommerce store, with a single shipping zone for the United States. You can set up a shipping zone for a smaller geographical area to only show DoorDash delivery as an option near your pickup locations, or you can add DoorDash to an existing shipping zone. Your configuration may vary. Note: Shipping zones are matched in the order listed, so Local zones typically should be placed at the top.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Shipping zone screen

After creating or editing a shipping zone, click the Add shipping method button.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Add shipping method

Select “DoorDash” from the list and click Add shipping method.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

Shipping method settings

After creating the shipping method, you may configure the title displayed to the user and the tax status for the method. You may also enable or disable the DoorDash shipping method from the Shipping Zone screen.

Orders

When orders have been placed with DoorDash selected as the shipping method, an API call is sent to the DoorDash Drive API which kicks off the delivery process. An email is sent to the address configured in the selected pickup location, and data about the delivery is saved with the order.

A screenshot of the Local Delivery by DoorDash Plugin settings tab

WooCommerce Order Edit screen

As you can see in the screenshot above of a completed order, the shipping method displays information about the pickup location, and the DoorDash tip is displayed with the order.

On the right in the Order Notes section, you can see the updates that have been attached to the order by the DoorDash webhooks. The first note with “DoorDash Delivery Quote Accepted. Track Delivery” contains a link to the tracking for this order. This note is created when the order is accepted and will be displayed even if the DoorDash webhooks are not properly configured.

When the delivery has been dropped off, the order is automatically marked as complete.

Create a delivery

Now you can create a delivery request using the Plugin in your WooCommerce store.

Use the Delivery Simulator

You can use the Delivery Simulator to advance your delivery through the stages of the delivery process, from creation to Dasher assignment to pickup to delivery.

In the Developer Portal left navigation, click Simulator.

A screenshot of the Developer Portal left navigation menu with the Simulator navigation item highlighted

Find the delivery you created by looking for the identifier #D-12345. Click Advance to Next Step to move your delivery to the Delivery Confirmed stage.

A screenshot of the Delivery Simulator with a delivery in the Delivery Created stage

Get the status of your delivery

You have three options to programmatically obtain the latest status of a delivery:

  1. Drive API request
  2. Node.js SDK request
  3. Postman request

Finish up

You can use the Delivery Simulator to advance your delivery through the stages of the delivery process and then re-run the Get Delivery Status request to see how the delivery details change.

Next steps

Now that you're familiar with the Local Delivery by DoorDash plugin, you're ready to start adding delivery capabilities to your WooCommerce Store! Explore more detail about configuring shipping zones and delivery settings, and configuration options for developers and site administrators.