I'm developing a headless custom storefront for a Shopify Plus customer and I'm facing some issues related to international pricing.
When using a template you can have an app (like Geolocation) to retrieve prices based on the customer location. I'd want to replicate it using the Storefront API. I'm using the presentmentPrices property in the ProductVariant object that returns unique currency-price pairs. I'm setting prices for each product following the article Set Product Prices for a Country or Region. I know I can select presentmentPrices but that's not enough.
The problem is, I want to show prices based on the location of the customer. If I'm adjusting prices to different EU countries, all of them using the currency EUR, ¿how could I retrieve the specific price for a product and a country? it would be great to have a header (like the Accept-Language header for languages) to send the customer's country.
Additionally, for these currency-prices pairs returned in the presentmentPrices, which criteria is applied to select the price to return when there are multiple regions that share a currency?
I've performed some tests using different countries to run the requests (France, Italy, Spain, Ireland), having custom adjusted prices for each country, the API it's not detecting the origin of the request (IP location, I mean) and it always returns the same EUR price, no matter the origin country.
I'm not seeing a way to achieve this with the Storefront API. How do you suggest to solve this issue?
Hello @davidgg ,
I have the same problem here.
I think that at the moment is not possible to get price based on the country_code - currency_code selection.
I also have the problem that when I create checkout with presentmentCurrencyCode it will change the currency but it just convert the pricing.
For example: Product A costs 100 € in EU and 300$ in US.
If I create a new checkout it will convert the 100 € in dollars and not change to 300$.
Have you managed this issue?
It seems it's not supported
About your problem, Shopify is not returning the prices based on location but currency. As I said in my post, this is a problem for some regions like the EU. For the checkout happens the same: the customer will see the right price only in the 'Shipping' step, when the user has filled the Country. Before that step the price is not reliable.
I've performed several test and I didn't find any solution. The conversion price is applied and not the localized price (until the shipping step)