Shopify show prices including and excluding VAT: Tax display on Starter, product and collection. Labels only — checkout does not strip VAT. Embed on the live theme.
2026-10-28

Show Shopify prices including and excluding VAT (labels only)

The B2B net price is €8.20. The product page prints the number with no suffix. Buyers ask whether 21% is in. Someone types “ex VAT” into the title. A week later the description still says “includes tax” from the retail theme. Checkout does something else again.

Shopify show prices including and excluding VAT is the Tax display module in OO - EU B2B & Wholesale. Docs hub Tax and currency: *Show prices including and excluding VAT on product and collection pages.* Listing: *prices incl./excl. VAT*. It is a label. It does not remove VAT in checkout. Exemption is Tax Exempt — a different card.

Live listing, USD: Free (one custom pricing rule, one registration form), Starter $22/month or $220/year (Tax display, Tax Exempt, Login to see prices, unlimited custom + volume pricing), Growth $37/month or $370/year (bulk forms, quotes, order limits, wholesale cart). 14-day trial on Starter/Growth. Built for Shopify, 5.0 from 34 reviews. Tax display is not on Free.

Related live post: bulk form visibility (Growth). This article is Starter: how the number is captioned, not how the till calculates.

A caption is not a tax-exempt checkout

What is included: Tax & prices holds Tax Exempt, Tax display, and Login to see prices. Starter lifts the Free cap and turns those tax modules on.

Tax Exempt introduction: Tax display only changes incl./excl. labels and does not exempt VAT at checkout. Shopify markets and tax settings decide whether VAT disappears after a valid VIES check. The usual ticket: “incl/excl is on, why is he still paying 21%?”

Two different settings share the words “tax display”:

| Layer | Where | Job | |-------|--------|-----| | App module Tax display | B2B & Wholesale → Tax & prices | Incl., excl., or both on product and collection | | Market Tax display | Shopify → Markets → EU → Taxes and duties | Show as included vs Dynamic pricing — checkout maths |

You need the app layer so buyers can read the amount. You need Markets so checkout matches your incl/excl model. Background: B2B tax and currency.

Theme: Tax display uses the shared app embed (Custom Pricing, Volume pricing, Login to see prices, Order limits). Without the embed on the published theme, net prices and labels stay in admin. Finish setup opens the editor. Changing theme keeps app config; you still re-enable the embed on the new live theme.

Patches that teach shoppers to ignore the number

Stuffing “ex VAT” in the title pollutes search and lies to retail visitors.

A metafield note on one product template never reaches the collection grid.

Turning on Tax Exempt only: VIES goes green, the product price is still a bare number.

Mixing Draft Order Logic with Standard checkout while the app shows “both”: that is checkout config. Docs: VAT-exclusive prices → Standard Checkout Logic and Market Dynamic pricing. VAT-inclusive → Draft Order Logic and Market Show as included. App Tax display does not recalculate the cart.

What the module actually does

On Starter (and Growth, which includes Starter):

  • Label including, excluding, or both next to the price.

  • Product and collection pages (hub copy).

  • Presentation only. No VIES. No 0% Shopify tax rule.

  • Shared embed — not a dedicated theme block like registration or bulk forms.

Login to see prices hides amounts until sign-in. Tax display does not hide; it captions a visible amount. Custom Pricing or Volume pricing supplies the figure. With no list you caption retail — usually wrong.

Bulk forms, RFQ, extra cart fields: Growth. You do not need them to print incl/excl.

Walkthrough: steel by the kilo, both figures

Store “Millstock”. B2B-only, prices stored excluding VAT, company price lists. Buyers want net and gross 21% on the collection, without checkout switching to inclusive maths.

  1. Install OO - EU B2B & Wholesale. Starter ($22), not Free.

  2. Tax & prices → Tax display on. Finish setup: embed on the live theme, save.

  3. Show both on product and collection. Do not maintain a second “gross” price list by hand.

  4. Markets → EU → Taxes and duties → Dynamic pricing (exclusive selling). Tax Exempt: Draft Order Logic off.

  5. Private window: logged-out vs logged-in B2B account. Checkout still follows Markets until Tax Exempt removes VAT for a valid EU VAT number.

Next theme publish: embed again. The “both” choice stays in the app.

If Login to see prices is also on, test four states: logged-out retail, logged-out “hidden”, logged-in B2B with a list, logged-in B2B without a list. Tax display only captions what is visible. A hidden price with a perfect incl/excl label still looks like a broken page. Fix visibility first, labels second.

Collection cards inherit the same embed. If the collection template uses a custom price snippet that bypasses the app, you will see a naked number on the grid and a labelled number on the product. That is the theme, not Tax display failing. Finish setup on the live theme, then view a collection that actually uses the default product card.

Do not invent a “VAT amount” metafield to fake the second figure. “Both” is the module’s job. A metafield will drift the moment the list price changes.

Get it live

  1. Open the listing. Starter for labels + VIES. Growth only if you need bulk/quotes.

  2. Configure Custom Pricing or Volume pricing first.

  3. Tax display on, embed on the published theme, check collection and product.

  4. Align Market tax display with checkout logic — not vibes.

  5. Tax Exempt after that if exemption is the goal. Labels are not VIES.

The word “VAT” on the product page is copy. The checkout line is Shopify. This module does not secretly fuse them.

Wrap-up

Shopify show prices including and excluding VAT is Tax display: Starter, product + collection, incl / excl / both, shared embed. Not exemption. Not Free. Checkout stays Markets plus optional Tax Exempt.

Turn the caption on in OO - EU B2B & Wholesale. Buyers stop guessing whether €8.20 is gross or net.

online origins logo full

The Shopify Select partner for ambitious e-commerce businesses that want to grow!

linkedin online origins iconinstagram online origins icon

Reviews

5/5

Check on Google

Mail: info@onlineorigins.nl

Tel: 073 234 0612

KVK: 89825624

BTW: NL865123639B01

Bruistensingel 500,
5232 AH 's-Hertogenbosch
Cookies

© 2026 Online Origins