...
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.
...
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 array of objects | false | Distribuição do total de descontos nos itens por regras de descontos e parceiros
| Array of objects | false | Distribuição do total de acréscimos nos itens por regras
Parâmetro | Tipo | Descrição |
PartnerCode | string | Código do parceiro |
Price | string | Valor do acréscimo |
PromotionCode | Int32 | Código da promoção |
IncreaseAmount | double | Quantidade de descontos aplicados |
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
| |||||||||||||||||||||
PartitionIncrease | array of objects | false | Distribuição do total de acréscimos nos itens por regras de acréscimos e parceiros
| ||||||||||||||||||
SellerCode | string | false | Informar o código do vendedor. |
Observação : A tag IncreDiscType será informada pelo PDV, pois ela é um informativo do que foi aplicado no PDV.
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á identificado 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.
O PDV não realizará Cálculos para apuração de descontos ou acréscimo, ele atuará sempre de acordo com o retorno da API do parceiro.
No exemplo abaixo foram adicionados dois itens no cupom.
Cupom da venda – Foi adicionado um desconto no campo "discount" de R$ 1,00
Notem quem não foram informados valores de descontos nos "items" e foi informado em "partitionDiscount" dentro da "sale" (Cupom). O desconto que será rateado pelo o PDV na finalização da venda.
JSON Completo
{
"version": 1,
"execution": "cetCompleted",
"interpret": null,
"sale": {
"increase": 0,
"discount": 1,
"total": 0,
"header": null,
"payments": [],
"paymentChange": null,
"solidaryChange": null,
"items": [
{
"itemNumber": 1,
{
"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,
unitPrice": 0,
"Status""sttValid",
increasePrice": 0,
"TotalPrice"4.49,
packingQuantity": 0,
"UnitPrice"4.99
quantity": 0,
},
"totalPrice": 0,
{
"BarCode""31",
discountPrice": 0,
"CaptionPackingstatus": "KGsttValid",
"Description""ZAFFARI",
sellerCode": 0,
"DiscountPrice"0.00,
partitionIncrease": [],
"IncreasePrice"0.00,
partitionDiscount": [
"InternalCode""118",
{
"ItemNumber"2,
"PackingQuantity"1.00,
price": 0,
"PartitionDiscount"[
{
"partnerCode": 0,
"DiscountAmountpromotionCode"1: 10,
"PartnerCodediscountAmount"10,
: 1,
"IncreDiscType": 1
"Price"0.50,
},
"PromotionCode"210
{
}
"price": ],
0,
"Quantity"1.00,
partnerCode": 0,
"Status""sttValid",
"promotionCode": 43,
"TotalPrice"29.40,
"UnitPrice"29.90
}
],
discountAmount": 1,
"IncreDiscType": 2
"messages"{
"customer"[
}
{
]
},
"text""Ganhou desconto no cupom"
{
}
"itemNumber": 2,
],
"userunitPrice"[
: 0,
{
"increasePrice": 0,
"text""Ganhou desconto no cupom"
packingQuantity": 0,
"quantity": 0,
}
]
},
"totalPrice": 0,
},
"PartitionDiscountdiscountPrice"[
: 0,
{
"status": "discountAmountsttValid"1,
"PartnerCodesellerCode"10,
: 0,
"Price"1.00,
partitionIncrease": [],
"PromotionCode"210
partitionDiscount": [
}
]
}
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
{
"price": 0,
"partnerCode": 0,
"promotionCode": 11,
"discountAmount": 1,
"IncreDiscType": 2
},
{
"price": 0,
"partnerCode": 0,
"promotionCode": 94,
"discountAmount": 1
"IncreDiscType":1
}
]
}
],
"discountCodes": [],
"messages": {
"customer": [],
"user": [
{
"text": "Nesta compra ganhou R$ 1,00 de desconto"
}
]
},
"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]1234567890\r\n[ImpFimBarra]\r\n"
},
{
"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]1234567890\r\n[ImpFimBarra]\r\n"
}
],
"partitionIncrease": [],
"partitionDiscount": [
{
"price": 1,
"partnerCode": 0,
"promotionCode": 77,
"discountAmount": 0
}
]
},
"pay": null,
"return": {
"code": 0,
"messageText": "0"
},
"vouchersPrint": []
}
JSON Simplificado com parâmetros necessários
{
"version"1,
"execution""cetCompleted",
"sale"{
"discount"1.00
}
}
No exemplo abaixo foi adicionado um item no cupom.
Item 1 – Foi adicionado um desconto de R$0,44 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,44 por item, ou seja, se fossem duas unidades o discountPrice seria de R$0,88.
Não houve desconto no cupom da venda, apenas desconto no item.
JSON Completo
{
"version": 1,
"execution": "cetCompleted",
"interpret": null,
"sale": {
"increase": 0,
"discount": 0,
"total": 0,
"header": null,
"payments": [],
"paymentChange": null,
"solidaryChange": null,
"items": [
{
"itemNumber": 1,
"unitPrice": 0,
"increasePrice": 0,
"packingQuantity": 0,
"quantity": 0,
"totalPrice": 0,
"discountPrice": 0.44,
"status": "sttValid",
"sellerCode": 0,
"partitionIncrease": [],
"partitionDiscount": [
{
"price": 0.2245,
"partnerCode": 10,
"promotionCode": 210,
"discountAmount": 1,
"IncreDiscType": 21
}
]
}
],
"discountCodes": [],
"messages": {
"customer": [],
{ "version"1, "execution""cetCompleted", "sale"{ "increase"0, "discount"0, "total"0, "items"[ { "itemNumber"1, "unitPrice"0, "increasePrice"0.00, "packingQuantity"0, "quantity"0, user": [
"totalPrice"0, {
"discountPrice"0.60, "statustext""sttValid", : "Nesta compra ganhou R$ 1,00 de desconto"
"PartitionDiscount"[ }
{ ]
"discountAmount"1, },
"vouchersPrint": [
"PartnerCode"10, {
"text": " CUPOM "Price"0.60, "PromotionCode"210 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]1234567890\r\n[ImpFimBarra]\r\n"
} ,
], {
"text"Quantity"1.000, "Status""sttValid", "TotalPrice"4.39, : " 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]1234567890\r\n[ImpFimBarra]\r\n"
"UnitPrice"4.99 } }
],
"messagespartitionIncrease"{ : [],
"customerpartitionDiscount": [
{ "text""Ganhou desconto no item" {
"price": 0,
} "partnerCode": ]0,
"user"[ promotionCode": 0,
{ "discountAmount": 0
}
"text""Ganhou desconto no item" ]
},
"pay": null,
"return": {
} "code": 0,
] "messageText": "0"
} } },
"vouchersPrint": []
}
JSON simplificado com parâmetros necessários
{
"version"1,
"execution""cetCompleted",
"sale"{
"items"[
{
"discountAmount"1,
"itemNumber"1,
"discountPrice"0.6044,
"discountAmount"1
}
]
}
}
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$5R$ 0,9049, encontrado no PartitionDiscount do Item.
...
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.
parceiro 201 e código da promoção 568 no valor de R$1,00 encontrado no PartitionDiscount do cupom.
{
{ "version": 1,
"sale"{ "increase"0, "discount"2.00, "total"0, "Items"[ { "BarCode""17", execution": "cetCompleted",
"interpret": null,
"sale": {
"increase": 0,
"discount": 1,
"CaptionPacking""KG", total": 0,
"Description""ZAFFARI", header": null,
"DiscountPrice"0.00, payments": [],
"paymentChange": null,
"IncreasePrice"0.00, solidaryChange": null,
"InternalCode""84", items": [
"ItemNumber"1, {
"PackingQuantityitemNumber": 1.000,
"PartitionDiscountunitPrice"[ : 0,
{ "increasePrice": 0,
"discountAmountpackingQuantity"1, : 0,
"quantity": 0,
"PartnerCode"201, "totalPrice": 0,
"PricediscountPrice"1: 0.0099,
"PromotionCode"568 "status": "sttValid",
"sellerCode": 0,
} "partitionIncrease": [],
"PartitionIncreasepartitionDiscount": [
{
], "Quantityprice"1: 0.00, 49,
"Status""sttValid", partnerCode": 201,
"TotalPricepromotionCode"28, : 593,
90, "UnitPrice"29, "discountAmount": 1
"IncreDiscType": 1
90 }
}, { ]
"BarCode""31", }
],
"CaptionPacking""KG", discountCodes": [],
"Description""ZAFFARI", messages": {
"DiscountPrice"5.90, customer": [],
"IncreasePrice"0.00, user": [
{
"InternalCode""118", "ItemNumbertext"2, : "Nesta compra ganhou R$ 1,00 de "PackingQuantity"1.00, desconto"
"PartitionDiscount"[ }
]
{ },
"vouchersPrint": [
"discountAmount"1, {
"text": "PartnerCode"201, CUPOM DESCONTO 1\r\n\r\n Cupom de 5% de desconto para \r\npróxima\r\ncompra, "Price"1.00, "PromotionCode"568 aplicado para todos os \r\nprodutos.\r\n\r\n[ImpBarra]1234567890\r\n[ImpFimBarra]\r\n"
},
{ {
"discountAmounttext"1, : " CUPOM DESCONTO "PartnerCode"201, "Price"5.90, 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]1234567890\r\n[ImpFimBarra]\r\n"
}
"PromotionCode"593 ],
"partitionIncrease": [],
} "partitionDiscount": [
{
], "Quantityprice": 1.00,
"Status""sttValid", partnerCode": 201,
"TotalPrice"23.00, promotionCode": 568,
"UnitPrice"29.90 discountAmount": 0,
} ] }, "PartitionDiscount"[ IncreDiscType": 2
{ }
"discountAmount"1, ]
},
"PartnerCodepay"201: null,
"return": {
"Price"2.00, code": 0,
"messageText": "PromotionCode0"568
} ],
"execution""cetCompleted", vouchersPrint": []
}
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
...
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