Skip to main content

Inheritance

Pricelist inheritance defines how values are passed from a parent pricelist to a child pricelist.
It enables clear override behaviour and keeps pricing structures manageable even when many pricelists are used.

Quantaprice uses single‑parent inheritance, meaning each pricelist may inherit from exactly one parent.
This creates a predictable tree structure rather than a complex graph, ensuring fast and deterministic evaluation.


How Inheritance Works

Each pricelist may define only the fields it needs to change.
All other fields are inherited automatically from the parent.

A child pricelist may override:

  • Base prices
  • Quantity breaks
  • VAT mode
  • Currency
  • Rounding rules
  • Metadata
  • Bundle definitions
  • Bundle component overrides

If a field is not overridden, the parent’s value is used.

Overrides are explicit.
No field is ever merged implicitly or partially unless specified by the pricing model (e.g., bundle components).


Inheritance During Price Evaluation

When Quantaprice evaluates a price for a SKU under a given pricelist, the system resolves values in this order:

  1. Scheduled or historical version (if applicable)
  2. Child pricelist overrides
  3. Parent pricelist values
  4. Continue up the chain until the root pricelist is reached

This produces a fully resolved effective price for the SKU.

Inheritance applies to:

  • Base price fields
  • Quantity breaks
  • VAT class (if not set at article level)
  • Currency
  • Rounding rules
  • Metadata
  • Bundle definitions

The resolved price then moves through the rest of the pipeline: bundles → VAT → rounding.


Why Single‑Parent Inheritance

Quantaprice uses a single‑parent model for several reasons:

  • Predictability
    There is only ever one source of truth for inherited values.

  • Debuggability
    You always know where a value comes from and why.

  • Performance
    Resolving a linear chain is extremely fast even with many pricelists.

  • Compatibility
    Scheduled updates and historical versions integrate cleanly because there is only one inheritance path to consider.


Relationship With Other Pricing Concepts

Bundles

Bundle definitions can be inherited just like any other field.
Component overrides at the child pricelist level replace the parent’s component definitions.

Scheduled Updates

Scheduled overrides are treated exactly like normal overrides — they simply activate at a later timestamp.

Historical Pricing

Inheritance uses the correct historical version for each pricelist before resolution begins.


Summary

Pricelist inheritance allows large and complex pricing structures to remain clear, maintainable, and fast.
By keeping inheritance single‑parent and deterministic, Quantaprice ensures predictable behaviour across all pricing operations while supporting powerful override mechanisms where needed.