Question

I am learning the Magento 2 price logic, so I am started from the simple product final price calculation logic. So the final price is the least amount from the regular_price, Catalog price rule, special price & tier price.

for my simple product Regurlar price: 100, Catalog price rule: 10(fixed), special price: 80 and tier price for one qty is 70, 2 qty is 130.

When I added one qty to cart its take the least amount among the above, so it's 70, but when I added two qty to cart it's should be 130, but for me, it's showing 140.

Any one explain this final price calculation logic, thanks in advance for your support.

enter image description here

Was it helpful?

Solution

So again you have:

  1. Regular price -> 100
  2. Catalog price rule -> 10%
  3. Special price -> 80
  4. Tier price when a customer buys 1 item -> 70 (keep in mind that this price is lower than Special price)
  5. Tier price when a customer buys 2 items -> 130

Let's start from the end:

5: This means than when customer add 2 items into the cart you want to sell each of them 130 each -> as a result, you have to get 260 (remember this -> when you configure 130 in admin, this doesn't mean that total price in the cart should be 130, this means that you want sell each of them at the price of 130)

4: The same logic as for above -> when you configure 70 in admin, this doesn't mean that the total price in the cart should be 140, this means that you want sell each of them at the price of 70. Why this works ? because 70 is lower than Special price

3: Special price will be applied if it is lower than Tier price, so if you configure it as 60 -> Tier price from point 4 won't work.

2: It doesn't work at this situation at all. Make sure you apply this rule, and everything is reindexed.

1: If you make a regular price, for ex., 60 and a special price 80 -> M2 skip special price and apply regular, as as it lowers than special.

I hope that this explanation makes price stuff in M2 more clear to you.

OTHER TIPS

I created the same scenario and getting the 140 as per your screenshot.

Actually the all prices in magento worked on "least price" approach. So the final price is the least amount from the regular_price, Catalog price rule, special price & tier price.

The following is a list of Magento prices with the ascending priority:

  • Product Price
  • Tier Price
  • Group Price
  • Special Price
  • Catalog Rule Price

Second thing is advanced price (special price & tier price) used for setup the discounted or less price from product actual price.

In above example the least price is tier price. tier price for one qty is 70, 2 qty is 130.

1 qty price 70 => price on frontend will be 70 for 1 and 140 for 2
2 qty price 130 => price on frontend will be 70 for 1 and 140 for 2, 210 for 3

same case with right price

1 qty price 70 => price on frontend will be 70 for 1 and 140 for 2
2 qty price 60 => price on frontend will be 70 for 1 and 120 for 2, 180 for 3
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top