Field notes
One observation, proved on an org.
Short. Each note is one behaviour we hit, how we proved it, and what it means for your design. Nothing here is theoretical, and nothing here is planned — if it is listed, it is written.
Why a pricing procedure that works in one org returns nothing in the next
Pricing is not one artefact but five, and moving a subset produces a procedure that runs and prices nothing.
BillingThe billing prerequisites that fail without an error
Four pieces of org configuration decide whether billing schedules exist at all. None of them reports anything when missing.
BillingLedger assignment criteria are insert-only, and nothing warns you
A mistake in a ledger routing criterion is permanent. The object accepts field names that do not exist, and only tells you at posting.
TroubleshootingA flow criterion written in English fails silently on a localised org
Billing schedules were never created because a flow filtered on a status value that the org renders in another language.
Troubleshooting“No such column” when the column exists
An Apex class pinned to an older API version cannot see fields added in a later one — even through dynamic SOQL.
ProductProducts created by API can behave differently from identical ones created in the UI
A bundle built by bulk API refused to open the configurator. A hand-built equivalent worked. The records looked the same.