logo
logo

Docs Produtos - API

Como Funciona?

O envio dos produtos é realizado através de nossa chamada de produtointegracao, onde após recebermos o json os itens passarão por nossas regras de disponibilidade e posteriormente eles subirão ao APP

Os métodos de envio são os seguintes:

Método POST

Este método é utilizado para integração de novos produtos ou para atualizá-los.

Referência do endpoint

Rate Limit: 30 minutos.

CampoValorTamanhoObrigatório
"idLoja"integer25Sim
"departamento"string100Sim
"categoria"string100Sim
"subCategoria"string100Não
"marca"string100Não
"unidade"string100Não
"volume"string100Não
"codigoBarra"string15Sim
"nome"string150Sim
"valor"number10.4Sim
"valorPromocao"number10.4Não
"valorAtacado"number10.4Não
"valorCompra"number10.4Não
"quantidadeEstoqueAtual"number10.4Sim
"quantidadeEstoqueMinimo"number10.4Não
"quantidadeAtacado"number10.4Não
"descricao"string8000Não
"ativo"boolean1Sim
"plu"string20Não
"validadeProxima"boolean1Não
"imageURL"string150Não
"multiploEanOriginal"string15Não
"multiploQtd"integer10Não

Método PATCH

Método utilizado somente para atualizar produtos já enviados, com o intuito de modificar uma informação específica do item como por exemplo estoque e preço.

Referência do endpoint

Rate Limit: 30 minutos.

Sua estrutura é a mesma do método post porém somente com os campos idLoja e codigoBarra obrigatórios.

CampoValorTamanhoObrigatório
"idLoja"integer25Sim
"departamento"string100Não
"categoria"string100Não
"subCategoria"string100Não
"marca"string100Não
"unidade"string100Não
"codigoBarra"string15Sim
"nome"string150Não
"valor"number10.4Não
"valorPromocao"number10.4Não
"valorAtacado"number10.4Não
"valorCompra"number10.4Não
"quantidadeEstoqueAtual"number10.4Não
"quantidadeEstoqueMinimo"number10.4Não
"quantidadeAtacado"number10.4Não
"descricao"string8000Não
"ativo"boolean1Não
"plu"string20Não
"validadeProxima"boolean1Não
"imageURL"string150Não
"multiploEanOriginal"string15Não
"multiploQtd"integer10Não

Sobre o método PATCH

  • Este método de envio só deve ser usado para atualização dos produtos, (cargas periodicas após o envio da carga total) caso seja a integração de um novo item é necessario utilizar o método POST.
  • Encaminhe no payload sempre todos os itens que foram atualizados no intervalo entre as cargas.
  • Os campos para o método PATCH são case sensitive, portanto é necessário que tanto o nome dos campos quanto o valor deles sigam o padrão descrito na documentação.

Produtos Internos

Produtos internos são aqueles que o código existe apenas naquela loja/rede (de 1 até 7 dígitos) FLVs, Cortes, Próprios; Em alguns casos é necessário vincular foto, descrição e como será vendido na plataforma (Precesso realizado no Portal do Parceiro)

Exemplo de Produto Interno

[
    {
    "idLoja": 001,
    "departamento": "Açougue",
    "categoria": "Cortes",
    "subCategoria": "Carnes Frescas",
    "marca": "Contra Filé Prime",
    "unidade": "KG",
    "volume": "1KG",
    "codigoBarra": "102030",
    "nome": "Contra Filé KG",
    "valor": 89.99,
    "valorPromocao": 0,
    "valorAtacado": 0,
    "valorCompra": 0,
    "quantidadeEstoqueAtual": 3.756, 
    "quantidadeEstoqueMinimo": 0,
    "quantidadeAtacado": 0,
    "descricao": "Contra Filé KG",
    "ativo": true,
    "plu": "101030",
    "validadeProxima": false,
    "imageURL": "https://site.com/imagem.jpg"
    }
]

Promoções e Múltiplos

  • Para que seja representado no aplicativo o valor promocional "DE - POR" é necessário o envio dos dois valores nos seguintes campos:

valor: Valor do produto. valorPromocao: Valor do produto em promoção.

Lembrando que o valor de venda será representado pelo menor enviado nos campos.

Exemplo de Promoção

[
    {
    "idLoja": 001,
    "departamento": "PERECIVEIS", 
    "categoria": "FRIOS",
    "subCategoria": "APRESUNTADO",
    "marca": "SADIA",
    "unidade": "KG",
    "volume": "1KG",
    "codigoBarra": "7891231231231",
    "nome": "APRESUNTADO SADIA 1KG",
    "valor": 19.99,
    "valorPromocao": 14.99,
    "valorAtacado": 0,
    "valorCompra": 0,
    "quantidadeEstoqueAtual": 5.492, 
    "quantidadeEstoqueMinimo": 0,
    "quantidadeAtacado": 0,
    "descricao": "APRESUNTADO SADIA 1KG",
    "ativo": true,
    "plu": "101010",
    "validadeProxima": false,
    "imageURL": "https://site.com/imagem.jpg"
    }
]

