YOM Docs

Modificación masiva de órdenes


PUT {{URL_BASE}}/orders/admin/bulk

Aplica a varias órdenes lo mismo que Modificación de órdenes hace sobre una: acepta tanto el contenido de cada orden como su estado y fecha de despacho.

Cada orden del lote se procesa de forma independiente: la respuesta trae un resultado por orden y el fallo de una no detiene a las demás.

<aside> 📝

Dentro de cada orden, el único campo obligatorio es id. Solo se modifica lo que venga en ella; el resto de la orden queda intacto. Cualquier otro campo enviado se ignora.

</aside>

Qué enviar


Campo Tipo Carácter Descripción Ejemplos
data 🔡 Lista de Objetos → Orden 🟢 Requerido Entre 1 y 500 órdenes. Ver detalle abajo.

No se admiten otros campos en el nivel superior del cuerpo de la solicitud.

Orden

Cada registro de data.

Campo Tipo Carácter Descripción Ejemplos
id 📝 Texto 🟢 Requerido Identificador de la orden a modificar. Acepta el _id de YOM o el orderId del ERP del cliente.
No acepta el número de orden.* "66f0a1b2c3d4e5f6a7b8c9d0"
products 🔡 Lista de Objetos ⚪ Opcional Líneas de la orden. Admite los mismos dos formatos que el endpoint de una sola orden.
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 *id, 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"

Cuando una orden trae campos de estado, primero se aplican sus 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.

Estado externo

Además del status, cada 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. Es solo de visualización: no reemplaza al status ni lo modifica, y cambiarlo no dispara envíos al ERP, correos, notificaciones ni movimientos de crédito.

Se envía como un objeto con un único campo key, y puede ir solo, sin status. La key debe coincidir con uno de los estados externos configurados para el cliente.

<aside> ⚠️

</aside>

YOM registra por cuáles estados externos fue pasando cada orden, y esa secuencia es la que dibuja el seguimiento del pedido en el portal B2B. Ese historial lo mantiene YOM: no se envía en la solicitud. Enviar la misma key que la orden ya tiene no produce ningún cambio.

Valores válidos para status

| --- | --- |

Ejemplo

PUT {{URL_BASE}}/orders/admin/bulk

{
  "data": [
    {
      "id": "66f0a1b2c3d4e5f6a7b8c9d0",
      "status": "shipped",
      "estimatedDeliverAt": "2030-01-15T00:00:00.000Z"
    },
    {
      "id": "ERP-99812",
      "products": [
        { "productId": "650a1b2c3d4e5f6a7b8c9d01", "quantity": 8 }
      ]
    },
    {
      "id": "66f0a1b2c3d4e5f6a7b8c9d2",
      "observation": "Entregar por la mañana",
      "status": "delivered"
    },
    {
      "id": "66f0a1b2c3d4e5f6a7b8c9d3",
      "externalStatus": { "key": "en_bodega" }
    }
  ]
}

Qué devuelve