Pricing Rules - Create Dynamic Price Structures
Pricing Rules let you set up automatic, condition-based price adjustments that respond to what your customers do in the designer. When a customer types a longer text, uploads a larger image, or changes the canvas size, the product price can update instantly to reflect those choices.
This article explains how to set up and configure Pricing Rules in Fancy Product Designer.
Pricing Rules vs. Element Pricing
Before getting started, it helps to understand what Pricing Rules are not.
Element Pricing assigns a fixed additional charge to a specific preset element in the Product Builder. It is a static price that gets added whenever that element is present. If you are looking for that approach, see the article FAQ: Products Module Element Prices.
Pricing Rules are different. They are condition-based: the price changes depending on measurable properties like text length, image size, canvas dimensions, or the number of colors used. They are the right tool when the price should reflect what the customer creates, not just which elements are present.
Additional pricing options are also available in Global Settings > Element Properties (per-element settings) and within Global Settings > Customization Profiles, which let you add a fixed price per text or image element added by the customer.
Prerequisites
Pricing Rules require Custom Pricing to be active. Without it, the Pricing Rules page will show an information banner and the "Add Pricing Rule Group" button will be disabled.
To activate Custom Pricing:
- Go to Settings > Integration > Custom Pricing.
- Select any option other than "none" for Custom Priced Products.
Once Custom Pricing is enabled, navigate to Settings > Pricing - Rules to access the Pricing Rules configuration.

Rule Groups
All pricing rules are organized into Rule Groups. Each group evaluates independently and calculates its own price adjustment. The adjustments from all active groups are added together.
Click Add Pricing Rule Group to create a new group.
Each group has the following settings:
Setting | Description |
|---|---|
Name | A label for the group (editable via a popover) |
Description | A free-text field for your own notes or documentation |
Active | Checkbox to enable or disable the group without deleting it |
Property | What is measured in the designer |
Rule Target | Which views and elements are measured |
Match Type | How the rules within the group are evaluated |
Rules | The individual conditions with their price adjustments |
Groups can be duplicated or deleted at any time.

Properties: What Can Be Measured?
The Property defines what gets measured when evaluating the rules.
Property | Applies to | What is measured |
|---|---|---|
Text Length | Text elements | Number of characters (excluding spaces) |
Number of Lines | Text elements | Number of lines |
Font Size | Text elements | Font size |
Image Size | Image elements | Width x Height (native file resolution, in pixels) |
Image Size Scaled | Image elements | Width x Height (scaled size on the canvas) |
Elements Count | All elements or All Custom elements | Total number of elements |
Number of Colors | All views | Number of colors applied by the designer |
Canvas Size | Views | Width x Height of the canvas (in the configured unit, e.g. mm) |
Output Size | Views | Area of the output region |
Image Size vs. Image Size Scaled: Image Size reflects the native resolution of the uploaded file. Image Size Scaled reflects the actual size the image occupies on the canvas. In most cases, Image Size Scaled is the more meaningful choice because it represents how the customer has placed and scaled the image.
With every other property, the rule's price is added to the product price. With Output Size, the price you enter is multiplied by the measured area value. For example, if the output area is 100 cm2 and your rule price is 0.05, the resulting adjustment is 0.05 x 100 = 5.00. If you enter 5.00 as the price, the result will be 500.00.Always use a small per-unit price when working with Output Size.
Rule Target: Which Elements Are Measured?
The Rule Target defines which views and which elements within those views are evaluated.
Views:
- All views (-1): The property is measured across all views.
- Specific view (0, 1, 2 ...): Only the selected view is evaluated.
Elements:
- All: All elements in the view
- Image: All image elements
- Text: All text elements
- Custom Image: Only images uploaded by the customer
- Custom Text: Only text entered by the customer
- Custom Element: All customer-created elements
- Single Element: A specific element, identified by its exact title in the Product Builder (case-sensitive)
Match Type and Rules: How Is the Price Calculated?
Each group contains one or more Rules. Each rule consists of three parts: an operator (equal, greater, less, greaterEqual, lessEqual), a threshold value, and a price adjustment.
How the rules are evaluated depends on the Match Type you choose.
Match Type: any (first match wins)
The rules are checked from top to bottom. As soon as one condition is met, its price is applied and the remaining rules are skipped.
The order of rules matters. Rules must be sorted from the highest to the lowest threshold. If a low threshold appears first, it will always trigger before the higher thresholds get a chance.
Incorrect order (the +5.00 rule can never be reached):
Rule 1: Text Length > 10 -> +2.00
Rule 2: Text Length > 50 -> +5.00
Correct order:
Rule 1: Text Length > 50 -> +5.00
Rule 2: Text Length > 10 -> +2.00
Use any when you want a flat surcharge based on a pricing tier: for example, one price for short texts, a higher price for long ones.
Match Type: all (each rule evaluated independently)
Every rule is checked on its own. Each rule that matches adds its price to the total. Rules that do not match simply contribute nothing.
Despite the name, not all rules need to match. "All" means "evaluate all rules," not "only apply if all rules match."
Example (cumulative surcharges):
Rule 1: Text Length > 10 -> +1.00
Rule 2: Text Length > 50 -> +2.00
Rule 3: Text Length > 100 -> +3.00
- 5 characters: no rules match, adjustment: +0.00
- 60 characters: Rules 1 and 2 match, adjustment: +3.00
- 120 characters: All three rules match, adjustment: +6.00
Use all when you want a price that grows incrementally with scale.
Note for area-based properties: When using Image Size, Image Size Scaled, or Canvas Size, the threshold value requires both a width and a height. Both dimensions must be exceeded at the same time for the rule to match.
When Are Rules Evaluated?
The pricing engine runs automatically whenever one of the following events occurs in the designer:
- An element is added, removed, or modified
- The color of an element changes
- A text link is applied
- The canvas size changes
- A view is created or removed
- The product is loaded
Testing Your Setup
After saving your configuration, test it in your store:
- Open the product in the storefront.
- Perform the action the rules are based on (enter text, upload an image, resize the canvas, etc.).
- Check whether the product price updates in real time.
- Add the product to your cart and verify the final price in both the cart and checkout.
The price adjustment appears as the updated total product price, not as a separate line item.
Troubleshooting
Rules are not being evaluated at all Custom Pricing is not activated. Go to Settings > Integration > Custom Pricing and enable it.
The price is wrong when using any Check the order of your rules. They must be sorted from highest to lowest threshold. If a lower value appears first, it will always match before higher thresholds can be reached.
Output Size produces unexpectedly high prices The price entered for Output Size is multiplied by the measured area, not added once. Use a small per-unit amount such as 0.05 rather than a full price like 5.00.
A rule does not apply to a specific element Verify the element's title in the Product Builder. The Single Element target matches by exact title, including capitalization.
Updated on: 08/06/2026
Thank you!
