Skip to main content

What This Rule Does

fusionCore ships a validation rule on the PricebookEntry object that stops you from editing the standard price from the price book entry itself. The PricebookEntry object, or PBE, is the row that links a product to a price book at a given price. The rule forces you to set the price on the Standard Price field of the product record instead, so every product has one clear source of truth for its price. In a single-currency org this works well. In a multi-currency org, the standard price book holds one entry per currency, so you may want each currency to carry its own standard price. The shipped rule does not account for currency, so you replace it with a multi-currency-aware version. The shipped rule is named Block_Standard_Price_Change and it blocks a save when all of the following are true:
  • Global validations are enabled (Org_Setting__mdt.Global_Validations_Enabled__c = TRUE).
  • The product is used by fusionCore (Product2.Used_By_FusionCore__c = true).
  • The entry is on the standard price book.
  • The entry’s UnitPrice differs from the product’s Standard_Price__c, or Standard_Price__c is blank.

Prerequisites

  • Multi-currency is enabled in your org. See Enabling Multi-currency.
  • You have permission to edit objects in Setup (System Administrator or equivalent).
This change is only needed if you want a different standard price per currency on the same product. If single-currency pricing is fine for your org, leave the shipped Block_Standard_Price_Change rule active and skip this page.

Optional Workaround Without Changing the Rule

You can keep the shipped validation rule and still create a per-currency standard price by re-editing the product’s currency. Each time you set a new product currency and standard price, Salesforce adds a matching entry to the standard price book while keeping the original.
1

Open the product

In the App Launcher, type Product and click Product. Click the product you want to update.
2

Edit the product currency and price

On a product that already has a Standard Price in one currency, click Edit. Change the Product Currency, set the Standard Price for the new currency, then click Save. This adds a new standard price book entry in the new currency and keeps the entry in the original currency.
3

Restore the original currency if needed

To return the product to its original currency, click Edit again and set Product Currency back to its former value. Make sure the Standard Price field still holds the correct price for that currency.

Deactivate the Shipped Rule

1

Open the Price Book Entry object

Click Setup, then the Object Manager tab. In Quick Find, enter Price Book Entry and click the Price Book Entry object.
2

Open the validation rule

Click Validation Rules in the left panel, then click Block_Standard_Price_Change.
3

Mark it inactive

Click Edit, clear the Active checkbox, then click Save.
The Block_Standard_Price_Change validation rule edit screen with the Active checkbox

Editing the Block_Standard_Price_Change validation rule to mark it inactive

Create the Multi-Currency Rule

1

Start a new rule

Back on the Price Book Entry object, click Validation Rules, then click New.
2

Name and describe it

Set the Rule Name to Block_Standard_Price_Change_Multi_Curr and the Description to Validation Rule for the Standard Price updated for Multi-Currency.
3

Enter the error condition formula

Copy this formula into the Error Condition Formula box:
The added Text(CurrencyIsoCode) = Text(Product2.CurrencyIsoCode) line is what makes the rule currency-aware: it only blocks the save when the entry’s currency matches the product’s currency, so each currency can keep its own standard price.
4

Set the error message

Enter this Error Message: You cannot add/edit the Standard Price via Price Book Entry. Please update the "Standard Price" field directly on the Product record.
5

Save

Leave Error Location set to Top of Page, then click Save.
The new Block_Standard_Price_Change_Multi_Curr validation rule with its formula and error message

The new Block_Standard_Price_Change_Multi_Curr validation rule

Limitations and Common Pitfalls

  • The shipped Block_Standard_Price_Change rule only fires when global validations are enabled (Org_Setting__mdt.Global_Validations_Enabled__c = TRUE), the product has Used_By_FusionCore__c = true, and the entry is on the standard price book. If a rule is not firing, check those conditions first.
  • The replacement rule above is not an exact copy of the shipped rule plus a currency clause. The shipped rule also gates on Product2.Used_By_FusionCore__c, which the formula above omits. As a result the new rule applies to all products on the standard price book, not only fusionCore products. Add the Used_By_FusionCore__c clause yourself if you want to keep that scope.
  • The standard price must come from the single Standard Price field on the product, not from the price book entry. Editing UnitPrice on a standard price book entry is what these rules block.