How can I display prices plus VAT on the front end without altering current setup?

Topic summary

A merchant needs to display VAT-inclusive prices on their storefront while keeping Shopify’s backend prices VAT-exclusive to maintain compatibility with their integrated accounting system. Enabling Shopify’s native VAT settings would disrupt the accounting integration.

Technical Solution Proposed:

  • Customize Liquid code in theme templates (specifically price snippets) to calculate and display VAT-inclusive prices presentationally
  • For Dawn 2.0: modify the price snippet to multiply base price by VAT rate (e.g., price * 1.2 for 20% VAT)
  • Important caveat: This creates a display-only price that doesn’t affect actual checkout amounts

Multi-Market Considerations:

  • For different VAT rates by country/market, use conditional logic checking localization.country.iso_code
  • Example provided for Netherlands (21% VAT) in price-as-money.liquid
  • Shopify automatically handles EU VAT rates via One-Stop-Shop (OSS) rules for non-primary markets

Implementation Challenges:

  • Solution complexity varies significantly by theme structure
  • May require editing multiple files if price logic is duplicated throughout theme
  • One user reported issues with Prestige 2.0 theme causing price duplication

Alternative: A new app called “Taxify” was mentioned as a turnkey solution for adding VAT display functionality to any theme.

Summarized with AI on October 26. AI used: claude-sonnet-4-5-20250929.

I have a client who has integrated their store with an accounts system which requires all pricing in shopify to not include VAT so that it can decipher the product price, and add the vat and shipping separately (this is working perfectly fine).

However, the front end shows products as ex-vat too, but we need them to be show as plus vat, without affecting how the current shopify setup is working. If we tag the VAT calculation box in the shopify admin, it will throw off the information sent to the accounts software. So that is not an option.

I’ve seen some liquid code floating around that allows you to change the price within the theme templates, but this code doesn’t seem to work with the Dawn 2.0 theme.

If someone can shed some light on this, it would be great.

:bomb: To clarify what your describing is a presentational/virtual price ONLY.

This will not in anyway effect what customers pay for the item.

Which means if your supposed to be collecting VAT from customers this approach is fundamentally broken.

To modify the presentment of prices is an advanced theme customization that can wildly vary by theme require possibly modifying anywhere from a couple of files to almost every file depending how the theme was made. i.e. is pricing in singular snippet & javascript logic , or is price logic duped throughout the theme.

It was probably for a vintage theme, when you find “code” online you still need to adapt it per use case. Like dawn has a price snippet consolidating logic but there’s still different javascript files.

Adding/changing/formatting price display comes up enough that there are plenty of existing forum topics on the subject to research if DIY’ing it to figure out where to edit things. Things like “dawn show percent difference in price” , “dawn add parenthesis”, “dawn show taxes” “dawn show vat” etc.

If you need this customization contact me directly for services.
Please provide context, examples: store url, theme name, post url(s) , or any further detail.
Contact Info in signature.

Tangential learning also see some of the currency dev docs

https://shopify.dev/docs/themes/markets/multiple-currencies-languages

https://shopify.dev/docs/themes/pricing-payments/currency-formatting

1 Like

If you need to display prices as “plus VAT” on the front end of your Shopify store without affecting the functionality of your integrated accounts system, you can achieve this by customizing the liquid code in your Dawn 2.0 theme. Here’s an approach you can follow:

  1. Identify the relevant liquid template: Determine which liquid template(s) in your Dawn 2.0 theme control the display of product prices on the front end. This could be the product grid template, product detail template, or any other relevant template depending on your theme’s structure.

  2. Modify the liquid code: Open the identified liquid template(s) for editing and locate the section responsible for displaying the product price. Look for code that references the {{ product.price }} or similar variables. This is where you’ll make the necessary modifications.

  3. Calculate the VAT-inclusive price: Within the liquid code, you’ll need to calculate the VAT-inclusive price by adding the VAT amount to the base price. You can do this using basic arithmetic operations.

    For example, assuming your VAT rate is 20%, you can add the following code to display the price as “plus VAT”:

