Schema
OrderItemRead
One line in a RESPONSE order. Items are FLAT — one row per (producto, opcion). Identity (name / option_name / sku) reads from the frozen snap captured at order creation; live catalog changes do not mutate past orders. Per-row prices are NOT exposed — read the order-level :subtotal / :total for the financial roll-up. For a legacy producto (no opciones), one row is emitted; :option_id is the producto/id ALIAS and :option_name mirrors :name. After the schema migrates so every producto has at least one opcion, this branch stops firing — the wire shape does NOT change.
Ejemplo
Campo
| Campo | Tipo | Flags | Notas |
|---|---|---|---|
product_id | string | sólo lectura | Null when the producto was later deleted. |
name | string | sólo lectura | Producto name, frozen at order creation. |
option_id | string | sólo lectura | = product_id alias for legacy productos. |
option_name | string | sólo lectura | = :name for legacy productos. |
sku | string | sólo lectura | OPCION sku when present; otherwise falls back to the producto sku. |
quantity | integer | sólo lectura |
