Buscar na documentação
ctrl+4K
Módulos
Authentication
Merchant
Catalog
Order
Events
Logistics
Shipping
Review
Financial
Soluções

Pizzas

Pizza é um tipo especial de item com quatro grupos de complementos obrigatórios: tamanho, massa, borda e sabor. Este guia cobre a estrutura exigida pela API, como suportar pizzas divididas e como aplicar preços diferentes por tamanho.
Todo item PIZZA precisa dos quatro grupos abaixo com o optionGroupType exato:
GrupooptionGroupTypeObrigatório
TamanhosSIZESim
MassasCRUSTSim
BordasEDGESim
SaboresTOPPINGSim
A loja aceita no máximo uma categoria PIZZA. Se algum grupo faltar, o item é rejeitado com 422 Unprocessable Entity.Categoria de pizza mostrando sua estruturaEstrutura de pizza mostrando os quatro grupos obrigatórios
Use PUT /items com type: "PIZZA". Omita categoryId para que a categoria seja criada automaticamente:
curl --request PUT \
  --url 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/YOUR_MERCHANT_ID/items' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "item": {
      "id": "item-pizza-calabresa",
      "type": "PIZZA",
      "status": "AVAILABLE",
      "externalCode": "pizza_calabresa"
    },
    "products": [
      {
        "id": "prod-pizza",
        "name": "Calabresa",
        "externalCode": "calabresa_prod",
        "optionGroups": [
          {"id": "550e8400-e29b-41d4-a716-446655440040", "min": 1, "max": 1},
          {"id": "550e8400-e29b-41d4-a716-446655440041", "min": 1, "max": 1},
          {"id": "og-edge", "min": 0, "max": 1},
          {"id": "550e8400-e29b-41d4-a716-446655440042", "min": 1, "max": 1}
        ]
      },
      {"id": "prod-pequena", "name": "Pequena", "quantity": 6},
      {"id": "prod-media", "name": "Média", "quantity": 8},
      {"id": "prod-grande", "name": "Grande", "quantity": 12},
      {"id": "prod-massa-trad", "name": "Massa Tradicional"},
      {"id": "prod-massa-fina", "name": "Massa Fina"},
      {"id": "prod-borda-trad", "name": "Borda Tradicional"},
      {"id": "prod-borda-rech", "name": "Borda Recheada"},
      {"id": "prod-calabresa", "name": "Calabresa"},
      {"id": "prod-margherita", "name": "Margherita"}
    ],
    "optionGroups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440040",
        "name": "Tamanho",
        "status": "AVAILABLE",
        "optionGroupType": "SIZE",
        "optionIds": ["opt-pequena", "opt-media", "opt-grande"]
      },
      {
        "id": "550e8400-e29b-41d4-a716-446655440041",
        "name": "Massa",
        "status": "AVAILABLE",
        "optionGroupType": "CRUST",
        "optionIds": ["opt-massa-trad", "opt-massa-fina"]
      },
      {
        "id": "og-edge",
        "name": "Borda",
        "status": "AVAILABLE",
        "optionGroupType": "EDGE",
        "optionIds": ["opt-borda-trad", "opt-borda-rech"]
      },
      {
        "id": "550e8400-e29b-41d4-a716-446655440042",
        "name": "Sabor",
        "status": "AVAILABLE",
        "optionGroupType": "TOPPING",
        "optionIds": ["opt-calabresa", "opt-margherita"]
      }
    ],
    "options": [
      {
        "id": "opt-pequena",
        "productId": "prod-pequena",
        "status": "AVAILABLE",
        "index": 0,
        "price": {"value": 25.00},
        "fractions": [1, 2]
      },
      {
        "id": "opt-media",
        "productId": "prod-media",
        "status": "AVAILABLE",
        "index": 1,
        "price": {"value": 32.00},
        "fractions": [1, 2, 3]
      },
      {
        "id": "opt-grande",
        "productId": "prod-grande",
        "status": "AVAILABLE",
        "index": 2,
        "price": {"value": 42.00},
        "fractions": [1, 2, 3, 4]
      },
      {
        "id": "opt-massa-trad",
        "productId": "prod-massa-trad",
        "status": "AVAILABLE",
        "index": 0,
        "price": {"value": 0}
      },
      {
        "id": "opt-massa-fina",
        "productId": "prod-massa-fina",
        "status": "AVAILABLE",
        "index": 1,
        "price": {"value": 2.00}
      },
      {
        "id": "opt-borda-trad",
        "productId": "prod-borda-trad",
        "status": "AVAILABLE",
        "index": 0,
        "price": {"value": 0}
      },
      {
        "id": "opt-borda-rech",
        "productId": "prod-borda-rech",
        "status": "AVAILABLE",
        "index": 1,
        "price": {"value": 3.00}
      },
      {
        "id": "opt-calabresa",
        "productId": "prod-calabresa",
        "status": "AVAILABLE",
        "index": 0,
        "price": {"value": 0}
      },
      {
        "id": "opt-margherita",
        "productId": "prod-margherita",
        "status": "AVAILABLE",
        "index": 1,
        "price": {"value": 0}
      }
    ]
  }'
Resposta:
{
  "id": "item-pizza-calabresa",
  "type": "PIZZA",
  "status": "AVAILABLE"
}
Use o campo fractions no tamanho para definir em quantas partes a pizza pode ser dividida. Clientes combinam sabores diferentes dentro do mesmo tamanho:
{
  "id": "opt-media",
  "price": {"value": 32.00},
  "fractions": [1, 2, 3]
}
fractionsDivisões permitidas
[1, 2]Inteira ou meia
[1, 2, 3]Inteira, meia ou terço
[1, 2, 3, 4]Inteira, meia, terço ou quarto
Tamanhos de pizza com divisões permitidas
Configure preços diferentes para sabores em cada tamanho. Use parentCustomizationOptionId na opção de sabor para vincular a um tamanho específico:
{
  "id": "opt-calabresa",
  "parentCustomizationOptionId": "opt-media",
  "price": {"value": 2.00}
}
Exemplo de matriz:
SaborPequenaMédiaGrande
Calabresa+R$ 0+R$ 0+R$ 0
Margherita+R$ 2+R$ 3+R$ 4
Premium+R$ 5+R$ 6+R$ 8
Sabores de pizza mostrando diferentes preços por tamanhoMassas de pizza disponíveisBordas de pizza com diferentes opções
curl --request PATCH \
  --url 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/YOUR_MERCHANT_ID/options/price' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "optionId": "opt-calabresa",
    "parentCustomizationOptionId": "opt-media",
    "price": {"value": 2.00},
    "priceByCatalog": [
      {
        "value": 2.50,
        "catalogContext": "WHITELABEL"
      }
    ]
  }'
curl --request PATCH \
  --url 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/YOUR_MERCHANT_ID/options/status' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "optionId": "opt-calabresa",
    "parentCustomizationOptionId": "opt-media",
    "status": "UNAVAILABLE",
    "statusByCatalog": [
      {
        "status": "AVAILABLE",
        "catalogContext": "WHITELABEL"
      }
    ]
  }'
Esta página foi útil?
Avalie sua experiência no novo Developer portal: