function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Francesco ScarioloFrancesco Scariolo 

Is there a way to change opportunity currency without deleting quote and products?

Hi,
I got this question from a client and after asking Salesforce Premium Support and asking to colleagues, nobody was able to provide me with a question.

Challenge: create an easy way for the user to change the Opportunity currency when the opportunity has Products and Quotes attached.

Ways to do this can be multiple, what I was thinking is a button "change currency" that with a Flow will temporarily store the  Products and Quotes.

Since I never tried this before, who has done this in the past? 
How difficult ? which roadblocks?

Thanks!
Francesco
 
VinayVinay (Salesforce Developers) 
Hi Francesco,

I haven't tried personally but below are few inputs that can help you.

Opportunity currency become uneditable after a line item is added.  This is because the Opportunity Line Item (OLI) has a lookup to the PricebookEntry object. The PricebookEntry represents a product entry (an association between a Pricebook2 and Product2) in a price book.

The PricebookEntry must have a currency value (when multiple currency is enabled). I (believe) that it is this, that is actually preventing you from changing the currency on the Opportunity as all OLI lookups to PricebookEntry must have matching Currencies. (i.e An OLI must lookup a Product, using PriceBook, all in the Same Currency as the original Opportunity.)

Currently when you try to change the Opportunity Currency, at that point in time it will no longer match the Currency of the PricebookEntry and so would fail to match the criteria.

Below are few suggestions:

>> Record ALL existing information about the OLI including lookups to related objects
>> Find the corresponding PricebookEntry lookups for the same Product2 and Pricebook2 with the new currency
>> Report an error if a match is not found (or skip that OLI)
>> Delete existing OLI records
>> Update the Currency of the Opportunity
>> Create New OLI records with the new currency and new PricebookEntry lookup values.

Review below links for more information.

https://help.salesforce.com/articleView?id=000326484&type=1&mode=1
https://success.salesforce.com/answers#!/feedtype=SINGLE_QUESTION_DETAIL&id=90630000000gsvwAAA
https://focusonforce.com/configuration/salesforce-multicurrency-what-you-need-to-know/
https://theeverydayadmin.com/2020/02/15/help-i-cant-change-the-currency-on-my-opportunity/

Hope above information was helpful.

Please mark as Best Answer so that it can help others in the future.

Thanks,
Vinay Kumar