{% assign vatRate = 0.2 %}
{% assign basePrice = product.price %}
{% assign vatAmount = basePrice * vatRate %}
{% assign totalPrice = basePrice + vatAmount %}

{{ totalPrice | money }}
  1. The above code calculates the VAT amount by multiplying the base price (product.price) by the VAT rate (vatRate). Then, it adds the VAT amount to the base price to get the total price (totalPrice). Finally, it uses the money filter to format the total price with the appropriate currency symbol.

    Adjust the code based on your specific VAT rate and desired formatting.

  2. Test and repeat: Save the changes to the liquid template(s) and preview your store to see the updated prices. Make sure to test various scenarios, such as different products and quantities, to ensure the prices are displayed correctly as “plus VAT.”

1 Like

Thank you so much for this answer.

One question I do have: what if I want to display different tax-%-amounts depending on which country the visitor is visiting the website from?

So that the visitor from Austria (who lands on our Austrian subfolder domain we have set in shopify market) sees 21%
the visitor from Germany (who lands on our German subfolder domain we have set in shopify market) sees 19%
and the visitor from Switzerland (who lands on our Swiss subfolder domain we have set in shopify market) 0% for example.

Do I manually have to put every country + the according %-amount in the code or is possible that some code snippet pulls the correct tax-% from Shopify automatically?

Thank you so much in advance!

Best regards,

Peter

Hi there,

We have the same issue; however, our the is Prestige 2.0. Previously we used an app called Exemptify which added VAT on to the price displayed on the website when needed however with the new version of Prestige (we updated just before the weekend) it is duplicating the price when it calculates it so we end up with this this (image attached).

Is there a similar fix for the prestige theme?

Thanks,

Sholto

Hi Peter,

I see it is an older article, but for the other people who also face this issue.

We only added NL for Netherlands because Shopify automatically includes VAT rates for other EU countries following the One-stop-shop (OSS) rules. For some reason this doesn’t apply for the primary market.

Edit price-as-money.liquid file and include.

if localization.country.iso_code == 'NL'
 assign price = price | times: 1.21
endif

The total file looks like this:

{%- comment -%}
Parameters:
- price {Price} - Price
- show_money_with_currency {Boolean} - Force the price to show/not show with currency. If not provided, defaults to settings.show_currency_code

Usage:
{%- render 'price-with-supercents', price: price -%}
{%- endcomment -%}
{%- liquid
if show_money_with_currency == null
assign show_money_with_currency = settings.show_currency_code
endif

if localization.country.iso_code == 'NL'
assign price = price | times: 1.21
endif

if show_money_with_currency
assign money_price = price | money_with_currency
else
assign money_price = price | money
endif

if settings.superscript_decimals
unless shop.money_format contains 'money' or shop.money_format contains '.'
assign separator = '.'
if shop.money_format contains '{{amount_with_comma_separator}}' or shop.money_format contains '{{ amount_with_comma_separator }}'
assign separator = ','
endif

assign money_price = money_price | replace: separator, '<sup>'
if show_money_with_currency
assign money_price = money_price | replace: ' ', '</sup> '
else
assign money_price = money_price | concat: '</sup>'
endif
endunless
endif

echo money_price
%}

I hope this helps

HI Kaysingh,

I do not know what accounting solution is integrated into your client’s shop, but another way of trying to achieve the required results is to rely on Shopify native tax settings and use bridging solution for the accounting system with possibility to map accounting data.

Hello, can you install this code on my website? I will pay for the installation.

Being new to Shopify I am surprised that such a core feature as displaying the correct VAT prices in the frontend is handled so poorly by Shopify and theme providers. Contacting their support they imo do not understand the underlying business logic of VAT and the core features that Shopify has integrated. Anyway.:slight_smile: Your answer was very helpful and well structured. Are you around for freelance work @NomtechSolution ?

Hello,

Yes, I am open to Freelance work.

Best regards

If anyone is still looking for this feature, we’ve just launched a new app to bring VAT prices to any theme.

1 Like