Skip to main content
Version: 2.4

Pricing

Pricing in Catalog defines what is charged, discounted, and taxed for a specification.

  • PriceList stores concrete price records.
  • PriceComponentType classifies component semantics.
  • VatRange provides VAT/tax references.
  • enums define the billing semantics of each record.

This document follows business-first explanation and then detailed field references.


1. Business Meaning

1.1 Price List Purpose

Price list records allow specification-level charging models, including:

  • one-time price,
  • absolute discount,
  • percentage discount,
  • recurring charging periods,
  • start and end validity,
  • VAT and component classification.

Pricing can be layered with recurrence controls and bounded by list-price limits.

1.2 Pricing Governance

Pricing behavior is governed by:

  • pricing enums (PriceType, RecurringChargePeriodType),
  • VAT registry (VatRange),
  • component registry (PriceComponentType),
  • validity windows on all records.

1.3 Typical Pricing Flow

  1. Configure VAT ranges.
  2. Configure price component types.
  3. Create specification-linked price list rows.
  4. Maintain lifecycle using validity intervals and recurrence settings.

2. Entity Reference: Price List (PriceList)

FieldTypeRequiredRead-onlyDescription
idUUIDNoNoPrice row identifier.
catalogSpecificationIdUUIDYesNoOwning specification ID.
listPriceDoubleNoNoBase price value.
priceTypePriceTypeNoNoPrice semantic type (price/discount).
recurrencesIntNoNoNumber of cycles where price applies.
startingRecurrenceIntNoNoFirst recurrence index where rule starts.
validityFromDateNoNoValidity start.
validityToDateNoNoValidity end.
vatRangeIntNoYesResolved VAT value projection (VatRange.value).
listPriceLimitFloatNoNoLower/normal individual price boundary.
listPriceLimitMaxFloatNoNoUpper individual price boundary.
chargingClassStringNoNoFree text charging classification.
withVATBooleanYesNoIndicates whether VAT is included.
individualPriceBooleanYesNoIndicates individual/manual pricing behavior.
vatRangeCodeStringNoNoVAT range code reference (FK VatRange.code).
priceComponentTypeStringNoNoPrice component code reference.
recurringChargePeriodTypeRecurringChargePeriodTypeNoNoBilling period unit.
recurringChargePeriodLengthIntNoNoBilling period length.
dataMap<String, Any?>NoNoAdditional row payload.

3. Enum Reference

3.1 PriceType

ValueMeaning
PRICEStandard charge value.
DISCOUNT_ABSOLUTEFixed discount amount.
DISCOUNT_PERCENTPercentage discount.

3.2 RecurringChargePeriodType

ValueMeaning
DAYDaily recurrence unit.
WEEKWeekly recurrence unit.
MONTHMonthly recurrence unit.
YEARYearly recurrence unit.

4. Entity Reference: Price Component Type (PriceComponentType)

FieldTypeRequiredRead-onlyDescription
idUUIDNoNoComponent type ID.
codeStringYesNoTechnical component code.
nameStringYesNoDisplay name.
validityFromDateNoNoValidity start.
validityToDateNoNoValidity end.
descriptionStringNoNoComponent description.
localizationDataLocalizationDataNoNoLocalization payload.
dataTagsList<String>NoNoOptional labels.
configMap<String, Any?>NoNoAdditional configuration payload.

5. Entity Reference: VAT Range (VatRange)

FieldTypeRequiredRead-onlyDescription
idUUIDNoNoVAT range ID.
codeStringYesNoVAT range technical code.
nameStringYesNoVAT range display name.
validityFromDateNoNoValidity start.
validityToDateNoNoValidity end.
descriptionStringNoNoVAT range description.
localizationDataLocalizationDataNoNoLocalization payload.
valueFloatNoNoVAT percentage value.
taxExemptionBooleanNoNoExplicit tax exemption flag.
dataTagsList<String>NoNoOptional labels.
configMap<String, Any?>NoNoAdditional configuration payload.