Pricing has two layers. The app-native engine objects such as priceList,
priceListEntry, promotions, and discounts in CME MP. For RC they’re product selling model,
adjustments, and promotions. These objects are genuinely separate objects and are isolated. You
don’t need a differentiator here. Both apps (CME MP and RC) share standard objects like
Pricebook and Pricebook Entry, storing their data as separate records within the same object.
Therefore, you need a differentiator to distinguish the records for each app.
Required Editions
| Available in: Classic and Lightning Experience |
| Available in: Enterprise, Unlimited, and Developer
Edition |
Findings
- Pricing is one of the most app-native surfaces. Creating pricing-specific objects in
their corresponding app (CME MP or RC) works as expected.
- Promotions, discounts, and related objects are separate in each app (CME MP and
RC).
- Standard list views on Pricebook and PricebookEntry show all records in the org. A CME
MP user sees RC pricebooks and entries, and an RC user sees CME MP pricebooks and
entries.
- Pricebook and PricebookEntry have no record type and no natural owning-app field.
- The standard PricebookEntry related list inside a Pricebook can’t filter out
- ProductSellingModel or other RC only fields.
Guidelines
- The pricebook is the top-level container for pricing isolation. Every price list,
adjustment, and promotion rolls up to a pricebook that must be classifiable to one app
(CME MP or RC).
- Avoid modeling a "shared" pricebook between CME MP and RC if possible.
- Promotions and discounts are modeled differently in each app (CME MP and RC); replicate
them manually per app if they’re logically the same.
Best Practices
- Use only the app-specific and related apps in RC: Price Management; For CME MP: Pricing
Designer.
- Create separate Pricebook, PricebookEntry, and Product records for each app (CME MP and
RC), even when they’re logically the same. These are separate records within shared
objects, not separate objects.
- Never create a PricebookEntry manually in CME MP that is auto-created when you create a
PriceListEntry under a CME MP PriceList.
- Separate pricebooks per app (CME MP and RC) are recommended for visibility and
cleanliness, not as a hard functional requirement.
Solutions
- Build per-app custom listing pages for Pricebook and PricebookEntry, each with a
built-in filter, assigned to the correct Lightning app.
- Pricebook differentiator as SourceApp__c where the stamp implies RC and blank implies
CME MP.
- PricebookEntry inherits its parent Pricebook that filters every PBE listing and reports
through the parent's differentiator.
Limitations
- Standard list views can’t be made app-aware, so the custom listing page pattern is the
only reliable fix.
- PricebookEntry can’t carry its own differentiator as every PBE filter and report must
join to the parent Pricebook.
- Global search returns pricebooks from both apps regardless of the current app (CME MP or
RC).