Pricing
Pricing in Catalog defines what is charged, discounted, and taxed for a specification.
PriceListstores concrete price records.PriceComponentTypeclassifies component semantics.VatRangeprovides 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
- Configure VAT ranges.
- Configure price component types.
- Create specification-linked price list rows.
- Maintain lifecycle using validity intervals and recurrence settings.
2. Entity Reference: Price List (PriceList)
| Field | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | Price row identifier. |
catalogSpecificationId | UUID | Yes | No | Owning specification ID. |
listPrice | Double | No | No | Base price value. |
priceType | PriceType | No | No | Price semantic type (price/discount). |
recurrences | Int | No | No | Number of cycles where price applies. |
startingRecurrence | Int | No | No | First recurrence index where rule starts. |
validityFrom | Date | No | No | Validity start. |
validityTo | Date | No | No | Validity end. |
vatRange | Int | No | Yes | Resolved VAT value projection (VatRange.value). |
listPriceLimit | Float | No | No | Lower/normal individual price boundary. |
listPriceLimitMax | Float | No | No | Upper individual price boundary. |
chargingClass | String | No | No | Free text charging classification. |
withVAT | Boolean | Yes | No | Indicates whether VAT is included. |
individualPrice | Boolean | Yes | No | Indicates individual/manual pricing behavior. |
vatRangeCode | String | No | No | VAT range code reference (FK VatRange.code). |
priceComponentType | String | No | No | Price component code reference. |
recurringChargePeriodType | RecurringChargePeriodType | No | No | Billing period unit. |
recurringChargePeriodLength | Int | No | No | Billing period length. |
data | Map<String, Any?> | No | No | Additional row payload. |
3. Enum Reference
3.1 PriceType
| Value | Meaning |
|---|---|
PRICE | Standard charge value. |
DISCOUNT_ABSOLUTE | Fixed discount amount. |
DISCOUNT_PERCENT | Percentage discount. |
3.2 RecurringChargePeriodType
| Value | Meaning |
|---|---|
DAY | Daily recurrence unit. |
WEEK | Weekly recurrence unit. |
MONTH | Monthly recurrence unit. |
YEAR | Yearly recurrence unit. |
4. Entity Reference: Price Component Type (PriceComponentType)
| Field | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | Component type ID. |
code | String | Yes | No | Technical component code. |
name | String | Yes | No | Display name. |
validityFrom | Date | No | No | Validity start. |
validityTo | Date | No | No | Validity end. |
description | String | No | No | Component description. |
localizationData | LocalizationData | No | No | Localization payload. |
dataTags | List<String> | No | No | Optional labels. |
config | Map<String, Any?> | No | No | Additional configuration payload. |
5. Entity Reference: VAT Range (VatRange)
| Field | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | VAT range ID. |
code | String | Yes | No | VAT range technical code. |
name | String | Yes | No | VAT range display name. |
validityFrom | Date | No | No | Validity start. |
validityTo | Date | No | No | Validity end. |
description | String | No | No | VAT range description. |
localizationData | LocalizationData | No | No | Localization payload. |
value | Float | No | No | VAT percentage value. |
taxExemption | Boolean | No | No | Explicit tax exemption flag. |
dataTags | List<String> | No | No | Optional labels. |
config | Map<String, Any?> | No | No | Additional configuration payload. |