nopCommerce icon indicating copy to clipboard operation
nopCommerce copied to clipboard

Product prices per currency, store, country (market)

Open mariannk opened this issue 9 years ago • 24 comments

At the moment prices in currencies that are different to the base currency are displayed as a direct conversion of the base price using the downloaded exchange rates.

  • Some stores don't really work in that way as they need to be able to place themselves correctly in a foreign currency market depending on the country. For example, for customers in Chile the price should be less than the price for customers in the UK, where standard of living is higher. This of course will need to have proper controls on the checkout to only allow purchases for customers in certain countries with certain currencies.
  • Furthermore, sometimes merchants want to specify prices in "more selling" way. For emample, now the base $100 price could be converted to 90.57€. So merchant doesn't have an opportunity to specify a custom price in Euro. For example, a merchant could want to have 89.99€ price to be displayed (but currently it's not possible)

UI/UX:

  • There will be a radiobutton on the product details page (admin area) with two options (values): "Auto convert to other currencies during order processing" and "Set price manually per currency".
  • When the second option is selected, then a store owner will be able to enter prices for all available currencies
  • We also should support it for tier prices, attribute (product/checkout) price adjustments, special prices, discounts that could be quite quite complex. Perhaps, we could skip it in the first edition of this task and postpone for further Enterprie versions

Logic

  • We have to change price calculation logic all over the entire solution
  • The same should be done for all plugins. For example, each payment plugin also should be rewritten to support distinct currencies. It causes more issue when we have some product prices specified (passed to a payment gateway) in one currency, and other product prices are in other currency (no custom price specified for certain currency abd default one is used).

Limitations, issues

  • It'll require a way too much changes all over the entire solution making most of third-party plugins stop working
  • How are we going to generate reports? For example, bestsellers.
  • We already store prices/totals/etc for already placed orders only in the primary store currency. This way we'll have to store these values in both used currencies (now have "ExchangeRate" property) - to display proper value to customers on order details pages. It also can cause some issues when calculating discounts/totals/etc.

Considering these issues and huge number of changes we should find some other way to go. Here are some ideas and useful links for investigation:

  • Specify base currency per store (not per currency) and limit each store to some one currency. For example, store1 has USD only, store2 has EUR only. And a store owner can specify prices per store
  • Workaround with tier prices per store - perhaps, we can even extend this functionality to support prices per currency
  • Good examples of third-party implementations are available internally (check with Andrei)

mariannk avatar Jan 13 '16 10:01 mariannk

@AndreiMaz Hi Andrei Can you guide me to Implement this feature? 2 month later i implement this feature for nop 3.90, because in my company, we have some custom currency and we need this feature, but, some other feature like additional prices and discounts are processed by main price. I added currency to "Tier prices" and when admin entered price row, he can select currency .... but i use static price code for my purpose, and if you want and help me, i want to implement this feature and commit codes for nopcommerce.

sorry for my bad English and thank you.

mohsen2hasani avatar Nov 11 '17 06:11 mohsen2hasani

When is this going to be implemented? We really need this feature in the near future. I am also available to help develop it if needed.

marius-stanescu avatar Nov 27 '17 21:11 marius-stanescu

its needed to be there

pixmame avatar Dec 13 '17 10:12 pixmame

@AndreiMaz Hi Andrei This issue is oldest on GitHub and most important, can we add to millstone 4.20?

tigran-avdalyan avatar Aug 18 '18 13:08 tigran-avdalyan

Any input about when and if this issue will be implemented? @AndreiMaz

johansakbas avatar Sep 18 '18 14:09 johansakbas

Hi guys, is this something that is in progress?

adrianiftode avatar Jan 19 '19 08:01 adrianiftode

Hey guys, This is a huge issue for a lot of us and as noted by others this is a really old issue. Please take a serious look at this issue and address for 4.2. I cannot see how you can just continue to ignore after so many years - if I am not mistaken this issue was opened prior to GitHub in 2011.

toddca avatar Feb 19 '19 22:02 toddca

Hey guys, This is a huge issue for a lot of us and as noted by others this is a really old issue. Please take a serious look at this issue and address for 4.2. I cannot see how you can just continue to ignore after so many years - if I am not mistaken this issue was opened prior to GitHub in 2011.

I agree with toddca. I think this is a big reason why nopCommerce isn't a more popular system overall and especially in the B2B world. nopCommerce has potential to be a first-choice, go-to platform for larger corporations that work in .NET but basic functions like this missing makes it harder IMHO.

johansakbas avatar Feb 20 '19 09:02 johansakbas

I absolutely agree, this is necessary and has been promised for quite some time. Is this going to happen?

jgarniss avatar Mar 18 '19 12:03 jgarniss

Hey guys - if you are not going to fix/address this issue I would rather someone just state as much. I don't see any attempt to try to address this for 4.2 or even to add hooks which would allow for a price lookup. Please let me know what you guys feel is the primary challenge to getting this added.

Currently my only thought on how to address this issue, and its a hack at best, is to use a custom price rounder that instead of rounding the price, it would fetch the price, given the product and currency from some lookup table and return this value as if it was "rounded". If anyone has any other ideas please let me know - we may be on our own here.

toddca avatar May 15 '19 19:05 toddca

Are you going to do this change or not? Do I need to go to a new product? There has been no decision announced here one way or another. This is critical to some people.

jgarniss avatar Jul 19 '19 10:07 jgarniss

@jgarniss it’s been over 3 years and the core team has not even taken the time to comment or reply to this thread. But they had plenty of time to totally ruin the admin UI in 4.2. The silence speaks volumes.

toddca avatar Jul 19 '19 11:07 toddca

@AndreiMaz stop teasing with remove of on hold label.

brakim avatar Feb 05 '21 14:02 brakim

How sure is this to be done in 4.7? Looks very promising if this is added. As mentioned before this is a great deal breaker for many B2B companies to use the platform.

johansakbas avatar Sep 05 '22 13:09 johansakbas

Hope it will be done in 4.7

orkunsenturk avatar Jan 12 '23 15:01 orkunsenturk

If you want to be a serious e-commerce framework, you need to stop bouncing this to the next version and actually do it

tonywiredin avatar Jan 31 '23 11:01 tonywiredin

Is this a feature that will ever be supported? A bump to the next revision since 2016 has given us hope but that is fading. It would be great to know if there is any real intention to offer this feature. If not please let us know.

We have clients in multiple countries and every product has their own price for each country. Product prices are based on many factors and we need a way to support client requirements for pricing products.

brandon71 avatar May 01 '23 19:05 brandon71

I second this - price per currency is an essential requirement of a multi-currency-enabled framework. Relying on an exchange rate mechanism is not good enough.

Come on, nop folks, we need new features - simply changing the version of .NET is not enough advancement for a release.

On Mon, 1 May 2023 at 20:20, brandon71 @.***> wrote:

Is this a feature that will ever be supported? A bump to the next revision since 2016 has given us hope but that is fading. It would be great to know if there is any real intention to offer this feature. If not please let us know.

We have clients in multiple countries and every product has their own price for each country. Product prices are based on many factors and we need a way to support client requirements for pricing products.

— Reply to this email directly, view it on GitHub https://github.com/nopSolutions/nopCommerce/issues/1#issuecomment-1530103361, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACBA5K3QZ5ZLRQZIDME3FLTXEAEITANCNFSM4BYPP4HA . You are receiving this because you commented.Message ID: @.***>

tonywiredin avatar May 02 '23 08:05 tonywiredin

@AndreiMaz ohh new title? Now we´re getting somewhere :)

brakim avatar Oct 25 '23 11:10 brakim

Think its going to be added to next version ?

devranerogul avatar Nov 20 '23 10:11 devranerogul

Think its going to be added to next version ?

Nope, its been 7 years, apparently other useless features are more important than this.

xmenxwk avatar Dec 02 '23 03:12 xmenxwk

I think we all can see the benefits of such a feature set. However, assuming you're all developers, you have to consider that implementation would require a massive rewrite and as developers, you know that minor version updates generally do not include such massive changes. Changes this big will likely introduce an entire new set of potential bugs, a fair number of breaking changes and changes to how an existing store is currently managed. All things any experienced developer would avoid in a minor update. Assuming these things to be true, I believe it would be most adventegeous to implement this at a major version update (5.x), rather than a minor (4.x) update, so that third party developers can prepare plugin upgrades, store owners have the time to be made aware of interface/management changes, and the code can be thoroughly tested. Although this issue has been open 7 years, there hasn't been much more than complaining in this thread. Perhaps those desiring the feature and the core maintainers should collaborate on defining a list of milestones with the goal of finally resolving this request and/or start a 5.x alpha branch to encourage community collaboration on bringing this to life.

danFbach avatar Dec 02 '23 04:12 danFbach

I have been able to extend the code to support multi currency transactions. Products can have prices in different currencies and and can be set per country. Products/Categories can be made available to specific countries or be restricted. Its a little bit hack but the design of the system does not allow the PrimaryStoreCurrency to be set per store or per country. So I did this by dynamically changing according to customer's country.

I am planning to create a plugin for these features but it will take some time.

streamzyuk avatar Dec 23 '23 21:12 streamzyuk

I have been able to extend the code to support multi currency transactions.

Products can have prices in different currencies and and can be set per country.

Products/Categories can be made available to specific countries or be restricted.

Its a little bit hack but the design of the system does not allow the PrimaryStoreCurrency to be set per store or per country.

So I did this by dynamically changing according to customer's country.

I am planning to create a plugin for these features but it will take some time.

Great, looking forward to try plugin.

devranerogul avatar Dec 24 '23 14:12 devranerogul