Pricing Workflow
Overview
Summary of how pricing is calculated in the shared backend and how differ in behaviour.
Key Concepts
Package: The product being sold (e.g., ticket).
Package Variant: A pricing entry tied to a specific Type and Subtype.
Price Tier: Defines prices for logged-in users based on their membership level.
Tier Variant: A price override at the Type/Subtype level for a given price tier.
Fallback Pricing: A method to calculate tier-specific prices when no Tier Variant is defined.
blockFallbackPricing: A flag to disable fallback pricing for a package.
hidePricingOnError config - if there is a validation error at cart Item Group, then the price of that package will not be displayed. The cart.Total will not be displayed.
Prerequisites
A. Package variants are setup
B. Price tier is setup
C. Tier variants are setup
Fallback Pricing Enabled (blockFallbackPricing = false/null)
Workflow
Anonymous User (Not Logged In):
On Package details page, anonymous user sees PackageVariant prices based on the package default price and the package's Type/Subtype.
After adding package variant to cart
Anonymous user authenticates at this point.
If a Tier Variant exists for the selected Type/Subtype, its price is used.
If not, system applies fallback logic:
Uses the base tier price.
Calculates offset as: Offset = Package Variant Price - Default Package Price
Final Price = Base Tier Price + Offset
Logged In User:
On Package details page , system checks if a Price Tier exists for the user.
If a Tier Variants exist, then the prices of these variants are presented to the user.
User can add the tier variants to cart and proceed with payment
Result:
Users always receive a price (either from Tier Variant or fallback calculation).
Example:
Package default price is $16. Tier price = $14.
Not logged in user sees package variant Type = DailyPass, SubType = Child, price = $10. User adds the variant to cart
User logs in. When user logs in, system identifies the user is a tier member, and there is:
a) an exact tier variant match for the package variant Type = DailyPass, Subtype = Child, price = $5
b) Not an exact match tier variant ( fallback logic applies)
Cart pricing for the above user will show $10 before, and:
a) $5 after they logged in
b) Offset = Package Variant Price - Default Package Price = -6
Final price = Base Tier Price + Offset = 14 + (-$6) = $8
Fallback Pricing Disabled
Workflow
Anonymous User (Not Logged In):
On Package details page, anonymous user sees PackageVariant prices based on the package default price and the package's Type/Subtype.
After adding package variant to cart
Anonymous user authenticates at this point.
If an exact match Tier Variant exists for the selected Type/Subtype, its price is used.
If not, system shows an error to the user at cart level. If config setting “hidePricingOnError” is set to true, the package price, subtotal and total prices on the checkout page will be hidden.
Logged In User - Tier Member:
System checks if blockFallbackPricing = true for the package.
If Tier Variant exists for the user→ Price is shown as expected ( both on details and on checkout page if the package has already been added to cart , as well as on the package details page).
If Tier Variant does not exist →
No fallback is performed.
System returns an error and shows an error to customer if they access their cart with the package added to it.
Ticket is blocked from checkout.
Subtotal and total payable are hidden on the checkout page.
Configuration Summary
Setting
blockFallbackPricing = true
blockFallbackPricing = false
Subtotal/Total hidden user if no Tier Variant
❌ No
✅ Yes
Error shown if Tier member cannot purchase
❌ No
✅ Yes
Last updated