YOM Docs

Modificación de órdenes

Configuración de URL Base

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}

Editar una orden

PUT {{URL_BASE}}/orders/admin/{id}

{id} acepta dos identificadores:

<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>

Qué enviar

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.

Formato A — cambiar solo cantidades

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 }
  ]
}

Formato B — reemplazar todas las líneas

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 }
    }
  ]
}

Estado externo

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>