docs(api): document pizza item payload format in Create Order endpoint

Add choices[] field documentation with format table, example payload
and business rules for size/flavor/dough/crust serialization.
This commit is contained in:
Daniel Arantes Loverde
2026-06-09 08:58:26 -03:00
parent 23d9752bfd
commit 35418cc4a2

View File

@@ -656,6 +656,44 @@ Use este endpoint ao trocar endereço na tela de pagamento para validar cobertur
}
```
**Exemplo com pizza (tamanho + sabores + borda):**
```json
{
"items": [
{
"productId": "prod_pizza_calabresa",
"name": "Pizza Calabresa",
"qty": 1,
"price": 65.00,
"choices": [
"Tamanho: Grande (+R$ 55,00)",
"Sabor: Calabresa",
"Massa: Tradicional",
"Borda: Catupiry (+R$ 10,00)"
]
}
]
}
```
**Como montar `choices[]` para pizza:**
| Linha | Formato | Obrigatório |
|---|---|---|
| Tamanho | `"Tamanho: <NomeDoTamanho> (+R$ X,XX)"` | Sim |
| Sabor (único) | `"Sabor: <NomeDeSabor>"` | Sim |
| Sabor N (múltiplos) | `"Sabor 1: <Sabor>"`, `"Sabor 2: <Sabor>"` | Sim quando maxFlavors > 1 |
| Massa | `"Massa: <NomeDaMassa>"` | Não |
| Borda sem custo | `"Borda: <NomeDaBorda>"` | Não |
| Borda com custo | `"Borda: <NomeDaBorda> (+R$ X,XX)"` | Não |
**Regras:**
- `choices[]` é um array de strings. O backend converte para `options[]` na normalização do pedido.
- O `price` do item deve refletir o preço total da pizza (tamanho + modificador de borda).
- Os nomes de tamanho, massa e borda devem corresponder aos `id` ou `name` retornados pelo catalog endpoint.
- Máximo de sabores definido por `pizzaConfig.sizes[n].maxFlavors`.
**Regras para `items[].addons`:**
- `qty` do adicional é aceito no backend (ex.: `2 ovos`).