Why price types silently show the default price
Understand why every price type shows the same price and how linked and custom price rows behave.
'all my price types show the same price' means no channel-specific prices have been set - everything is falling back to the default.
Every price row carries use_referred_price and referred_price_id. While use_referred_price is true, the effective price used in reads and quotations is the price at the END of the referral chain; the row's own stored numbers are not used for the effective price. This produces two classic confusions. First, 'I changed the price and nothing happened': the row being edited is in linked mode, so its numbers are dead weight - the fix is to switch the price to custom mode (an update with use_referred_price=false both saves the numbers and detaches the link in one step). Second, 'I typed a price and it vanished': when an update request enables linked mode (use_referred_price=true), the backend saves the flag and silently discards any price/tax/margin sent in the same request - by design, since a linked price takes values from its reference; it also clears any formula-based pricing on that row. The flip side is the intended power feature: editing the org/BU default price instantly updates every sales-channel price that is still linked to it. Note each sales-channel price is created in custom mode but keeps a pointer to the default price, so it can be re-linked later without losing the relationship. Diagnose by asking which row was edited and whether it is in linked or custom mode.
Editing one of these synthesized prices for the first time actually CREATES a new channel price row (born in custom mode, with a pointer back to the default retained so it can be linked later).
Once created, that price type stops following the default unless the linked toggle is enabled.
To make a price type track the default again, enable its linked/referred option rather than retyping numbers.
The sequence 'default price updated, most price types moved but one did not' means that one price type had been explicitly set (or API-updated) at some point.
The public /enterprise_api/price/update route hard-codes use_referred_price to false for enterprise callers - the flag cannot be sent through the API. Consequence: the first time an ERP/integration updates a sales-channel price for a (SKU, sales channel, price type), that price is converted to custom mode and detached from the org/BU default price. From then on, edits to the default price no longer flow to that channel price. This surfaces as: 'we updated the master/default price but our dealer channel still shows the old rate' - the usual cause is an earlier API sync that touched the channel price and silently broke the link. There is no API way to re-link; the client must re-enable the linked/referred toggle on that price from the catalog UI, or accept that their integration must push updates to every channel price explicitly. When onboarding an ERP-sync client, warn them up front: syncing channel-level prices means owning ALL channel-level prices thereafter, while syncing only default prices keeps the internal inheritance working. Also note price updates are audit-logged (price_update), which helps establish when a link was broken.