A merchant with a B2B store got in touch: his business customers were seeing a price in checkout well below the agreed net price. Shopify hadn’t miscalculated. It did exactly what it was set up to do, except it was set up to deduct the tax twice. The cause: wholesale price and tax exemption were mixed up. The fix: separate the two cleanly.
The case
A wholesaler of specialist tools sells through Shopify to consumers and to businesses. Consumers see gross prices, as is standard in German-speaking countries. Business customers get their own wholesale prices, and some of them are exempt from VAT, for example because they order from another EU country.
On the storefront everything looked right. Only in checkout did a customer notice: the price was lower than in his price list. Not by a few cents, but by almost a fifth.
The cause: three things that look the same
People often say “trade customers get net prices”. But that hides three different things:
- The net price is a price without tax.
- The catalog price is the price a customer group sees, whether with or without tax.
- The tax exemption says: no tax is charged to this customer.
In the store, the wholesale prices had been entered in the catalog as net prices. But the store itself works with tax-inclusive prices. So Shopify read the net price as a gross price and, for tax-exempt businesses, took the tax out a second time.
| Step | Amount |
|---|---|
| Agreed wholesale price, net | €70.00 |
| Entered in the catalog, read by Shopify as gross | €70.00 |
| Tax exemption: Shopify deducts 19% | €58.82 |
| Difference per unit | €11.18 |
Shopify calculated correctly. Just with the wrong assumptions.
The fix: pricing logic instead of a tax workaround
The quick reflex would have been to raise the catalog prices by 19% so that €70 comes out at the end again. That would have been right for tax-exempt businesses and wrong for every other trade customer.
Instead, we separated what belongs apart:
- Wholesale prices as their own pricing logic. Fixed catalog prices, entered on the same basis the store calculates with.
- Separate catalogs where the basis differs. Businesses that buy net get their own catalog in their own market.
- The tax exemption stays a pure tax matter. It’s tied to the company, not to the price.
After that, checkout prices were right for every customer group, without any math tricks anywhere.
How to check your store
- ☐ Does your store calculate with tax-inclusive or tax-exclusive prices? You’ll find this in the tax settings, per market.
- ☐ Are the prices in your B2B catalogs entered on the same basis?
- ☐ Create one test company that is tax-exempt and one that isn’t. Order the same product with both.
- ☐ Compare the checkout amount with your price list, not just what the product page displays.
It takes fifteen minutes and saves you re-invoicing real customers.
FAQ
Is this a bug in Shopify? No. Shopify consistently calculates on the basis you’ve set. The problem arises when prices are entered on a different basis from the one the store reads them on.
Does this affect me if I only have German business customers? Less often, because they’re usually not tax-exempt. As soon as you sell to businesses in other EU countries, you should check.
Will you tell me which tax rules apply to my customers? No, that’s for your tax advisor. We make sure the store maps the rules that apply correctly.
Will you review our B2B setup? Yes, as part of our audit or when setting up B2B.