I don't like to complain but I have to say that the new Multi-Currency API is really a weird API and do not seem to reflect the current needs of app developers.
Maybe I am wrong but reading some docs about the api I could not found a good solution for my needed.
Basically, one of my app saves the entire products database internally to make it faster(many apps do this). My issue is that Shopify API did not provide the endpoint to convert the prices, and it says that currency can update every 15 minutes, so basically, I will need to check every 15 minutes if currency updated and refresh all my products if yes? That's insane.
Let me know if I am missing something, I really hope I do.
Would be MUCH easier if the Product API did not save every currency in every product, but the currency endpoint returns the rate, like 1.1 or something like that, so we can do the conversion by ourselves using the base price when we need.
Summing up, I have this suggestion:
I hope you guys take in consideration my suggestion, I already have some customers asking for compatibility with Multi-Currency API.
Hey @Marcelo_O ,
I can definitely pass your feedback along, I agree entirely. I do have some comments though :
Would be MUCH easier if the Product API did not save every currency in every product
Is this just a reference to fetching prices via the product API with the multi-currency header included?
Return the currency rate multiplier in the Currency api https://help.shopify.com/en/api/reference/store-properties/currency
Agreed - this would be nice, but it's also worth considering there are rounding rules involved and potential for those rounding rules to change. There's a lot of potential for discrepancies here, and surfacing the conversion rate alone still wouldn't allow a third-party to mirror pricing in multiple currencies.
Provide the API that Shopify uses to get the rates, so we can use the same, this is also pointed in this post: https://community.shopify.com/c/Shopify-APIs-SDKs/Multi-currency-breaks-discount-code-apps/m-p/53461...
Same would apply here, as there's more involved than just grabbing an exchange rate and doing some math to convert a price.
Now that is not at all to say that I don't agree with you 100%, because I do - there's just more involved here than some simple math and it's more complex than you'd expect to provide an easy way to convert these prices. I'll absolutely pass your feedback along though because this is something I'd like to see made easier.
Alright, thanks for the answer Josh.
I do detect 2 more limitations of the new API.
The limitations are:
These are real issues, hope Shopify can consider it to improve the API, actually is not possible implement for some apps because of the limitations.
Could you share some background on needing the format of the currency before an order is placed? It would help when passing your concerns along, and it may be because it's early morning but I'm not having any use-cases come to mind at the moment. Is this for displaying something on the storefront? The pricing format would be shown in the correct format on multi-currency orders after they have been placed but you're right I'm not seeing anywhere else the format can be retrieved beforehand.
Also, have you looked into the liquid variables available for displaying presentment currencies on the cart page? If a discount was applied to a cart, that liquid should be able to show the converted amount. Using Ajax you should be able to fetch cart contents and get the cart pricing in presentment currency as well.