Skip to main content
PUT
Actualiza los datos de una orden existente: método de envío, método de pago, sucursal, dirección, si está pagada, fecha programada, ubicación (lat/lng) y zona. Notifica el cambio en tiempo real al canal correspondiente de la orden.
Debes enviar siempre shipmentMethod, paymentMethod, sucursalId, location_picked, raw_adress y paid, aunque no quieras cambiarlos.Este endpoint no distingue entre “campo omitido” y “campo que se quiere borrar” para esos 6 campos: si no los incluyes en el body, se sobrescriben a NULL en la orden. Para no perder un valor actual, debes reenviarlo tal cual está.Esto no aplica a lat, lng, zoneId/zone_id (solo se actualizan si vienen presentes) ni a scheduleAt/schedule_at (si se omite, conserva el valor actual de la orden).

Autenticación

Requiere el encabezado x-api-key con el App Key del negocio. Consulta Autenticación.

Body

number
required
ID de la orden a actualizar.
string
required
Método de entrega (delivery, pickup). Envía el valor actual si no quieres cambiarlo — omitirlo lo pone en null.
string
required
Método de pago. Envía el valor actual si no quieres cambiarlo — omitirlo lo pone en null.
number
required
ID de la sucursal de la orden. Envía el valor actual si no quieres cambiarlo — omitirlo lo pone en null. Puede ser recalculado automáticamente (ver shouldUpdateSucursal).
string
required
Nombre/etiqueta de la ubicación elegida. Envía el valor actual si no quieres cambiarlo — omitirlo lo pone en null.
string
required
Dirección de entrega en texto libre. Envía el valor actual si no quieres cambiarlo — omitirlo lo pone en null.
boolean
required
Si la orden está pagada. Envía el valor actual si no quieres cambiarlo — omitirlo lo pone en null.
boolean
Si es true y shipmentMethod es "delivery", recalcula sucursalId a partir de la sucursal de la zona (zoneId), sobrescribiendo lo enviado en sucursalId.
string
Fecha/hora programada para la orden. También se acepta como schedule_at. Si se omiten ambos, se conserva la fecha programada actual de la orden.
number
Latitud de la ubicación de entrega. Si se omite, no se modifica.
number
Longitud de la ubicación de entrega. Si se omite, no se modifica.
number
ID de la zona de entrega. También se acepta como zone_id. Si se omiten ambos, no se modifica.

Comportamiento

  • Busca la orden por orderId; si no existe, responde 400 "Order not found".
  • Actualiza shipment_method, payment_method, sucursal_id, location_picked, raw_adress y paid con lo enviado (ver advertencia arriba sobre campos omitidos).
  • Actualiza schedule_at con scheduleAt o schedule_at; si ninguno viene, conserva el valor actual.
  • Actualiza lat, lng y zone_id (zoneId/zone_id) solo si vienen presentes en el body.
  • Recarga la orden con sus relaciones sucursal y zona (con la sucursal de la zona incluida).
  • Si shipment_method quedó como "delivery" y shouldUpdateSucursal es true, recalcula sucursal_id = zona.sucursal_id, sobrescribiendo lo que se haya enviado en sucursalId.
  • Emite un evento en tiempo real: canal Soketi/Pusher si el tipo de la orden es app/web, canal estándar para el resto.

Respuesta

object
La orden actualizada, con sucursal y zona (incluyendo la sucursal de la zona).