Docs Promotion
Módulo exclusivo Esse módulo é de uso exclusivo de parceiros que operam com 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.
A criação de promoções será realizada utilizando a rota POST /merchants/{merchantId}/promotions. Ao realizar a solicitação para a rota, o fluxo realizará as validações necessárias e processamento, e posteriormente as promoções serão enviadas ao APP.
Exemplo para promoções do tipo: FIXED
PERCENTAGE
e FIXED_PRICE
{
"aggregationTag": "123456",
"promotions": [
{
"promotionName": "Promoção teste",
"channels": [
"IFOOD-APP"
],
"items": [
{
"ean": "3213434343",
"discountValue": 22.99,
"initialDate": "2024-10-23",
"finalDate": "2024-10-30",
"promotionType": "FIXED",
}
]
}
]
}
Exemplo para promoções do tipo: LXPY
(leve X pague Y)
{
"aggregationTag": "123456",
"promotions": [
{
"promotionName": "Promoção teste do tipo LXPY",
"channels": [
"IFOOD-APP"
],
"items": [
{
"ean": "3213434343",
"discountValue": null,
"initialDate": "2024-10-23",
"finalDate": "2024-10-30",
"promotionType": "LXPY",
"progressiveDiscount": {
"quantityToBuy": 3,
"quantityToPay": 2
}
}
]
}
]
}
Exemplo para promoções do tipo: ATACAREJO
{
"aggregationTag": "123456",
"promotions": [
{
"promotionName": "Promoção teste do tipo Atacarejo",
"channels": [
"IFOOD-APP"
],
"items": [
{
"ean": "3213434343",
"discountValue": 3,
"initialDate": "2024-10-23",
"finalDate": "2024-10-30",
"promotionType": "ATACAREJO",
"progressiveDiscount": {
"quantityToBuy": 6
}
}
]
}
]
}
Exemplo para promoções do tipo: PERCENTAGE_X_UNIT_DISCOUNT
(X% off na Y unidade)
{
"aggregationTag": "123456",
"promotions": [
{
"promotionName": "Promoção teste - 50% de desconto na 3 unidade",
"channels": [
"IFOOD-APP"
],
"items": [
{
"ean": "3213434343",
"discountValue": 50.0,
"initialDate": "2024-10-23",
"finalDate": "2024-10-30",
"promotionType": "PERCENTAGE_PER_X_UNITS",
"progressiveDiscount": {
"quantityToBuy": 3
}
}
]
}
]
}
Nome | Tipo | Opcional | Descrição | Exemplo |
---|---|---|---|---|
aggregationTag | String | SIM | Identificador do pedido de integração | Número/código para identificação de solicitação de criação de promoção. |
promotion.promotionName | String | SIM | Nome da promoção | Promoção de verão |
channels | Array | NÃO | Canais onde as promoções serão vinculadas | IFOOD-APP |
promotions.items.ean | String | NÃO | EAN do item | 3213434343 |
promotions.items.discountValue | Double | SIM | Valor do desconto a ser concedido, pode ser passado valor em R$ ou % | 29.99 |
promotions.items.initialDate | Date | NÃO | Data em que a promoção deve começar | 2024-10-23 |
promotions.items.finalDate | Date | NÃO | Data em que a promoção deve finalizar | 2024-10-30 |
promotions.items.promotionType | String | NÃO | Tipo da promoção | FIXED, PERCENTAGE, FIXED_PRICE, LXPY, ATACAREJO ou PERCENTAGE_PER_X_UNITS |
promotions.items.progressiveDiscount.quantityToBuy | Integer | SIM1 | Quantidade a comprar | 2 |
promotions.items.progressiveDiscount.quantityToPay | Integer | SIM2 | Quantidade a pagar | 2 |
Tipos de promoções (promotionType) suportados pela integração.
Campos usados em conjunto
FIXED
, PERCENTAGE
, FIXED_PRICE
deve ser enviado
promotionType
e o discountValue
.
EX:{
"promotionType": "tipo da promoção",
"discountValue": "valor do desconto ou valor do item"
}
LXPY
deve ser enviado o promotionType
e o progressiveDiscount
(objeto completo)
EX: {
"promotionType": "LXPY",
"progressiveDiscount":{
"quantityToBuy": 3,
"quantityToPay": 2
}
}
ATACAREJO
deve ser enviado o promotionType
, o progressiveDiscount
e o discountValue
EX: {
"promotionType": "ATACAREJO",
"discountValue": "valor final do item",
"progressiveDiscount":{
"quantityToBuy": 3,
}
}
PERCENTAGE_PER_X_UNITS
deve ser enviado o promotionType
, o progressiveDiscount.quantityToBuy
e o discountValue
EX: {
"promotionType": "PERCENTAGE_PER_X_UNITS",
"discountValue": "valor do desconto aplicado a cada x unidades do item",
"progressiveDiscount":{
"quantityToBuy": 3,
}
}
Entrada | Valor do item com desconto |
---|---|
{"promotionType": "FIXED", "discountValue": 2} | R$ 8,00 |
{"promotionType": "PERCENTAGE", "discountValue": 10} | R$ 9,00 |
{"promotionType": "FIXED_PRICE", "discountValue": 6} | R$ 6,00 |
{"promotionType": "LXPY", "progressiveDiscount": {"quantityToBuy": 3, "quantityToPay": 2}} | Os 3 itens sairão por R$ 20,00, cada um por aproximadamente R$ 6,66 |
{"promotionType": "ATACAREJO", "discountValue": 6, "progressiveDiscount": {"quantityToBuy": 3}} | Os 3 itens sairão por R$ 18,00, cada um por R$ 6,00 |
{"promotionType": "PERCENTAGE_PER_X_UNITS", "discountValue": 50, "progressiveDiscount": {"quantityToBuy": 2}} | Ao adicionar 2 unidades do item no carrinho, a segunda receberá 50% de desconto. Ficando um valor total de R$ 15,00 |
Importante A fim de evitar qualquer tipo de erro ou fraude, permitimos descontos de no máximo 70% em relação ao preço de catálogo. Para mecânicas como "Leve X Pague Y" e "Percentual de desconto na Nª unidade" consideramos que o desconto dado no combo de itens comprados não deve passar dos mesmos 70% (ex. Leve 10 Pague 2 não é permitido, pois há um desconto de 80% nas 10 unidades compradas). Itens enviados com desconto maior que o permitido serão ignorados.
Sucesso
{
"aggregationId": "String",
"message": "We have successfully received your request to create promotions"
}
Erro
Quando ocorrer algum erro ao realizar o processamento, será retornado o HTTP status code 400 ou 422
{
"type": "Business Exception || Unprocessable Entity",
"title": "Business Exception || Unprocessable Entity",
"status": 400 || 422,
"detail": "Detail error",
"instance": "07228dab-644c-4bec-b8a3-073397a839a0"
}
Quando ocorrer algum erro em algum parâmetro ou no body, será retornado o HTTP status code 412
HTTP status code 412
{
"type": "Precondition Failed || Invalid Argument",
"title": "Invalid Request Body || Invalid Argument",
"status": 412,
"detail": "Detail error",
"instance": "07228dab-644c-4bec-b8a3-073397a839a0"
}