Skip to main content
Skip to main content

Pricing Concepts

In this document, you’ll learn about the main concepts in the Pricing Module, and how data is stored and related.

Price

The Price data model represents any price.

Prices can be conditioned by the min_quantity and max_quantity attributes, which are helpful when calculating the price for a specific quantity.

If a price has its min_quantity or max_quantity attributes set, they’re only considered for the price calculation if they have a lower min_quantity or a higher max_quantity than the quantity specified for calculation.


Price Set

A PriceSet represents a collection of prices that are linked to a resource (for example, a product or a shipping option). Each of these prices are represented by the Price data module.

A diagram showcasing the relation between the price set and price


Prices with Rules

Rule Type

Each price within a price set can be applied for different conditions. These conditions are represented as rule types.

A RuleType defines custom conditions. Each rule type has a unique rule_attribute, referenced in rule values, such as when setting a rule of a price.

Price Rule

Each rule of a price within a price set is represented by the PriceRule data model, which holds the value of a rule type. The Price data model has a rules_count attribute, which indicates how many rules, represented by PriceRule, are applied to the price.

A diagram showcasing the relation between the PriceRule, PriceSet, Price, and RuleType.

For example, you create a zip_code rule type. Then, a price within the price set can have the rule value 10557, indicating that the price can only be applied within the 10557 zip code.

Each price within the price set can have different values for the same rule type.

For example:

A diagram showcasing the relation between the PriceRule, PriceSet, Price, and RuleType.

Each price can have multiple rules applied to it as well.

For example, a price can have the rules zip_code and region_id applied to it. In this case, the value of each rule is represented by a PriceRule.

A diagram showcasing the relation between the PriceRule, PriceSet, Price, and RuleType with multiple rules.

PriceSetRuleType

The PriceSetRuleType data model indicates what rules the prices can have within a price set. It creates a relation between the PriceSet and RuleType entities.

For example, to use the zip_code rule type on a price in a price set, the rule type must first be enabled on the price set through the PriceSetRuleType.

A diagram showcasing the relation between the PriceSet, PriceRule, Price, RuleType, and PriceSetRuleType


Price List

A PriceList is a group of prices only enabled if their rules are satisfied. A price list has optional start_date and end_date attributes, which indicate the date range in which a price list can be applied.

Its associated prices are represented by the Price data model.

Each rule that can be applied to a price list is represented by the PriceListRule data model. The rules_count attribute of a PriceList indicates how many rules are applied to it.

Each rule of a price list can have more than one value, representing its values by the PriceListRuleValue data model.

A diagram showcasing the relation between the PriceSet, PriceList, Price, RuleType, and PriceListRuleValue

Was this section helpful?