Módulo exclusivo
Esse módulo é de uso exclusivo de parceiros que operam com canais de mercado e não está disponível para todos os desenvolvedores.
Caso tenha interesse em utilizar funções dessa API, entre em contato com time de atendimento. Integração de Item
Como Funciona?
O envio dos produtos é realizado através dos endpoints disponibilizados para integração de Item. Após recebermos os produtos, todos os dados serão processados passando por nossas regras de disponibilidade e posteriormente enviados ao APP.Métodos de envio
Existem duas formas de fazer a integração do Item, via POST com todos os dados dos produtos e via PATCH onde é possível enviar apenas as informações que precisam ser atualizadas.Envio completo dos dados
Para fazer o envio completo dos dados dos produtos utilize a rota:
POST ingestion/{merchantId}?reset=falseEssa rota é recomendada para enviar novos produtos a serem integrados ou ativar um produto que foi anteriormente desativado.Considerações importantes
Propriedades em que o valor é obrigatório:Demais campos:- É necessário o envio de todas as propriedades, mesmo que o valor seja
null
- Caso alguma propriedade seja enviada como
null
ou valor em branco, será sobrescrito e o produto passará a ter esse valor enviado.
Carga Reset (usar com parcimônia)- Ao enviar o parâmetro na query de
reset=true
os produtos que não estão no payload serão identificados e desativados, caso nenhum seja identificado o processo de reset
não irá acontecer. - Essa é uma ação destrutiva, portanto deve ser utilizada somente com o intuito de limpar testes da base ou eliminar itens integrados indevidamente.
Exemplo
[
{
"barcode": "123",
"name": "Produto de exemplo",
"plu": null,
"active": true,
"inventory": {
"stock": 1.5
},
"details": {
"categorization": {
"department": null,
"category": null,
"subCategory": null
},
"brand": null,
"unit": null,
"volume": null,
"imageUrl": null,
"description": null,
"nearExpiration": true,
"family": null
},
"prices": {
"price": 0
},
"multiple": null,
"channels": null
}
]
Envio parcial dos dados
Para fazer o envio parcial dos dados dos produtos utilize a rota:
PATCH ingestion/{merchantId}Essa rota é recomendada caso o produto já tenha sido enviado anteriormente e não tenha alterações em todos os campos, podendo enviar apenas a alteração e os campos obrigatórios.Considerações importantes
Não utilizar o PATCH para ativar um produto.
Para isso é necessário a utilização da rota POST, pois precisamos de todas as informações atualizadas do mesmo.
Exemplo
O payload é o mesmo do POST a diferença é que irá enviar somente os campos que deseja alterar[
{
"barcode": "123",
"name": "Alterando nome do produto de exemplo",
}
]
Campos
Nome | Descrição |
---|
barcode | EAN para industrializados não-pesáveis ou código de balança para produção própria, verduras e/ou legumes, carnes e frutas |
name | Nome do produto |
plu | Código interno PLU |
active | Define se o item está ativo para venda |
inventory.stock | Quantidade do estoque atual |
details.categorization.department | Nome do departamento |
details.categorization.category | Nome da categoria |
details.categorization.subCategory | Nome da subcategoria |
details.brand | Nome da marca |
details.unit | Unidade de medida (Ex: G, KG, UN) |
details.volume | Quantidade da unidade de medida do item (Ex: 180g, 5kg, 1un) |
details.imageUrl | URL da imagem |
details.description | Descrição do item |
details.nearExpiration | Indicador se está perto da validade |
prices.price | Valor base de venda |
multiple.originalEan | EAN original do múltiplo - Exclusivo para canal iFood Shop |
multiple.quantity | Quantidade do múltiplo - Exclusivo para canal iFood Shop |
channels[*] | Lista de channels do produto (ifood-app, ifood-shop, plano-whitelabel) |
Exclusivo para canal iFood Shop
Múltiplos
Mecânica específica do canal iFood Shop para vender embalagens com múltiplos produtos EAN, o campo será ignorado na integração para outros canais.Alguns campos precisam ser preenchidos para aplicar a mecânica:
multiple.originalEan
- Indica o EAN do produto unitário vendido no pacote com múltiplos itens.
multiple.quantity
- Indica a quantidade de produtos unitários que compõem o pacote.
- Se o valor for menor ou igual a 1 a integração do múltiplo será ignorada.
barcode
- O código base do item enviado na integração pode ser um código EAN referente ao pacote ou um código interno da loja
plu
- Obrigatório para indicar o código interno do produto para controle do pacote
- Nesse tipo de item o PLU deve conter underline no final do código junto à quantidade (Ex.: 7896045506217_12 ou 1234_12)
Canais
O campo channels[*]
permite o envio de uma lista de canais previamente contratados pelo parceiro que devem receber a integração de item.Os valores válidos são:- ifood-app
- ifood-shop
- plano-whitelabel
Todos os canais citados terão a inclusão ou alteração do item com os mesmos valores.
Se o campo channels
for enviado como null
ou não for mencionado na chamada os valores enviados serão aplicados a todos canais configurados para o merchant.
Migração da integração legada
SiteMercado Service API
Para parceiros que já integram seus itens pela SiteMercado Service API a migração para a Merchant API traz muitas similaridades que facilitam a mudança de integração.De-Para payloads
Campo Service API | Campo Merchant API |
---|
idLoja | Na URL: ingestion/{merchantId} |
codigoBarra | barcode |
nome | name |
plu | plu |
ativo | active |
quantidadeEstoqueAtual | inventory.stock |
departamento | details.categorization.department |
categoria | details.categorization.category |
subcategoria | details.categorization.subCategory |
marca | details.brand |
unidade | details.unit |
volume | details.volume |
imageURL | details.imageUrl |
descricao | details.description |
validadeProxima | details.nearExpiration |
valor | prices.price |
valorPromocao | REMOVIDO |
listaEscalaPreco.quantidade | REMOVIDO |
quantidadeAtacado | REMOVIDO |
listaEscalaPreco.preco | REMOVIDO |
valorAtacado | REMOVIDO |
multiploEanOriginal | multiple.originalEan |
multiploQtd | multiple.quantity |
ADICIONADO | channels[*] |
familia | REMOVIDO |
caracteristicas | REMOVIDO |
quantidadeEstoqueMinimo | REMOVIDO |