Una orden ya creada se modifica con PUT {{URL_BASE}}/orders/admin/{id}, que acepta tanto el contenido de la orden como su estado y fecha de despacho.
| Qué se quiere cambiar | Endpoint |
|---|---|
| Líneas, dirección de despacho, observación, tipo, centro de distribución, estado, fecha de despacho | PUT {{URL_BASE}}/orders/admin/{id} |
| Solo el estado y la fecha de despacho, o identificar la orden por su número | POST {{URL_BASE}}/orders/status/{order_id} |
PUT {{URL_BASE}}/orders/admin/{id}
{id} acepta dos identificadores:
_id — el identificador de la orden en YOM, el que devuelve al crearla.orderId — el identificador de la orden en el ERP del cliente.<aside> 📝
Todos los campos son opcionales. Solo se modifica lo que venga en el cuerpo de la solicitud; el resto de la orden queda intacto. Cualquier otro campo enviado se ignora.
</aside>
| Campo | Tipo | Carácter | Descripción | Ejemplos |
|---|---|---|---|---|
products |
🔡 Lista de Objetos | ⚪ Opcional | Líneas de la orden. Admite dos formatos, ver abajo. | |
sellerDiscounts |
🔡 Lista de Objetos | ⚪ Opcional | Descuentos aplicados por el Vendedor. | |
shippingAddress |
📝 Objeto | ⚪ Opcional | Dirección de despacho de la orden. | |
observation |
📝 Texto | ⚪ Opcional | Observación de la orden. | "Entregar por la mañana" |
externalPurchaseOrderId |
📝 Texto | ⚪ Opcional | Orden de compra en el sistema del cliente. | "OC-88231" |
type |
📝 Texto | ⚪ Opcional | Tipo de orden. | |
"order" → pedido |
||||
"quote" → cotización |
"order" |
|||
distributionCenterId |
🆔 ObjectId | ⚪ Opcional | Centro de distribución de la orden. | |
*\*Acepta *null para dejarlo sin asignar. |
"650a1b2c3d4e5f6a7b8c9d99" |
|||
distributionCenterName |
📝 Texto | ⚪ Opcional | Nombre del Centro de distribución. | |
*\*Acepta *null para dejarlo sin asignar. |
"CD Santiago" |
|||
status |
📝 Texto | ⚪ Opcional | Nuevo estado de la orden. Ver valores válidos más abajo. | "shipped" |
externalStatus |
📝 Objeto | ⚪ Opcional | Estado externo de la orden, solo de visualización. Lleva un único campo key, que debe coincidir con uno de los estados configurados para el cliente. Ver estado externo más abajo. |
{ "key": "en_bodega" } |
estimatedDeliverAt |
📅 Fecha | ⚪ Opcional | Fecha de despacho, en formato ISO 8601. | |
| *\Una fecha inválida se ignora y se conserva la anterior. | "2030-01-15T00:00:00.000Z" |
|||
orderId |
📝 Texto | ⚪ Opcional | Identificador de la orden en el ERP del cliente. | |
| *\Si la orden se identificó por su folio ERP en la URL, este campo solo puede repetir ese mismo valor. | "ERP-99812" |
|||
orderCode |
📝 Texto | ⚪ Opcional | Código de la orden. | "COD-4471" |
integrationErrorDetails |
📝 Texto | ⚪ Opcional | Detalle del error de integración. | "Timeout al conectar con el ERP" |
<aside> 🔑
</aside>
Cuando la solicitud trae campos de estado, primero se aplican los cambios de contenido y se recalculan los totales, y después se ejecuta la transición de estado — así las notificaciones y el envío al ERP ven la orden ya en su forma final.
Cada ítem lleva sku y/o productId más quantity, sin pricing. Solo se envían las líneas que se quieren modificar; el resto de la orden queda como está.
PUT {{URL_BASE}}/orders/admin/66f0a1b2c3d4e5f6a7b8c9d0
{
"products": [
{ "productId": "650a1b2c3d4e5f6a7b8c9d01", "quantity": 8 }
]
}
Cada ítem lleva su pricing. Se debe enviar la orden completa: las líneas que no vengan quedan fuera de la orden.
PUT {{URL_BASE}}/orders/admin/66f0a1b2c3d4e5f6a7b8c9d0
{
"products": [
{
"sku": "ABC-1",
"productId": "650a1b2c3d4e5f6a7b8c9d01",
"quantity": 3,
"pricing": { "pricePerUnit": 1000 },
"pricingAfterDiscounts": { "pricePerUnit": 900 }
}
]
}
Además del status, una orden puede llevar un estado externo propio del cliente: una etiqueta con su nombre y su color, que YOM muestra tal cual en el portal B2B, el panel de administración y la aplicación móvil.
<aside> 📝
</aside>