logo
logo

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.

Integração de Item

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.

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:

  • É 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.
[
    {
        "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",
    }
]

Informação dos campos

NomeDescrição
barcodeEAN para industrializados não-pesáveis ou código de balança para produção própria, verduras e/ou legumes, carnes e frutas
nameNome do produto
pluCódigo interno PLU
activeDefine se o item está ativo para venda
inventory.stockQuantidade do estoque atual
details.categorization.departmentNome do departamento
details.categorization.categoryNome da categoria
details.categorization.subCategoryNome da subcategoria
details.brandNome da marca
details.unitUnidade de medida (Ex: G, KG, UN)
details.volumeQuantidade da unidade de medida do item (Ex: 180g, 5kg, 1un)
details.imageUrlURL da imagem
details.descriptionDescrição do item
details.nearExpirationIndicador se está perto da validade
prices.priceValor base de venda
prices.promotionPriceValor promocional (De-Por)
scalePrices[*].quantityPreço Atacarejo - Quantidade que ativa valor promocional
scalePrices[*].pricePreço Atacarejo - Valor promocional
multiple.originalEanEAN original do múltiplo - Exclusivo para canal iFood Shop
multiple.quantityQuantidade 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.

  • O preço ao consumidor será o menor valor enviado nos campos.
  • Para que a tag de De-Por seja exibida o Valor Promocional deve ser pelo menos 5% menor que o Valor Base.

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.

Exemplo

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

  • 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)

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
  • 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

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 APICampo Merchant API
idLojaNa URL: ingestion/{merchantId}
codigoBarrabarcode
nomename
pluplu
ativoactive
quantidadeEstoqueAtualinventory.stock
departamentodetails.categorization.department
categoriadetails.categorization.category
subcategoriadetails.categorization.subCategory
marcadetails.brand
unidadedetails.unit
volumedetails.volume
imageURLdetails.imageUrl
descricaodetails.description
validadeProximadetails.nearExpiration
valorprices.price
valorPromocaoprices.promotionPrice
listaEscalaPreco.quantidadescalePrices[*].quantity
quantidadeAtacadoscalePrices[*].quantity
listaEscalaPreco.precoscalePrices[*].price
valorAtacadoscalePrices[*].price
multiploEanOriginalmultiple.originalEan
multiploQtdmultiple.quantity
ADICIONADOchannels[*]
familiaREMOVIDO
caracteristicasREMOVIDO
quantidadeEstoqueMinimoREMOVIDO

Critérios de Homologação

Verifique os critérios para realizar sua homologação.