Comando Desconto na Venda

Filtros


Atalhos para busca

Objetivo

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

Parâmetro Tipo Descrição
PartnerCode string Código do parceiro
Price string Valor do desconto
PromotionCode Int32 Código da promoção
DiscountAmount double Quantidade de descontos aplicados
PartitionIncrease Array of
objects
false Distribuição do total de acréscimos nos itens por regras
de acréscimos e parceiros

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

 

Response Example

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",
  
}

Exemplo Fluxo Desconto no Item e Cupom Desconto

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
Este artigo foi útil para você?
Sim
Não
Confirmar que o artigo não foi útil