1

this is my general setup for taxes:

general setup for taxes

it works perfectly for customer in the retail customer class. However, I have a few customers who needs to have no tax applied to them. So I've created a new customer tax class, applied this tax class to the wholesale customer group and placed these few customers into the wholesale group. This is my tax rules setup:

enter image description here

these are my customer groups:

enter image description here

this is my test customer with the wholesale group assignment:

enter image description here

I created a test product with price = 50. If I open the product page from frontend, I can see the price as 50. When I add it to the cart, I can see the total correctly: subtotal 40.98 plus taxes. So far, everything works as intended: the price in catalog page shows the price including taxes and the totals shows the net price + the tax separately.

The problem is when I login as the wholesale customer:

  • in the cart I see everything correctly: price 40.98, subtotal 40.98 + 0 taxes:

enter image description here

  • but in the product page, I still see 50 as the product price: shouldn't it be 40.98 since the wholesale customer has no tax applied?

I also tried to change the basic tax setup from "including tax" to "excluding tax" for catalog prices but that doesn't seem to change anything: even with excluding tax from catalog prices, the price displayed in the product page is still 50.

Cleaning cache and reindexing doesnt help: the price in catalog page is still 50.

How can I have the price in product page show it correctly for the wholesale customer?

1

I got the same issue, this is fixed for Magento 2.4 but still exist for version 2.3. You can fix by updating this file: Magento/Tax/Model/Config.php

public function needPriceConversion($store = null)
    {
        $res = false;
        $priceIncludesTax = $this->priceIncludesTax($store) || $this->getNeedUseShippingExcludeTax();
        if ($priceIncludesTax) {
            switch ($this->getPriceDisplayType($store)) {
                case self::DISPLAY_TYPE_EXCLUDING_TAX:
                case self::DISPLAY_TYPE_BOTH:
                    return self::PRICE_CONVERSION_MINUS;
                case self::DISPLAY_TYPE_INCLUDING_TAX:
                    $res = $this->displayCartPricesInclTax($store);
                    break;
                default:
                    break;
            }
        } else {
            switch ($this->getPriceDisplayType($store)) {
                case self::DISPLAY_TYPE_INCLUDING_TAX:
                case self::DISPLAY_TYPE_BOTH:
                    return self::PRICE_CONVERSION_PLUS;
                case self::DISPLAY_TYPE_EXCLUDING_TAX:
                    $res = false;
                    break;
                default:
                    break;
            }
        }

        if ($res === false) {
            $res = $this->displayCartPricesBoth();
        }
        return $res;
    }

https://github.com/magento/magento2/issues/26014

1
  • This did the trick for me on 2.3.4. Thanks! Seems to be fixed in 2.3.5
    – JELLEJ
    Sep 9 '20 at 7:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.