Financing, tax rates, and accounting
Hello everyone,
While I do not have a solution, I want to confirm with you that your findings are correct.
So when you submit a price to The Netherlands, then regardless of location, for example the US, the price must be what is submitted in Google Merchant Center. IE VAT inclusive.
The solution is to only exclude VAT, when the customer enters a delivery address or payment address outside the US. This means, you should not change the address prior to knowing where it is going.
Meaning in the checkout when the details are entered, not prior.
Hi -we seem to be having a similar issue but it is only impacting some and not all of our products. Those impacted seem to be noted with "Automatic item updates active [price] VAT"
I am confused as to how it can impact some but not all products. If anyone has any input or ideas it would be greatly appreciated. Thanks.
Google does not check every page every day.
I recommend to make sure that the price you submit, is the price a customer pays and sees regardless of location.
However, if you want to provide ex vat for non EU countries, you can exclude the VAT after the delivery address has been added, not before.
Hi and thanks for your time and reply.
We only want customers to see the VAT inclusive price. Most of our products are absolutely fine but some (around 200) adjust to the ex VAT price. We only have one price field in Shopify. We do not show ex VAT pricing anywhere else. Its very strange. Its like Google is calculating and displaying the ex VAT price itself but I don't know why or how it chooses the products.
It's very frustrating and I've been trying to sort it a couple of weeks......
Also make sure your structured data is correct. You can test the prices using: https://search.google.com/test/rich-results
Every product you list on Google, must be VAT inc. so those 200 products either don't list them in the feed, or update the pricing.
Hi, and again thanks.
I saw that tool yesterday and I can't see any issues that would cause the problem. There is only one price field we use in Shopify and its OK for the majority of our products. We do not have nay b2b or wholesale plug ons. We have chosen that vat be applied on all goods.
We are connected to Google via API and another app. We have deleted all feeds (we had 2 at one stage) and reset.
When looking at the feed in merchant centre it shows 2 imports for some products. One for local inventory (that we don't use) and one for search, and display and ads. The local inventory price is Inc VAT but the other is not. Same product, the same Sku, same feed. So Google is getting the right info but randomly deducting the VAT.
Any ideas. Thanks.
Without looking into your account it would be hard to guess.
My advice, contact the app support team as they are submitting the data.
Hello!
I am experiencing exactly the same problem. Have you discovered a solution yet?
Many many thanks for your reply!
Lydia
Hi
We bounced around between Google and the App provider and found that by disabling automatic updates in Google merchant centre the pricing seems to be ok. It's less than ideal but it has worked for us.
I hope that helps.
Hello we have the same problem, but when we deactivate atomatic product updates in merchants center, the products just get rejected...
Issue:
Starting position: (example used: KW4000 -> 69,90€ with 19% German Tax)
Your customer's local tax rate will be used for calculations. “
Now the following issue arises:
Do you have a solution for that problem? Or maybe an Idea on how to get one of my solutions working:
Thank you for the help!
Regardless of where a user is located, if a user clicks on your German link, even if they are located in a different country, must see the same exact price as you have submitted in the data feed.
IP based price modification is not allowed if you want to use Google Shopping.
If you want to show different prices you need to allow for the user to manually change the country they are located in using a drop down.
That is the first thing you need to change.
Once you have fixed that you can update the pricing structured data to be correct using: https://feedarmy.com/kb/shopify-microdata-for-google-shopping/
Hello,
The changes you suggested where already like this in our shop.
Now I have found out, that the problem lies with this part: currency=EUR in the link google uses to crawl:
?currency=EUR&utm_medium=cpc&utm_source=google&utm_campaign=Google%20Shopping (I dont know if I am allowed to post our site 🙂
When I do Rich Test from Google with the normal link on my page, the microdata shows the correct price (gross). But as soon as the part currency=EUR is added, the micro data/rich test shows only net prices.
Does anyone maybe know where this could result from, as we cannot make google to remove that part. Our default currency in the shop is EUR, might be something with the schema?
Thank you for all the help!
I recommend you disable the option where users outside Europe are VAT exempt.
You are not allowed to change the price based on user IP, if you want to use Google Shopping.
However, if you want to ignore the above, simply write a feed rule by stripping out the currency=EUR part of the URL.
https://support.google.com/merchants/answer/7450276?hl=en
I’ve run into this problem recently as well.
We have a UK based store that sells predominantly domestically, but is configured to sell internationally. Shopify is set up to charge tax based on the customer location (shipping address). This works in so far as UK customers get charged the price we enter in to the catalogue (VAT inclusive price) and customers outside of the UK get charged the net price with no tax component.
Where it goes wrong, as you’ve noticed, is with Google Merchant Centre.
I noticed on our website that if you visit it cold you see the VAT inclusive prices, but if you add something to your cart and go through checkout far enough to enter your delivery address, and choose e.g. a US address, then not only does Shopify recalculate the cart to remove taxes - as one might expect, and hope - but from that point onwards the customer sees net prices throughout the website, including on collection pages and product pages.
I originally thought this might be how Google is seeing these prices too, but I think it must be IP based instead since it seems unlikely the Googlebot is adding products to cart etc.
The problem is - I don’t know how to fix it. It seems the location specific pricing (how is this done? IP geolocation?) functionality is opaque and can’t be disabled. What if a US customer placed an order to ship to the UK? VAT would have to be added, etc.
The only way I’ve found to fix this is to disable the option to “Include or exclude taxes based on the customer’s location”. But what disabling this means is that the price (incl VAT) is the price everyone pays, regardless of location, with the only difference being that this number doesn’t comprise a VAT component outside of the UK. This means we’d be overcharging our international customers by 20%, and it would be obvious to them that we’re ripping them off, all in service of trying to fix a Google price mismatch.
We’re not willing to do this at this point, but we’re running out of options. As things stand Google has done automatic price updates for almost all of our products, which has messed up our Google listings (they show ex VAT prices), and since our customer base is 90%+ UK, this won’t do either.
Why is Shopify trying to guess what the price will be for a customer before they have even added anything to their cart and said where they want to ship it? Why is this price modification functionality opaque and unconfigurable?
Very frustrating…
Hi,
we solved the issue. I cannot fully reproduce how, but will tell you all I got:
- the issue starts with the merchant center crawler who uses this link ending: /currency=EUR or whatever currency.
- this selected some other country, which we do not charge tax for and therfore it showed google net prices.
- we have the geolocation app, install it and activate the country selector. Then go to your site and look at the countries you can select. I think with th currency=eur ening, it selects the first eur country.
- I cannot recall fully, where you can edit this list, but its in shopify settings.
Solution:
we put a country into the list, we dont even ship to (Andorra) and added a tax override of 19% (german VAT). Google now crawls andorra prices (net, but + our tax) so no price mismatch.
You should try out some countries, but if you cannot add any other british pund countries, just remove all but UK.
cheers
@KooKooOskar wrote:Hi,
we solved the issue. I cannot fully reproduce how, but will tell you all I got:
- the issue starts with the merchant center crawler who uses this link ending: /currency=EUR or whatever currency.
- this selected some other country, which we do not charge tax for and therfore it showed google net prices.
- we have the geolocation app, install it and activate the country selector. Then go to your site and look at the countries you can select. I think with th currency=eur ening, it selects the first eur country.
- I cannot recall fully, where you can edit this list, but its in shopify settings.
Solution:
we put a country into the list, we dont even ship to (Andorra) and added a tax override of 19% (german VAT). Google now crawls andorra prices (net, but + our tax) so no price mismatch.
You should try out some countries, but if you cannot add any other british pund countries, just remove all but UK.
cheers
Unfortunately this doesn't work for us. I don't know your GMC setup, but Google is crawling our URLs with "currency=GBP" in, which ought to return VAT inclusive prices, but doesn't.
We aren't using any kind of geolocation app for pricing, so there shouldn't be anything causing issues one way or the other with this.
Thanks for your help, though 🙂
@DazC As you correctly mention, the price ex vat should only show, when the customer has added the shipping / payment details, not prior to this.
It is also correct that the prices you submit for the UK, must be the same regardless of where the user is located. As this is a requirement for Google Shopping.
So for customers that are in a different country, you need to setup a new store or use multicurrency setup.
If you are only targeting the UK, then the prices must be inc vat.
@EmmanuelFlossie wrote:@DazC As you correctly mention, the price ex vat should only show, when the customer has added the shipping / payment details, not prior to this.
It is also correct that the prices you submit for the UK, must be the same regardless of where the user is located. As this is a requirement for Google Shopping.
So for customers that are in a different country, you need to setup a new store or use multicurrency setup.
If you are only targeting the UK, then the prices must be inc vat.
Thanks.
The problem is that Shopify is getting in the way of us submitting consistent prices. I want to submit one price for everyone, but Shopify won't provide me with the explicit variant price as it has been entered into the backend of the store, it is trying to be clever and modifying this price based on where it thinks the customer wants to ship it to.
I also do not want to have to punitively charge international customers 20% more just to placate Google. I also don't want to have to set up international store(s) just to solve this problem when our UK store is configured to ship interntionally perfectly well. It duplicates the maintenance effort and costs for no good reason.
I would be satisfied if I could simply get something like variant.original_price or something, which returned the price entered into the Shopify backend explicitly. This would solve the problem.
I don't really understand why it's doing this. Geolocation is not 100% reliable, and there are instances where a customer might want to ship something to an address in the UK whilst not being in the UK themselves (or not appearing to be). They could be on holiday, they could be buying a gift and drop shipping it to someone, etc.
I have found a sortof solution, I think, but it is unreliable. There is a setting - cart.taxes_included - which you can query to determine whether the visitor (Google in this case) is seeing VAT inclusive prices in their cart. I'm not sure how reliable this is, since the Googlebot hasn't added anything to the cart when they land on the website. It depends on how and when the cart object is instantiated, I guess.
At the moment I have some code that looks like this:
{%- assign variant_real_price = variant.price -%}
{%- if cart.taxes_included == false and variant.taxable -%}
{%- assign variant_real_price = variant.price | times: 1.2 | floor -%}
{%- endif -%}
This appears to work for the most part, but it often returns inaccurate numbers. For example, if we have a product that is 31.95 inc VAT, then the ex VAT price is 26.625. But the only price I can get out of Shopify (variant.price) for an international customer is a rounded number, 26.63. If I "times: 1.2" on this number I get 31.956, which rounded = 31.96, which is wrong.
If I use "floor" instead, as I have above, then a product that is 24.95 inc VAT (20.791666666666667 ex VAT) will be rounded to 20.79 by Shopify, and when I times that by 1.2 I get 24.948 - and if I use floor on that I get 24.94 - which is wrong.
Here is my final code to fix this problem:
assign variant_real_price = variant.price
if cart.taxes_included == false and variant.taxable
assign variant_price_t = variant.price | times: 1.2 | round: 1
assign variant_split_price = variant_price_t | split: "."
if variant_split_price.size == 2
if variant_split_price[1] >= 8
assign variant_real_price = variant_price_t | round
else
assign variant_real_price = variant_price_t | floor
endif
endif
endif
This code checks to see if the current price being shown to the visitor (i.e. Googlebot) includes taxes or not, by checking cart.taxes_included. if this is false, and the variant is taxable (variant.taxable = true), we know we need to modify the price.
From there, we add the VAT by multiplying the price by 1.2, and rounding it to one decimal place. After that we split the decimal part off and check to see whether or not it is greater than .8 or not. If it is, we round the number up (round), otherwise it is rounded down (floor).
Examples:
This has worked for all of the products I've tried so far, although most if not all of our prices end in either .x0 or .x5. The VAT rate is hard-coded for any taxable product as 20% (1.2) as well.
I just thought I'd update this answer with a final resolution.
It turns out Shopify can - on request - disable the automatic price adjustments based on geolocation feature on a per-store basis. It is not a setting store owners can see or manage, only Shopify can turn it off. It appears to default to "on", since I had to explicitly ask for it to be disabled on all of the stores I run.
Once turned off - prices are shown the same for everyone that visits the website until they confirm where they are shipping the products, which is the logical configuration since it is shipping destination that dictates whether VAT is added or not (at least in the UK, shipping internationally).
Once Shopify turned off this setting it obviated my fabricated Google pricing code shown above, so please disregard it if you're trying to achieve the same goal as I was. Instead, just contact Shopify and ask for this feature to be switched off.
You can disable that feature by going to Shopify > Settings > Markets > In the preferences section disable Include or exclude tax based on your customer’s country
No, that setting determines whether customers get charged tax or not based on their shipping country.
As I explained earlier in the thread, with the hidden geolocation setting switched on - Shopify would show prices with VAT removed to customers it thought wouldn’t pay it, *before* they had entered their shipping address. In other words - a customer based in the USA landing on my UK website would see prices with VAT removed on the PDP and collection pages (everywhere a price is shown), before they’ve even said they want to ship their order to the USA.
This hidden setting controls the presentation of prices, not the actual price quoted once the customer has specified a shipping address in the cart (which is controlled by the setting you mentioned).
In essence, what I wanted to achieve was to stop Shopify deciding itself what prices to show customers, instead I wanted customers (and Google) worldwide to see the same prices on the website until they had provided a shipping address, at which point VAT would be removed. This ensures a consistent experience, and fixes my issue with Google Merchant Centre complaining about the displayed website prices being different to the feed prices, which was my problem all along.
I have an international client, with your exact same issue. And I resolved the pricing issue as per the previous reply.
By unchecking this option, all prices are shown VAT inclusive as they should be, regardless of where the user is located.
I have implemented this fix a month ago, and everything is working as expected.
If Shopify provided another solution, that is great.
Yes, but unless Shopify have changed things in the last month it means that your client is charging the VAT inclusive price to everyone, including customers where VAT wouldn’t be charged, because that’s what that setting controls. In essence - international customers would be charged 20% extra.
For example - with that setting unchecked, with a client based in the UK selling internationally:
- Product A is £30 in the backend, with “Charge tax on this item” switched on
- Customer A in UK buys it, they pay £30 with £5 of the price (20%) being VAT - OK.
- Customer B outside UK buys it, they pay £30 with £0 of the price being VAT - NOT OK.
Customer B has been overcharged 20% relative to Customer A. Customer B should only have paid £25.
So, you’re both right and wrong in my opinion. Unchecking that option does result in the same price being shown to everyone, but it also results in the same price being charged to everyone, which is not what we want.
Yes that is correct, now I understand that you don't want to do this.
In that case unchecking just that one option is indeed not enough.
Just to confirm that you asked for (disable the automatic price adjustments based on geolocation feature on a per-store basis)
And they disabled it?
The reason I ask to confirm is that I have found Shopify support to sometimes not wanting to go the extra mile (or don't understand the issue and thus assume can not help), or sometimes don't want to help. While I know they can do it.
It's a hit and miss with support.
Thanks for this communication, this will help a lot of other people.
Yes, that is correct.
I emailed them explaining the problem above, they confirmed that they have a internal setting that tries to “best guess” what price the customer will pay, based on geolocation. They also confirmed that this setting is hidden from storeowners and can only be changed by them (for now).
I requested that they disable this setting on our stores. I had to request it for each one separately.
They confirmed the setting had been switched off. At that point the behaviour of our stores was as desired - i.e. the price shown on the website (and to Google scrapers) is the price entered in the backend, and customers are charged the correct amount based on location.
It isn’t until the customer adds the product(s) to the cart and specifies where it is being shipped to (which determines whether VAT is charged) that the price in the cart changes.
I have that setting you mentioned switched on (because we do want to include or exclude taxes based on customer country).
To be clear - with this hidden setting enabled (which is default I think, as I had to request it be turned off for every store) and the setting you mentioned checked - Shopify will change the displayed price based on geolocation, messing up Google etc.
With your setting switched off, customers who shouldn’t be charged VAT will pay 20% (or whatever the VAT rate is) extra for products, which leads to justifiable complaints.
Hope I’ve explained it well enough. 🙂
Thank you very much, your reply is greatly appreciated. 👍
Hi @DazC
I have the exact problem you outline above and am just wondering if the "hidden" feature solution is still working/relevant? I know that some new settings have been made available in Tax etc but I cannot work out which will not break the Google Feed/Price Mismatch situation.
I am about to embark on the hit and miss process of asking Shopify to do it at their end. I am sure it used to work (VAT removed if location was not UK etc). For some reason it stopped at some point.
Thanks,
C.
I can confirm that Shopify will not turn this setting off if you ask them. See attached screenshot. They weren't very helpful so if anyone has any other solutions it would be appreciated?
Apologies for digging up this two year old topic!
I have had equally unhelpful responses though I have pushed them pretty hard on this and raised at least 2 or 3 tickets about it.
One thing that was left out of all the info above was that the accounts where they did switch it of may well have been Shopify Plus accounts which may also make a huge difference.
Anyway, I think the only other option is the code hack that Daz mentions. We might implement that at some point but not right now as we do not want to break our Google Merchant Center account again which may happen if we are not careful.
@Pandacuadscom wrote:Using Shopify's Google Shopping app, you can automatically sync the tax rates on products and then calculate the total price
Sorry but this has got nothing to do with the Google Shopping app (whether it is present or not). It is relating to Google crawling the site and "seeing" different prices shown to customers than are present in the feed.
@DazC the person @Pandacuadscom has been leaving replies everywhere where I have replied, if you look at his profile, there are no other replies (as of writing now, he most likely will start and change his tactic once he reads this) with less than relevant and sometimes incorrect replies. Not sure what the objective is, but the person is certainly not helping anyone. Half a year ago this happened as well, somebody only replied where I am replying, and even copied my answers and posted them as its own word for word.
Starting a B2B store is a big undertaking that requires careful planning and execution. W...
By JasonH Sep 23, 2024By investing 30 minutes of your time, you can unlock the potential for increased sales,...
By Jacqui Sep 11, 2024We appreciate the diverse ways you participate in and engage with the Shopify Communi...
By JasonH Sep 9, 2024