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

Como funciona

A API de Catálogo organiza seu cardápio em três níveis: catálogo, categoria e item. Os itens têm complementos e podem ter preço e disponibilidade diferentes por canal de venda (contexto).Este guia mostra quando chamar cada endpoint. Para exemplos hands-on, veja Introdução. Para a referência completa, veja Endpoints.
Toda integração segue seis passos:
  1. Autentique — Obtenha um accessToken. Veja Autenticação.
  2. Liste catálogosGET /catalogs. Toda loja já tem pelo menos um.
  3. Crie categoriasPOST /categories agrupa itens (lanches, bebidas, sobremesas).
  4. Crie itensPUT /items envia item, produtos, grupos de opção e opções em uma chamada.
  5. Atualize preço e statusPATCH /items/price e PATCH /items/status para mudanças pontuais.
  6. Acompanhe operações em loteGET /batch/{batchId} para patches assíncronos.
Arquitetura completa do catálogo mostrando merchants, catálogos, categorias, itens e modificadoresExemplo de estrutura de produto mostrando item e seus componentes
Todo item tem dois estados:
  • AVAILABLE — Clientes podem comprar.
  • UNAVAILABLE — Item pausado. Não aparece no app até retornar para AVAILABLE.
Use PATCH /items/status para alterne estados sem reenviar o item completo.
A mudança que você quer fazer determina o endpoint:
MudançaEndpointNotas
Criar ou reescrever um item completoPUT /itemsEnvia item, produtos, grupos e opções em uma chamada. Idempotente.
Alterar preçoPATCH /items/priceMuda apenas preço de itens. Suporta lote.
Alterar preço de complementosPATCH /options/priceMuda apenas preço de opções (complementos). Suporta lote.
Pausar ou reativar um itemPATCH /items/statusMuda apenas status. Suporta lote.
Pausar uma opção de complementoPATCH /options/statusAfeta uma única opção.
Pausar todas as opções de um grupoPATCH /optionGroups/statusAfeta o grupo inteiro.
Ajustar estoquePOST /inventoryDefine a quantidade máxima vendível.
Lembre-se: PUT /items substitui o item completo — campos omitidos são removidos. Use PATCH para mudanças pontuais.
PUT /items é idempotente: chamar duas vezes com o mesmo payload não cria duplicatas. A segunda chamada sobrescreve a primeira, simplificando retries em falhas transitórias.
PUT /catalog/v2.0/merchants/{merchantId}/items
{
  "item": {
    "id": "burger-001",
    "type": "DEFAULT",
    "categoryId": "appetizers",
    "status": "AVAILABLE",
    "price": {"value": 25.00}
  },
  "products": [
    {
      "id": "burger-prod-001",
      "name": "X-Burger"
    }
  ],
  "optionGroups": [],
  "options": []
}
Use o mesmo PUT /items com optionGroups e options preenchidos:
{
  "item": { /* ... */ },
  "products": [ /* ... */ ],
  "optionGroups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440010",
      "name": "Escolha uma bebida",
      "min": 0,
      "max": 1,
      "optionIds": ["550e8400-e29b-41d4-a716-446655440020", "550e8400-e29b-41d4-a716-446655440021"]
    }
  ],
  "options": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440020",
      "productId": "550e8400-e29b-41d4-a716-446655440002",
      "price": {"value": 8.00}
    },
    {
      "id": "550e8400-e29b-41d4-a716-446655440021",
      "productId": "550e8400-e29b-41d4-a716-446655440003",
      "price": {"value": 12.00}
    }
  ]
}
PATCH /catalog/v2.0/merchants/{merchantId}/items/price
{
  "prices": [
    {"productId": "burger-prod-001", "price": 26.50},
    {"productId": "burger-prod-002", "price": 28.00}
  ]
}
A resposta retorna um batchId. Acompanhe com GET /batch/{batchId}:
GET /catalog/v2.0/merchants/{merchantId}/batch/{batchId}
{
  "batchId": "batch-123",
  "status": "COMPLETED",
  "successCount": 95,
  "failureCount": 5
}
Patches em lote rodam de forma assíncrona. Consulte GET /batch/{batchId} até o status ser COMPLETED antes de assumir que as mudanças estão aplicadas.
Ofereça o mesmo item em canais diferentes (Entrega, Cardápio Digital, Consumo no Local) com preços e status distintos. Use contextModifiers em vez de duplicar itens:
{
  "item": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "price": {"value": 25.00},
    "status": "AVAILABLE",
    "contextModifiers": [
      {
        "catalogContext": "WHITELABEL",
        "price": {"value": 28.00},
        "status": "UNAVAILABLE"
      }
    ]
  }
}
Os valores em contextModifiers sobrescrevem os valores raiz apenas naquele contexto. Contextos disponíveis:
  • DEFAULT — Entrega
  • WHITELABEL — Cardápio Digital
  • INDOOR — Consumo no Local
Para lojas com catálogos completamente distintos por canal, use PUT /multisetup/items. Veja Multi-menu.
Escolha o tópico mais relevante para sua integração:
Esta página foi útil?
Avalie sua experiência no novo Developer portal: