Price Structure
A Price Structure represents all pricing information for a single SKU within a single pricelist.
It is the foundational unit of the Quantaprice pricing model and participates in inheritance, bundles, scheduled updates, and history.
What a Price Structure Contains
Base Price Fields
A price structure may contain:
- Net price
- Gross price
- Additional custom price fields
Quantaprice does not enforce a rigid price-field schema; you only store the fields your business requires.
VAT Class
Each SKU belongs to a VAT class.
The pricelist determines how VAT is applied (include/exclude), but the VAT class originates from the article or the price definition.
Currency
The currency applied to this price structure, typically inherited from the pricelist.
Quantity Breaks
Quantity-based pricing is represented as a list of breaks:
- Each break has a minimum quantity
- Each break may define its own price values
Quantaprice always selects the correct break deterministically based on the requested quantity.
Metadata
Metadata is optional key → list-of-values information. It is used for:
- Internal segmentation
- Article maintenance workflows
- Optional SKU selection before pricing
Metadata is not intended for storefront search or customer-facing filtering.
Historical Versions
When enabled, Quantaprice stores timestamped versions of each Price Structure.
This allows:
- “Price as of date” queries
- Debugging unexpected price behaviour
- Compliance and audit scenarios
Historical resolution integrates with inheritance and bundles.
Scheduled Future Versions
A price structure can include future updates that become active at a specific timestamp.
Activation is deterministic and replica-safe.
How Price Structures Behave in the Pipeline
Inheritance
If the current pricelist does not define a field, the value falls back to its parent pricelist.
Overrides are explicit and deterministic.
Bundles
Bundle components use the same Price Structure logic as individual SKUs:
- Component resolution
- Quantity break selection
- Inheritance fallbacks
VAT and Rounding
VAT and rounding are always applied after structural logic: inheritance → bundles → scheduled updates → history → VAT → rounding.
History and Scheduling
Quantaprice first selects the correct historical or scheduled version,
then applies inheritance and bundle logic on top.
Design Goals
- Minimal – only defines what pricing needs.
- Deterministic – same inputs always yield the same outputs.
- Composable – integrates cleanly with inheritance, bundles, scheduling, and history.
- Flexible – supports custom fields and arbitrary metadata.
- Predictable – performs consistently across large catalogs and pricelist structures.
Summary
A Price Structure defines how a single SKU is priced within a single pricelist.
It brings together base prices, quantity breaks, metadata, VAT class, history, and scheduled updates.
All other pricing logic — inheritance, bundles, VAT, rounding — builds directly on top of these structures.