Discussions

Variable Base Currency with Real-Time Display Pricing?

I'm learning D7DC and haven't found anything on this issue (which I have posted several times with no reply).

IMO, for a robust, open commerce system each Catalog Item should have 1 base price with an associated base currency. The base currency may vary by item. The Shopping Cart should be displayed in a user selected language and a user selected currency.

The displayed price should be calculated real-time by converting the base price from the base currency to the displayed currency.

Example:
cart language = english
cart currency = USD
USD/Euro real-time FX rate = 0.743
USD/GBP real-time FX rate = 0.629
item-1 base price/currency = 74.3 Euro
item-2 base price/currency = 62.9 GBP
=========================================
item-1 display price/currency = 100 USD
item-2 display price/currency = 100 USD
=========================================

IMHO, This concept is critical to market pricing and multi-seller marketplaces whereby one seller prices in currency "x" and another seller prices in currency "y".

How does Drupal Commerce work?

Posted: Feb 1, 2011

Comments

Ryan Ryan Szrama on February 2, 2011

This is entirely possible using the pricing Rules system provided a store adds these missing pieces depending on its business logic:

  1. How to determine the currency to convert to for the current user, and
  2. How to determine the proper currency conversion rate.

Because those things will vary from store to store and can be easily plugged into the system through alter hooks and/or Rules configuration, we haven't baked support for them into the core modules themselves. The only challenge I see the current architecture giving you will be if you want to display product prices in one currency and represent them differently in the shopping cart. Or if you want the cart to be one currency during browsing and then convert it to a new currency for just the checkout page. But these are all pieces of business logic that you'll have to determine for your store based on the trade-offs in DC's functionality.