Saltar al contenido principal

Comenzar (API)

API: Drive

Este documento cubre la API de Drive. Si utilizas la API de Drive (Classic), consulta el tutorial de introducción con las API de Drive (Classic).

Con la API de Drive, puedes aprovechar la plataforma logística bajo demanda de DoorDash para entregar tus productos de forma rápida y sencilla sin la molestia de tener tu propia flota de entrega. La API de Drive se ha diseñado para ser la forma más sencilla de completar tus entregas.

Un flujo típico:

  • Solicita un presupuesto (opcional). Esto te indicará la hora del retiro estimada y el costo de tu entrega.
  • Solicita una entrega o acepta un presupuesto.
  • Se realiza la entrega.

Cómo crear una entrega

Antes de comenzar, asegúrate de crear una clave de acceso y generar un JWT.

const axios = require('axios')
const { v4: uuidv4 } = require('uuid')

const body = JSON.stringify({
external_delivery_id: uuidv4(), // keep track of the generated id here or in the response
pickup_address: '901 Market Street 6th Floor San Francisco, CA 94103',
pickup_business_name: 'Wells Fargo SF Downtown',
pickup_phone_number: '+16505555555',
pickup_instructions: 'Enter gate code 1234 on the callbox.',
dropoff_address: '901 Market Street 6th Floor San Francisco, CA 94103',
dropoff_business_name: 'Wells Fargo SF Downtown',
dropoff_phone_number: '+16505555555',
dropoff_instructions: 'Enter gate code 1234 on the callbox.',
order_value: 1999,
})

axios
.post('https://openapi.doordash.com/drive/v2/deliveries', body, {
headers: {
Authorization: 'Bearer ' + token,
'Content-Type': 'application/json',
},
})
.then(function (response) {
console.log(response.data)
})
.catch(function (error) {
console.log(error)
})

Cómo obtener el estado de una entrega

const axios = require('axios')

axios
.get(
'https://openapi.doordash.com/drive/v2/deliveries/{external_delivery_id}',
{
headers: {
Authorization: 'Bearer ' + token,
'Content-Type': 'application/json',
},
},
)
.then(function (response) {
console.log(response.data)
})
.catch(function (error) {
console.log(error)
})

Observaciones importantes:

Vuelve a probar todos los códigos de estado de respuesta 50x, ya que el error podría ser transitorio. Recomendamos hasta 3 reintentos con un cierto retardo exponencial entre solicitudes.