Price Lists and Versions
A price list is the primary organisational unit for pricing in the PCM module. Rather than attaching prices directly to catalogue items, prices are grouped into named lists that can be typed, versioned, and assigned to specific customers. This indirection allows the same item to carry different prices in different contexts — retail vs. wholesale, domestic vs. international, promotional vs. standard.
Price list structure
Each price list is defined by:
- Name — a human-readable label (with internationalisation support)
- Type — a category drawn from a configurable lookup (e.g. Standard, Promotional, Wholesale)
- Currency — the base currency for all prices in the list
- Description — free-text context about the list's purpose
- Visibility — controls who can see the price list beyond its owning organisation
Within a tenant, no two active price lists can share the same name and type combination, preventing ambiguity when resolving which list applies.
Price list types
Price list types are tenant-scoped lookup values that define the valid categories for lists. Each tenant can configure their own set of types — for example, one organisation might use "Standard" and "Promotional", while another uses "Retail", "Wholesale", and "Partner".
Types are effective-dated, so they can be retired without deletion when no longer needed.
Versioning
Price lists are versioned through a dedicated version entity. Each version is a named snapshot of the price list at a point in time, carrying:
- Version name — a human-readable label (e.g. "Q1 2026", "v2.0")
- Description — what changed in this version
Versions are the entity that price list lines attach to. A line joins a specific price to a specific version of a price list. This means updating prices is a matter of creating a new version and adding new lines, while the previous version's lines remain intact for historical reference.
How prices connect to price lists
Prices do not belong directly to a price list. Instead, price list lines act as the join:
Price list → Price list version → Price list line → Price
Each price list line references a parent price list, a version within that list, and the actual price record. The same price can appear at most once per version, preventing duplicate entries.
This three-level structure (list > version > line > price) provides full auditability: you can always determine what prices were in effect for a given version of a list, and compare across versions.
Effective dating
Both price lists and their versions use start and end dates to control when they are in effect. This means:
- Pricing changes can be scheduled in advance by setting future start dates on new versions
- Old pricing automatically expires when its end date passes
- Historical pricing is preserved for audit and comparison
Related topics
- PCM Data Model Overview
- Prices and Price Tiers — the price records that lines reference
- Price List Rules — rules that modify prices within a list