Multi-currency price list

Hello,

I have a question regarding the functioning of price lists: can one price list handle multiple currencies?

My problem is that if I create one price list per currency, I will have to remember for each item which is the corresponding price list.

Any good way to manage this? I’d like to have only one price list for selling (I do not need different price lists) but with item prices in multiple currencies.

Not sure, As of now, you will have to create separate price lists for each currency. Maybe you can name the price list as the currency?

Thanks for the answer. It means that I will have to know for every item which currency is used to select the right price list?

Sent from mobile device

@mouuuton Did you ever solve this problem?

the original Topic is 6 years old, so many things could have happened to the internal logic of ERPNext. In that regards I would say the question is kind of out of context.

On this particular matter I think the logic “one pricelist per currency” is still in place and I don’t see any reason to do it differently. Can you provice a usecase you have in mind?

@vrms
The scenario I have:
The distribution company is buying different items from multiple international suppliers (-> the imported buying prices are in different currencies, e.g. USD, EUR). The customers are getting these items in one quotation /invoice in their local currency (can be again EUR or something else).

Example:
Item A from supplier A. buying price is 100 Euro.
Item B from supplier B. buying price is 100 US Dollar.

Customer wants to receive the quotation for these two items in EUR. Not sure what the easiest way to process this would be?

1 Like

each Supplier and each Customer has a Currency assigned to them (this can be your companies base currency or a different forreign currency)

the customer will always receive a Quotation/Sales Invoice in it’s assigned currency. You can not quote/invoice anybody in any other currency, no matter what your default currency or the supplier’s currency.

@vrms thanks for you support and quick reply!

the problem I have: to add itemA (buying and selling price available, in EUR price list, via import) and itemB (buying and selling price available in USD price list, via import) into one quotation, I need to have prices in one currency within the same pricelist. This would be an additional manual step including manual exchange rate management?
because as far as I see, the quotation only takes the selling rates from the one price list selected in the Quotation.

Again, maybe I am still misunderstanding the concept or overlook something…

Edit: if I select one pricelist after another, the system takes the correct prices from the lists and keeps them in the quotation item list.

1. you can always manually out any price on a quotation/invoice, not matter of any existing item price entry
2. not 100% sure whether it behaves like that but I would imaginge in case you do not have any item price entry on the same currency’s pricelist then your customers currency the system may do the exchange automatically based on the live rates picked.

are you aware of the selling an buying distinction of item price entries? So an item buying price EUR can never appear in a Quoation/Invoice neither in EUR, nor any other currency, because it is just on the wrong side of things (which is a good thing, as you wouldn’t sell any item for the same price as you buy it unless you have a very unusual business model.

translation of buying into a selling price always (in the logic of ERPNext at least) is a manual process. I am not really aware of any automatism for such

2 Likes

it actually won’t, but create an item price entry in the price list in the Customer’s currency once you create a price manually in the Quotation/Invoice.

1 Like

thanks for your patience. I was investigating and also clarifying our requirements.
the solution we are currently testing is based on an “automated” switch of price lists based on a property of the item.
not sure yet if it solves/survives all use cases.

``````frappe.ui.form.on("Quotation Item", "item_code", function(frm, cdt, cdn) {
var d = locals[cdt][cdn];
frappe.db.get_value("Item", {"item_code": d.item_code}, "mainitem", function(value) {
d.mainitem= value.mainitem;
cur_frm.refresh_field("items");
});
});

frappe.ui.form.on("Quotation Item", "item_code", function(frm, cdt, cdn) {
var d = locals[cdt][cdn];
if (d.mainitem== '1'){
frm.set_value("selling_price_list", 'MainPricelist');
cur_frm.refresh_field("items");
}
else {
frm.set_value("selling_price_list", 'SecondaryPricelist');
cur_frm.refresh_field("items");
}
});
``````

Has there been any progress on this?
I added a feature request on github:

I trade in precious metal bullion (gold, silver, platinum etc.)
I have all products priced via price lists according to metal type. Silver products in the currency XAG (silver troy ounce) and gold products priced in XAU (gold troy ounce) etc. FYI: XAU and XAG are official currency codes for gold and silver bullion under the ISO 4217 currency code standard (and these should be added to ERPNext along with suitable FX APIs such as fixer.io). See: xe.com XAU to INR and https://en.wikipedia.org/wiki/ISO_4217 or https://www.iso.org/iso-4217-currency-codes.html.

I have manually added these currencies to ERPNext and also added their exchange rates against INR, USD, EUR etc.
I make sales in INR, USD, XAU, and XAG and other currencies…
I would like a way to add items priced in XAU, and XAG to a single sales invoice, pos ticket, purchase order, and any other invoice type document and then have the ERP convert the totals to the billing currency based on the set exchange rates; i.e. INR.

Currently this works with only one price list at a time. So when a customer is buying both gold and silver in one order, I would need to create separate invoices for a sale of gold and a sale of silver. This is a common issue that many people are having on the forums and there are probably some other Issue tickets that I missed about this functionality.

Here are some others who are also looking for this functionality in ERPNext: