One line of the `items` array on POST /orders.

API
Schema

OrderItemInput

One line of the `items` array on POST /orders. Rows are FLAT: one row per (producto, opcion), the same shape `OrderItemRead` returns. Several rows for the same product_id with different option_id collapse into ONE order item carrying several options. Unlike the read shape, an input row carries NO price: the server resolves the price from the customer's price list, promos and surcharges — a client cannot dictate what a line costs.

Ejemplo

json
{ "product_id": "REM-001", "option_id": "555", "quantity": 3 }

Campo

CampoTipoFlagsNotas
product_idstring
requerido
The producto's numeric id OR its code ("REM-001") — both are accepted, so you can order straight from a /products response.
option_idstring
Required when the producto HAS options — a product with variants rejects a row without one (422). Omit for a legacy producto with no options.
quantityinteger
requerido
Whole number greater than 0. Halves and zeros are rejected.