Problema em gerar uma nova Ordem

Boa tarde, sou novo aqui estou tentando integrar com a VTEX, porém estou tendo problema no momento de gerar uma nova ordem. O erro que retorna é o seguinte: “O valor do pagamento é diferente do valor do pedido”, não compreendi o porque, para mim o calculo esta correto, alguém poderia me explicar como este calculo esta sendo feito, ou q estou errando?
O meu produto custa 59,95, o frete 15,98 e um desconto de 23,98, que dá 51,95

{
   "items":[
      {
         "id":"80544",
         "quantity":1,
         "seller":"1",
         "price":5995
      }
   ],
   "clientProfileData":{
     ....
   },
   "shippingData":{
      ....
      },
	  "updateStatus": "updated",
      "logisticsInfo":[
         {
            "itemIndex":0,
            "selectedSla":"Jadlog",
            "price":1598
         }
      ]

   },
      "paymentData":{
         "payments":[
            {
               "paymentSystem":"1",
               "referenceValue":5195,
               "value":5195,
               "installments":1
            }
         ]
      }
}

Oi @Andrew, tudo bem? Você pode compartilhar com a gente como foi feita a configuração do desconto? Se possível, compartilhando o nome da conta para conseguirmos testar.

conta: alphabeto

O desconto está assim:

{
  "idCalculatorConfiguration": "43823696-e583-4115-b328-e824009e9ac2",
  "name": "Recriar",
  "description": "Produtos recriar 40%",
  "beginDateUtc": "2021-11-05T03:00:00Z",
  "endDateUtc": "2023-01-31T03:00:00Z",
  "lastModified": "2022-01-28T16:31:49.3445287Z",
  "daysAgoOfPurchases": 0,
  "isActive": true,
  "isArchived": false,
  "isFeatured": false,
  "disableDeal": false,
  "activeDaysOfWeek": [],
  "offset": -3,
  "activateGiftsMultiplier": false,
  "newOffset": -3,
  "maxPricesPerItems": [],
  "cumulative": true,
  "nominalShippingDiscountValue": 0,
  "absoluteShippingDiscountValue": 0,
  "nominalDiscountValue": 0,
  "maximumUnitPriceDiscount": 0,
  "percentualDiscountValue": 40,
  "rebatePercentualDiscountValue": 0,
  "percentualShippingDiscountValue": 0,
  "percentualTax": 0,
  "shippingPercentualTax": 0,
  "percentualDiscountValueList1": 0,
  "percentualDiscountValueList2": 0,
  "skusGift": {
    "quantitySelectable": 1,
    "gifts": []
  },
  "nominalRewardValue": 0,
  "percentualRewardValue": 0,
  "orderStatusRewardValue": "invoiced",
  "maxNumberOfAffectedItems": 0,
  "maxNumberOfAffectedItemsGroupKey": "perCart",
  "applyToAllShippings": false,
  "nominalTax": 0,
  "origin": "Marketplace",
  "idSellerIsInclusive": true,
  "idsSalesChannel": [],
  "areSalesChannelIdsExclusive": false,
  "marketingTags": [],
  "marketingTagsAreNotInclusive": false,
  "paymentsMethods": [],
  "stores": [],
  "campaigns": [],
  "storesAreInclusive": true,
  "categories": [],
  "categoriesAreInclusive": true,
  "brands": [],
  "brandsAreInclusive": true,
  "products": [],
  "productsAreInclusive": true,
  "skus": [],
  "skusAreInclusive": true,
  "collections1BuyTogether": [],
  "collections2BuyTogether": [],
  "minimumQuantityBuyTogether": 0,
  "quantityToAffectBuyTogether": 0,
  "enableBuyTogetherPerSku": false,
  "listSku1BuyTogether": [],
  "listSku2BuyTogether": [],
  "coupon": [],
  "totalValueFloor": 0,
  "totalValueCeling": 0,
  "totalValueIncludeAllItems": false,
  "totalValueMode": "IncludeMatchedItems",
  "collections": [
    {
      "id": "368",
      "name": "Recriar TOTAL (368)"
    }
  ],
  "collectionsIsInclusive": true,
  "restrictionsBins": [],
  "cardIssuers": [],
  "totalValuePurchase": 0,
  "slasIds": [],
  "isSlaSelected": false,
  "isFirstBuy": false,
  "firstBuyIsProfileOptimistic": true,
  "compareListPriceAndPrice": false,
  "isDifferentListPriceAndPrice": false,
  "zipCodeRanges": [],
  "itemMaxPrice": 0,
  "itemMinPrice": 0,
  "installment": 0,
  "isMinMaxInstallments": false,
  "minInstallment": 0,
  "maxInstallment": 0,
  "merchants": [],
  "clusterExpressions": [],
  "clusterOperator": "all",
  "paymentsRules": [],
  "giftListTypes": [],
  "productsSpecifications": [],
  "affiliates": [],
  "maxUsage": 0,
  "maxUsagePerClient": 0,
  "shouldDistributeDiscountAmongMatchedItems": false,
  "multipleUsePerClient": false,
  "accumulateWithManualPrice": false,
  "type": "regular",
  "useNewProgressiveAlgorithm": false,
  "percentualDiscountValueList": []
}

Oi, @Andrew!

De que forma exatamente você está tentando criar o pedido? É pela API de “PUT Place Order”?

Ah, e qual o CEP, para eu testar com os mesmos valores de frete.

1 Like

Boa tarde, sim é essa. Mas eu consegui resolver o problema, pelo que eu vi o valor do desconto esta sendo calculado em cima do valor do pedido, entao bastou fornecer o valor do pedido já com desconto(o desconto foi de 2398, o valor original do item era 5995), assim:

{
   "items":[
      {
         "id":"80544",
         "quantity":1,
         "seller":"1",
         "price":3597
      }
   ],
   "clientProfileData":{
     ....
   },
   "shippingData":{
      "address":{
				...     
 },
	  "updateStatus": "updated",
      "logisticsInfo":[
         {
            "itemIndex":0,
            "selectedSla":"Jadlog",
            "price":1598
         }
      ]

   },
      "paymentData":{
         "payments":[
            {
               "paymentSystem":"1",
               "referenceValue":5195,
               "value":5195,
               "installments":1
            }
         ]
      }
}

Caso ainda queira testar, o postal code q usei foi esse: 88501170

1 Like

Ah, perfeito! Você foi correto em sua tentativa. :smile: Suas evidências eram suficientes, mas não me recordei disso no primeiro momento.

Embora, há também outra forma de inserir um pedido com promoção, e que de alguma forma eu considero mais segura: enviar price original junto das priceTags recebidas na simulação.

As “priceTags” representam as promoções aplicadas, e então elas sempre serão aplicadas sobre o “price”. A vantagem de informá-las ativamente é deixar explicito que você está usando promoções, e não fluxos como inserção de preço manual. Se não estou fazendo confusão, elas também possuem melhor compatibilidade com produtos pesáveis (aonde measurementeUnit é diferente de “1”).

1 Like

Obrigado pelo auxílio @garrucho. Utilizarei sua dica.