Migration·Reference·8 min·Updated 2026-10-05
Moving pricing configuration between orgs
Why a pricing procedure that works in one org returns nothing in the next, and what has to travel together.
Business requirement
Move a working pricing configuration from a sandbox to production without rebuilding it by hand.
Why it is not trivial
Pricing is not one artefact. It is a procedure, the context definition it reads, the decision tables it calls, the adjustment schedules it applies, and the price book entries underneath. Move a subset and the procedure runs and returns nothing — which looks like a pricing bug and is a deployment bug.
Recommended architecture
Treat the pricing configuration as one unit of deployment with an explicit inventory, and deploy in dependency order: context, then tables and schedules, then the procedure, then the prices.
Salesforce components
Select one to open its detail.
Flow
Scroll the diagram sideways
The rule that keeps a catalog maintainable: a decision table only when there is a condition or a tier. A flat price belongs on the PricebookEntry. Decision tables added by reflex are what fills a procedure up to its element ceiling.
And the procedure that runs is the compiled _Auto version, not the source you edit.
Implementation
- Inventory what the procedure references, including any hardcoded identifiers in its steps.
- Deploy in dependency order and reactivate the procedure at the end — deploying or editing it leaves it inactive.
- Verify by repricing a real quote and reading the line totals, not by inspecting the configuration.
Watch out
- Procedure steps can carry hardcoded record identifiers. Identifiers do not survive an org change, so a procedure that references one silently stops applying whatever it pointed at.
- The compiled
_Autoprocedure is what runs; verifying the source proves nothing. - Salesforce publishes deployment guidance for these objects specifically — it is worth reading before the first attempt rather than after the first failure.
Alternatives
Rebuilding by hand in the target org is slower but sometimes safer for a first production cut, because it forces an inventory. It does not scale to repeated releases.