We are trying to utilize the Order object, but we're finding that if we create an Order Product, we are unable to change the product (i.e. essentially the Pricebook entry), even if we're in a Draft status/status category.

Has anyone found a way around this? Is there a specific reason why they lock this value down even for Draft orders?

1 Answer 1


In Salesforce, within any of the "line-item-y" detail objects (ContractLineItem, OpportunityLineItem, QuoteLineItem, OrderItem), the field PricebookEntryId cannot be updated

For OrderItem, you can see this in the Object Ref doc:

Type reference

Properties Create, Filter, Group, Sort

Description Required. ID of the associated PricebookEntry.

This field must be specified when creating OrderItem records. It can’t be changed in an update.

So, even though the Order is Draft, you are still stuck with abiding by the schema rules. Delete existing line items and re-add using the correct PricebookEntryId

  • Any idea why this is the case? Is it that hard for Salesforce to re-map the PricebookEntryId on line items?
    – Maya Tran
    Jun 20, 2019 at 21:18
  • 1
    @MayaTran One possible reason is that Oppo is linked to Quotes and Orders so a change in PBid could inadvertently damage business app integrity in these downstream objects. SFDC wants you to think about it.
    – cropredy
    Jun 20, 2019 at 21:55
  • Thanks @cropredy. That makes sense. I wish they had taken it to another level and only lock it down if we had an Opportunity or other dependency associated with the Order.
    – Maya Tran
    Jun 21, 2019 at 15:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .