B2B buyers see gross prices on your Shopify store. Validate their VAT number on the storefront and show net prices before checkout.
TL;DR: Shopify shows the same price to everyone. B2B customers with a valid VAT number want to see net prices before checkout, not discover the discount at the last step. The EU Tax Exemption app lets B2B buyers validate their VAT number on your storefront and see tax-exempt pricing before they even add items to cart.
If you sell B2C and B2B from the same Shopify store (and most EU merchants do), you’ve hit this wall: Shopify has one price display setting. Either all prices include VAT, or none of them do.
EU consumer law requires VAT-inclusive prices for B2C. So you set “prices include tax” and move on. But now your B2B customers from other EU countries, the ones who should pay net prices via reverse charge, see gross prices everywhere. They don’t find out they’re exempt until checkout, if the exemption works at all.
That’s a conversion problem. A German manufacturer browsing your store sees €119 instead of €100. They might not even get to checkout because the price looks uncompetitive compared to your competitors who show B2B pricing.
Shopify’s native VAT validation only kicks in at checkout. There’s no mechanism to show different prices on product pages, collection pages, or the cart based on whether a visitor has a valid VAT number.
Shopify does offer “dynamic tax-inclusive pricing” which adjusts prices based on customer location. But that’s about geography, not B2B status. A German B2C customer and a German B2B customer see the same price. Location-based pricing doesn’t solve the B2B exemption problem.
Shopify Plus merchants with the B2B channel can set separate catalogs for wholesale customers. But that requires customers to have a B2B account, log in through a separate flow, and operate in a completely different buying experience. For merchants who serve both B2C and B2B through one storefront, that’s overkill.
The approach that works for mixed B2C/B2B stores is a storefront widget where visitors can enter their VAT number before browsing. Once validated, the store displays net prices for the remainder of their session.
Here’s how it works with the EU Tax Exemption widget:
The B2C experience stays unchanged. Consumers see VAT-inclusive prices as required by EU law. Only validated B2B buyers see net prices.
The widget is flexible. Most merchants place it in one or more of these locations:
You can position the widget exactly where you want it using CSS selectors or the theme editor. No coding required for most themes.
There are apps that add a “show prices excluding VAT” toggle button to your store. These let any visitor flip between gross and net prices. That’s a different solution for a different problem.
A toggle doesn’t validate anything. Any visitor can flip to net prices. That might work for informational purposes, but it doesn’t verify the buyer is actually an EU business, doesn’t apply the tax exemption at checkout, and doesn’t store the VAT number on the order for your accounting.
The VAT validation widget does all three: verification, exemption, and data capture. The toggle just changes what’s displayed.
There’s a technical complication with tax-included pricing in Shopify. When you mark a customer as tax-exempt and your prices include tax, Shopify should deduct the VAT. But the behavior isn’t always consistent, especially with express checkout options and certain payment methods.
For Shopify Plus merchants, cart transform functions provide a more reliable way to remove VAT at checkout. The cart transform intercepts the order before payment and applies the correct net pricing regardless of which checkout method the customer uses.
For non-Plus merchants, the standard tax exemption flow handles most cases correctly. The widget validates the number, tags the customer, and Shopify’s tax engine does the calculation.
Showing net prices to B2B buyers isn’t just about accuracy. It’s about winning the sale. Professional buyers compare prices across suppliers. If your competitor shows €100 net and you show €119 gross, you look 19% more expensive, even though the final price is the same.
B2B buyers shouldn’t have to guess whether they’ll get a tax exemption. They should see their price from the moment they land on your store. That’s what the storefront widget delivers: price transparency before checkout, backed by VIES validation.
Check the Shopify VAT app comparison to see how different solutions handle pre-checkout pricing.