Permitir que o PDV aplique descontos na venda atual. O parceiro receberá o JSON com as informações da venda, devendo colocar o desconto nos itens, para retornar as informações ao PDV.
O parceiro pode configurar uma mensagem caso necessário, por exemplo, informando quanto de desconto o cliente ganhou ou quantos pontos ele ganhou com a compra.
O PDV precisa estar com a operação de Subtotal da venda, na operação de Início da venda e Finalização da venda não serão aplicados descontos.
O desconto poderá ser recebido mais de uma vez, quando o fluxo voltar para o PDV solicitando um novo desconto. A seguir exemplos de como executar esta operação.
| PARÂMETRO | TIPO | OBRIGATÓRIO | DESCRIÇÃO | |||||||||||||||
| Version | string | true | Versão da API | |||||||||||||||
| Execution | string | true | Tipo da execução cetContinue, cetInterrupt, cetFailed | |||||||||||||||
| Increase | double | true | Valor total dos acréscimos na venda | |||||||||||||||
| Discount | double | true | Valor total dos descontos na venda | |||||||||||||||
| Total | double | true | Valor total da venda | |||||||||||||||
| ItemNumber | double | true | Número do item | |||||||||||||||
| UnitPrice | double | true | Valor bruto do produto | |||||||||||||||
| IncreasePrice | double | true | Acréscimo no item | |||||||||||||||
| PackingQuantity | double | true | Quantidade itens por embalagem | |||||||||||||||
| Quantity | double | true | Quantidade de itens | |||||||||||||||
| TotalPrice | double | true | Valor total do item após descontos e acréscimos | |||||||||||||||
| DiscountPrice | double | true | Valor total dos descontos aplicados nos itens | |||||||||||||||
| Status | string | true | Status do item. Tipo de dado (sttValid, sttCanceled) | |||||||||||||||
| Text | string | true | Texto da mensagem customizada | |||||||||||||||
| PartitionDiscount | Array of objects | false | Distribuição do total de descontos nos itens por regras de descontos e parceiros
| |||||||||||||||
| PartitionIncrease | Array of objects | false | Distribuição do total de acréscimos nos itens por regras de acréscimos e parceiros
|
O desconto pode ser aplicado no total do cupom ou em itens do cupom.
Quando o PDV tiver em operação “Finalizar venda”, todo desconto aplicado na forma de pagamento ou no cupom, será rateado proporcionalmente nos itens, informando o código indicador da promoção do parceiro.
Em caso de desconto ou acréscimo, no rateio dos itens será identifcado o código do parceiro através do parâmetro “PartnerCode” e o código da promoção através do parâmetro “PromotionCode”. Quando retornar zero, o desconto foi aplicado de forma manual ou por alguma regra cadastrada interna no PDV.
O integrador não deverá utilizar os valores de descontos presentes no cupom, para bases de cálculos, pois os valores do mesmo estarão rateados entre os valores de descontos dos itens.
Exemplo com desconto no cupom:
No exemplo abaixo foram adicionados dois itens no cupom.
Cupom da venda – Foi adicionado um desconto com o código do parceiro 10 e código da promoção 210 no valor de R$1,00, encontrado no PartitionDiscount do cupom.
Em cada item do cupom pode ser encontrado um desconto com os mesmos códigos de parceiro e promoção, porém com o valor de R$0,50 que é o valor rateado entre os dois itens da venda.
JSON Completo
{
"version"1,
"execution""cetCompleted",
"sale"{
"increase"0,
"discount"1.00,
"total"0,
"items"[
{
"BarCode""7891000100103",
"CaptionPacking""UN",
"Description""MOCA",
"DiscountPrice"0.00,
"IncreasePrice"0.00,
"InternalCode""118",
"ItemNumber"1,
"PackingQuantity"1.00,
"PartitionDiscount"[
{
"DiscountAmount"1,
"PartnerCode"10,
"Price"0.50,
"PromotionCode"210
}
],
"Quantity"1.000,
"Status""sttValid",
"TotalPrice"4.49,
"UnitPrice"4.99
},
{
"BarCode""31",
"CaptionPacking""KG",
"Description""ZAFFARI",
"DiscountPrice"0.00,
"IncreasePrice"0.00,
"InternalCode""118",
"ItemNumber"2,
"PackingQuantity"1.00,
"PartitionDiscount"[
{
"DiscountAmount"1,
"PartnerCode"10,
"Price"0.50,
"PromotionCode"210
}
],
"Quantity"1.00,
"Status""sttValid",
"TotalPrice"29.40,
"UnitPrice"29.90
}
],
"messages"{
"customer"[
{
"text""Ganhou desconto no cupom"
}
],
"user"[
{
"text""Ganhou desconto no cupom"
}
]
},
},
"PartitionDiscount"[
{
"discountAmount"1,
"PartnerCode"10,
"Price"1.00,
"PromotionCode"210
}
]
}JSON Simplificado com parâmetros necessários
{
"version"1,
"execution""cetCompleted",
"sale"{
"discount"1.00
}
}Exemplo com desconto em item no cupom:
No exemplo abaixo foi adicionado um item no cupom.
Item 1 – Foi adicionado um desconto de R$0,60 com o Código do parceiro 10 e o código da promoção 210, encontrados no PartitionDiscount do Item.
IMPORTANTE: Caso o desconto fosse aplicado em mais de uma unidade o “discountPrice” deve conter a soma dos descontos, neste exemplo o desconto é de R$0,60 por item, ou seja, se fossem duas unidades o discountPrice seria de R$1,20.
Não houve desconto no cupom da venda, apenas desconto no item.
JSON Completo
{
"version"1,
"execution""cetCompleted",
"sale"{
"increase"0,
"discount"0,
"total"0,
"items"[
{
"itemNumber"1,
"unitPrice"0,
"increasePrice"0.00,
"packingQuantity"0,
"quantity"0,
"totalPrice"0,
"discountPrice"0.60,
"status""sttValid",
"PartitionDiscount"[
{
"discountAmount"1,
"PartnerCode"10,
"Price"0.60,
"PromotionCode"210
}
],
"Quantity"1.000,
"Status""sttValid",
"TotalPrice"4.39,
"UnitPrice"4.99
}
],
"messages"{
"customer"[
{
"text""Ganhou desconto no item"
}
],
"user"[
{
"text""Ganhou desconto no item"
}
]
}
}
}JSON simplificado com parâmetros necessários
{
"version"1,
"execution""cetCompleted",
"sale"{
"items"[
{
"discountAmount"1,
"itemNumber"1,
"discountPrice"0.60,
"discountAmount"1
}
]
}
}Exemplo desconto em itens da venda e no cupom:
No exemplo abaixo foram adicionados dois itens no cupom.
Item 2 – Foi adicionado um desconto com o código do parceiro 201 e código da promoção 593 no valor de R$5,90, encontrado no PartitionDiscount do Item.
Cupom da venda – Foi adicionado desconto na venda.
Desconto cupom 2 – Adicionado desconto com o código do parceiro 201 e código da promoção 568 no valor de R$1,00 encontrado no PartitionDiscount do cupom.
Em cada item do cupom pode ser encontrados dois desconto com os mesmos códigos de parceiro e promoção, porém com o valor de R$0,50 cada, pois é o valor dos dois descontos rateado entre os dois itens da venda.
{
"version"1,
"sale"{
"increase"0,
"discount"2.00,
"total"0,
"Items"[
{
"BarCode""17",
"CaptionPacking""KG",
"Description""ZAFFARI",
"DiscountPrice"0.00,
"IncreasePrice"0.00,
"InternalCode""84",
"ItemNumber"1,
"PackingQuantity"1.000,
"PartitionDiscount"[
{
"discountAmount"1,
"PartnerCode"201,
"Price"1.00,
"PromotionCode"568
}
],
"PartitionIncrease"[
],
"Quantity"1.00,
"Status""sttValid",
"TotalPrice"28,
90,
"UnitPrice"29,
90
},
{
"BarCode""31",
"CaptionPacking""KG",
"Description""ZAFFARI",
"DiscountPrice"5.90,
"IncreasePrice"0.00,
"InternalCode""118",
"ItemNumber"2,
"PackingQuantity"1.00,
"PartitionDiscount"[
{
"discountAmount"1,
"PartnerCode"201,
"Price"1.00,
"PromotionCode"568
},
{
"discountAmount"1,
"PartnerCode"201,
"Price"5.90,
"PromotionCode"593
}
],
"Quantity"1.00,
"Status""sttValid",
"TotalPrice"23.00,
"UnitPrice"29.90
}
]
},
"PartitionDiscount"[
{
"discountAmount"1,
"PartnerCode"201,
"Price"2.00,
"PromotionCode"568
}
],
"execution""cetCompleted",
}Início da venda no PDV, foi inserido um produto e teclado Enter. Após todos os produtos inseridos, foi acionada a função para ir ao Subtotal da venda.
Imagem 1 – Tela de Venda
JSON enviado ao parceiro
{
"Event""cetBefore",
"Execution""cetContinue",
"ID""001600000590921",
"Operation""cotSubtotalSale",
"Sale"{
"Header"{
"AccountingDate""2020-01-22T00 00 00",
"DateTimeIssue""2020-01-22T14 15 36",
"IdDocument"590921,
"IdUser"2,
"Identifcation"[
{
"Document""12345678909",
"PartnerCode""10",
"DocumentType""cdtCPF"
}
],
},
"ID""001600000590921",
"Items"[
{
"BarCode""7891000100103",
"CaptionPacking""UN",
"Description""LEITE COND MOCA LATA 395G",
"DiscountAmount"0,
"DiscountPrice"0,
"IncreasePrice"0,
"InternalCode""4900",
"ItemNumber"1,
"PackingQuantity"1,
"Quantity"1,
"Status""sttValid",
"TotalPrice"4.99,
"UnitPrice"4.99
}
]
}
}JSON retornado pelo parceiro com uma mensagem para o operador do PDV, nesse caso informa que o cliente ganhou 100 pontos na compra
{
"version"1,
"execution""cetContinue",
"sale"{
"items"[
{
"itemNumber"1,
"discountPrice"0.49,
"discountAmount"1
}
],
"messages"{
"customer"[
{
"text""Ganhou desconto 100 nessa compra"
}
]
},
"vouchersPrint"[
{
"text"" CUPOM DESCONTO 1\r\n\r\n Cupom de 5% de desconto para \r\npróxima\r\ncompra, aplicado para todos os \r\nprodutos.\r\n\r\n[ImpBarra]1234567891231[ImpFimBarra]"
},
{
"text"" CUPOM DESCONTO 2\r\n\r\n Cupom de 10% de desconto para \r\npróxima\r\ncompra, aplicado para todos os \r\nprodutos.\r\n\r\n[ImpBarra]1234567891231[ImpFimBarra]"
}
]
}
}Tela apresentada ao operador.
Imagem 2 – Pontuação Compra
Após finalização da venda conforme tela abaixo, será impresso o comprovante onde constará os cupons de desconto impressos.
Imagem 3 – Tela Pagamento
Exemplo de texto impresso no cupom.
Imagem 4 – Texto Cupom