Docs Item
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.
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.
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.
Para fazer o envio completo dos dados dos produtos utilize a rota: POST ingestion/{merchantId}?reset=false
Essa rota é recomendada para enviar novos produtos a serem integrados ou ativar um produto que foi anteriormente desativado.
Propriedades em que o valor é obrigatório:
barcode
name
Demais campos:
null
null
ou valor em branco, será sobrescrito e o produto passará a ter esse valor enviado. Carga Reset (usar com parcimônia)
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.[
{
"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,
"promotionPrice": null
},
"scalePrices": null,
"multiple": null,
"channels": null
}
]
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.
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.
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",
}
]
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 |
prices.promotionPrice | Valor promocional (De-Por) |
scalePrices[*].quantity | Preço Atacarejo - Quantidade que ativa valor promocional |
scalePrices[*].price | Preço Atacarejo - Valor promocional |
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, IFOOD_SHOP, WHITELABEL) |
Para que o preço do item seja representado ao consumidor com o valor promocional De-Por é necessário o envio dos campos prices.price
e prices.promotionPrice
.
Para oferecer preços especiais a partir da compra de um número específico de unidades, muito comum em atacarejos, é necessário o envio dos campos scalePrices[*].quantity
e scalePrices[*].price
.
Preço Atacarejo com scalePrices[*].quantity
= 3 e scalePrices[*].price
= 4.63, permitindo o desconto em compra a partir de 3 unidades.
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
multiple.quantity
barcode
plu
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:
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.
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.
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 | prices.promotionPrice |
listaEscalaPreco.quantidade | scalePrices[*].quantity |
quantidadeAtacado | scalePrices[*].quantity |
listaEscalaPreco.preco | scalePrices[*].price |
valorAtacado | scalePrices[*].price |
multiploEanOriginal | multiple.originalEan |
multiploQtd | multiple.quantity |
ADICIONADO | channels[*] |
familia | REMOVIDO |
caracteristicas | REMOVIDO |
quantidadeEstoqueMinimo | REMOVIDO |