Loading

CPQ error 'Changing currency on quotes with line items is not allowed’

Publiseringsdato: May 8, 2025
Beskrivelse
Changing currency on a Quote is not allowed in Salesforce CPQ. The following error message may prevent users from changing the Quote's currency: Error saving record: FIELD_CUSTOM_VALIDATION_EXCEPTION: Changing currency on quotes with line items is not allowed. You must first delete the line items.

Even after deleting the Quote Lines and if the Quote is set to Primary, changing the currency is still not allowed. The following error prevents the user from making the change: Error saving record: FIELD_CUSTOM_VALIDATION_EXCEPTION: Currency on primary quotes must match opportunity currency. Either change quote currency or make it no longer primary.
 
Note: A similar error prevents users from updating the Opportunity currency if Opportunity Products exist. Changing Opportunity currency in this scenario is not allowed. It is best practice to ensure the correct currency is selected when creating the record. Here is a sample of this error message:
Error saving record: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY: SBQQ.OpportunityAfter: execution of AfterUpdate caused by: System.DmlException: Update failed. First exception on row 0 with id a0q2h000002SczWAAS; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, Currency on primary quotes must match opportunity currency. Either change quote currency or make it no longer primary.: [] (SBQQ)
Løsning

A factor regarding the ability to change Currency on Quotes and Opportunities is the CPQ Package setting labeled 'Primary Quote Keeps Opportunity Products'. Here are the steps to change the currency based on the value of this package setting:

Primary Quote Keeps Opportunity Products = True

  1. Create a new non-primary quote on the opportunity. Do not add products.
  2. Return to the Quote, and change the currency to the desired currency (ex: USD to GBP).
  3. Reenter the line editor. Add the same products, doing a stare and compare between two browser tabs, and save.
  4. Go to the original USD quote and delete all the quote lines in the line editor.
  5. After the Quote has synced and deleted all the Opportunity Products, uncheck Primary (so there is no Primary quote).
  6. Go to the Opportunity and change the Currency from USD to GBP.
  7. Go back to the quote from Step #1 and make it Primary.


Primary Quote Keeps Opportunity Products = False

  1. Create a new quote on the opportunity.
    1. Primary = False
    2. Select new Currency
    3. Save
    4. Add the same products from the primary Quote
    5. Save
  2. Return to the original, primary Quote
    1. Edit Lines
    2. Delete quote line items
    3. Save
    4. Primary = False
    5. Save
  3. Open the Opportunity record 
    1. Ensure there are no Opportunity Products
    2. Change the currency 
  4. Go to the new Quote
    1. Edit 
    2. Primary = True
  5. Go back to the opportunity
    1. Ensure the products sync from the new primary quote and are in the correct currency.
Knowledge-artikkelnummer

000383693

 
Laster
Salesforce Help | Article