É uma dinâmica de venda onde a loja pode vender embalagens com produtos EAN, ou seja, embalagens feitas manualmente pelo lojista ou embalagens da própria industria.

Abaixo um exemplo de como deve ser integrado:

codigoBarra < código interno do Seller > Código criado pela Loja multiploEanOriginal: < Código EAN do produto Unitário > multiploQtd: < Quantidade de itens na embalagem criada pela loja > plu: Código interno do produto para controle do pacote. Replicar o campo CódigoBarra acrescentando um "_" underline no final do codigo junto a quantidade (Ex.: 1234_12).

É obrigatório o utilizar o preenchimento do PLU contendo o underline no final do codigo junto a quantidade do item.

Exemplo de Múltiplos

[
    {
    "idLoja": 001,
    "departamento": "Bebidas Alcoólicas", 
    "categoria": "Cerveja",
    "subCategoria": "Cerveja Nacional",
    "marca": "Heineken",
    "unidade": "Embalagem",
    "volume": "12un",
    "codigoBarra": "1234",
    "nome": "Cerveja Heineken Lata 473Ml com 12Un",
    "valor": 126,
    "valorPromocao": 0,
    "valorAtacado": 0,
    "valorCompra": 0,
    "quantidadeEstoqueAtual": 300, 
    "quantidadeEstoqueMinimo": 0,
    "quantidadeAtacado": 0,
    "descricao": "Cerveja Heineken Lata 473Ml com 12Un",
    "ativo": true,
    "plu": "1234_12",
    "validadeProxima": false,
    "imageURL": "https://site.com/imagem.jpg",
    "multiploEanOriginal": "7896045506248",
    "multiploQtd": 12
    }
]

Validação dos produtos enviados

Com o envio realizado siga o passo a passo de validação dos itens integrados atraves do link abaixo:

Validação dos produtos

Boas praticas nos envios dos produtos

Logo após entendido e configurado o primeiro envio, é essencial que o parceiro parametrize o envio periódico dos produtos para as lojas.

Sugerimos que seja enviado inicialmente uma carga completa contendo todos os produtos praticados em venda que devem ser disponibilizados na plataforma, e nas demais cargas apenas o envio dos produtos que sofreram atualizações (estoque, preço, inativações e etc.).

O parceiro não deve parametrizar cargas contínuas de todos os produtos da loja nas integrações. Esta pratica causa alto impacto no processamento dos dados, o que pode impactar no processo de integrações da loja e das demais ativas.

Nossa recomendação é que as cargas completas não ultrapassem o valor de 10mb.

Caso seja indentificado um alto envio de produtos na integração, a credencial estará sujeita a bloqueios prévios até que ocorra normalização dos envios.

Durante as atualizações é essencial que sejam enviadas as posições de estoque 0 e/ou negativo sempre que necessário, assim evitando rupturas e cancelamentos de pedidos. Porque isto é importante:

  • Estoque 0 - Nas plataformas já temos funcionalidades para tratar esta posição de estoque, quando o item é enviado com estoque 0, o mesmo sai automaticamente de venda. Por este motivo é importante que esta informação seja enviada sempre.

  • Estoque negativo - Armazenamos as movimentações dos itens mesmo que negativamente, pois a partir dela podemos validar se o item em loja esta sendo movimentado, mesmo que seu valor não tenha sido alterado para um valor positivo ele pode estar sendo alterado negativamente como -1,-2,-3 e assim por diante.

  • Markup - Importamos do sistema na integração os valores dos produtos praticados em loja, o valor do MARKUP é configurado na plataforma iFood no ato da ativação de acordo com a negociação comercial no fechamento do contrato. O parâmetro do markup é global (o mesmo valor para todos os produtos de forma percentual).

Carga Reset

O 'reset = true' é uma ação destrutiva, portanto deve ser utilizado somente com o intuito de limpar testes da base e/ou eliminar itens integrados indevidamente.

Exemplo de uso No cenário onde a loja detém 20.000 produtos ativos e deseja retirar vários itens que não possui mais informações em sua base, o sistema deve primeiro enviar uma carga completa respeitando o tamanho de 10mb de itens e utilizar o método "RESET=true" para limpar a base, caso a carga completa ultrapasse o limite será necessário dividir os envios, lembrando de que o parâmetro de reset será enviado somente na primeira....

Posteriormente, enviar as cargas de produtos apenas com atualizações no intervalo sugerido de 30 minutos sem o parâmetro "RESET=true" nos cenários relacionados abaixo:

  • Alteração de Preço, estoque, descrição e etc. dos produtos;

  • Atualizações para inserção de novos produtos;

  • Inativações de produtos.

    Mais detalhes na referência do endpoint

Caso sejam pontuados problemas com o uso do parâmetro e os mesmos não forem corrigidos, as integrações das lojas podem ser desativadas até que ocorra o ajuste pelo responsável.

Rate Limit

Para rotas de envio de produtos possuimos um intervalo padrão de 30 minutos entre cargas.

Em casos de múltiplas tentativas de envios dentro do intervalo padrão, a credencial estará sujeita a bloqueios prévios até que ocorra normalização dos envios.