A API reutiliza produtos com o mesmo externalCode. Se você não quer reutilização, use códigos únicos. Se a reutilização é intencional (ex.: compartilhar um produto entre dois itens), mantenha o mesmo externalCode.
contextModifiers não surte efeito
Confirme:
catalogContext é um valor válido (DEFAULT, WHITELABEL, INDOOR).
contextModifiers é um array dentro da entidade (item ou opção).
O contexto existe no catálogo da loja.
Os valores em contextModifiers sobrescrevem os da raiz apenas no contexto especificado.
Imagem não aparece
Confirme:
Formato jpg, jpeg ou png.
Tamanho menor que 5 MB.
imagePath foi preenchido com o retorno do endpoint de upload.
O upload retornou 200 OK.
Boas práticas
Valide antes de ir para produção
Antes de ativar a integração:
Use o merchant de teste fornecido.
Teste cada fluxo (criar, atualizar, pausar, deletar).
Valide com GET /catalogs/{catalogId}/categories?include_items=true para confirmar que itens e complementos foram criados corretamente.
Use externalCode para rastreabilidade
Inclua um externalCode único em cada item e complemento. Você consegue:
Atualizar recursos usando seu próprio ID
Rastrear mudanças originadas no seu sistema
Fazer sincronização bidirecional sem depender de IDs do iFood
Implemente retry com backoff exponencial
Para operações sujeitas a falhas transitórias (5xx, 429, timeouts):
Tentativa
Espera
1
Imediata
2
1 s
3
2 s
4
4 s
Não tente novamente em 4xx (exceto 429) — o problema é no payload, não no servidor.
Monitore operações em lote
Não assuma que um lote terminou pelo retorno imediato:
Salve o batchId
Consulte GET /batch/{batchId} até status: COMPLETED