Magento Pricing and Catalog Rules — Special Prices, Tier Pricing and Promotions
In this tutorial, you'll learn how Magento handles product pricing including regular and special prices, tier pricing for volume discounts, group pricing for customer segments, and catalog price rules for automated promotions.
What You'll Learn
- Setting regular prices, tax classes, and fixed product tax
- Configuring special prices with date ranges for time-limited discounts
- Creating tier pricing for volume-based quantity discounts
- Setting group prices for different customer groups
- Building catalog price rules with conditions and actions
- Understanding catalog rule indexing and cron-based application
- Configuring price display settings for tax inclusion
Why It Matters
Pricing is the most sensitive part of any e-commerce store. Incorrect pricing erodes margins or confuses customers. Magento's layered pricing system lets you set different prices for different scenarios — bulk buyers get volume discounts, wholesale customers see different prices, seasonal promotions apply automatically. Understanding how each pricing layer works ensures you never lose money or trust due to a pricing mistake.
Real-World Use
A B2B supplier sells widgets at $50 each. Retail customers pay the regular price. Wholesale customers see $40 (group price). Customers buying 10+ units get $45 (tier price). During a winter sale, a catalog rule applies 15% off to all widgets. The system calculates the final price respecting all layers: special price overrides regular, tier overrides special within quantity ranges, catalog rules apply on top, and customer group restrictions are enforced.
Learning Path
flowchart LR A["Categories & Attributes"] --> B["Pricing & Catalog Rules
← You are here"]:::current B --> C["Inventory & Stock"] C --> D["Cart & Checkout"] D --> E["Payment Gateways"] classDef current fill:#38bdf8,color:#0f172a,stroke-width:2px
Basic Product Pricing
Every simple, configurable child, grouped, bundle, virtual, and downloadable product has a Price field. This is the base price before any discounts or overrides.
In the product form (Products > Catalog > edit product), the Price field is in the General section. You also set:
- Tax Class — Assign Taxable Goods, None, or a custom tax class. This determines whether and how tax is calculated on this product.
- Fixed Product Tax (FPT) — Additional fixed tax per product, like WEEE tax on electronics in the EU.
The regular price is what customers see by default. All other pricing options modify or override this base price.
Special Price
A special price is a temporary discount applied to a product for a specific period.
In the product form, under Advanced Pricing or the Price section, enter:
- Special Price — The discounted price amount
- Special Price From Date — When the special price starts
- Special Price To Date — When the special price ends
During the date range, the special price replaces the regular price on product pages, category listings, and the cart. After the end date, the regular price is restored automatically.
The special price takes priority over the regular price but is overridden by tier prices (for applicable quantities) and group prices (for applicable customer groups).
Magento handles special prices through the catalog rule indexer. The catalogrule_product_price index calculates the final price considering special prices.
Tier Pricing
Tier pricing provides quantity-based discounts. For example:
- Buy 10 units: $45 each
- Buy 25 units: $40 each
- Buy 50 units: $35 each
In the product form, click Advanced Pricing, then Add Tier:
Qty 10: $45.00
Qty 25: $40.00
Qty 50: $35.00
Each tier consists of:
- Qty — The minimum quantity to qualify
- Price — The unit price at that quantity
- Website — Optionally restrict to a specific website
The storefront displays tier pricing on the product page under a "Volume Discounts" section. Add to cart quantities trigger the appropriate tier automatically.
Tier prices can also be set per customer group:
Retail Customer - Qty 10: $45.00
Retail Customer - Qty 25: $40.00
Wholesale Customer - Qty 10: $40.00
Wholesale Customer - Qty 25: $35.00
The correct tier is applied based on the logged-in customer's group.
Group Price
Group price overrides the regular price for all customers in a specific customer group.
In the product form, under Advanced Pricing, you can set a group price per customer group:
Wholesale: $40.00
VIP: $35.00
Distributor: $30.00
A logged-in customer from the Wholesale group always sees $40.00, regardless of the regular price. Group prices do not require minimum quantities — they apply immediately.
The priority order is:
- Tier price (if customer buys in qualifying quantity)
- Group price
- Special price (if within date range)
- Regular price
Magento applies the lowest available price to the customer.
Catalog Price Rules
Catalog price rules apply discounts to products based on conditions. Unlike special prices (set per product), catalog rules apply to groups of products matching specific conditions.
Go to Marketing > Promotions > Catalog Price Rules to create one.
Rule information:
- Rule Name — Admin label
- Status — Active/Inactive
- Websites — Which websites the rule applies to
- Customer Groups — Which customer groups get the discount
- From/To — Date range for the rule
Conditions: Define which products are affected:
If ALL of these conditions are TRUE:
Category is Electronics
AND Price >= 100
AND Attribute Set is Electronics
Conditions can include: attribute set, category, SKU, price range, product attributes, and quantity.
Actions: Define the discount:
Apply: Apply percentage discount
Discount Amount: 15
Discount types:
- Apply percentage discount — Reduce price by X% (e.g., 15%)
- Apply fixed amount discount — Reduce price by fixed amount (e.g., $10)
- Apply fixed amount discount for whole cart — Not applicable to catalog rules (cart rule only)
- Buy X get Y free — Not applicable to catalog rules (cart rule only)
Priority: Lower numbers take precedence. If two rules apply, Magento uses the higher priority (lower number).
Stop Further Processing: If enabled, rules with higher priority (higher number) are not applied after this rule.
Applying Catalog Rules
Catalog rules do not apply in real time. They are indexed. The catalogrule_product_price indexer calculates the final price for each product considering applicable catalog rules.
To apply rules:
php bin/magento indexer:reindex catalogrule_product
Or wait for the cron job to trigger the indexer. By default, cron runs the catalogrule_apply_all task daily.
You can also apply rules from the admin: Marketing > Promotions > Catalog Price Rules > click the rule > Save and Apply.
Catalog rules create catalogrule_product_price index entries. These override the regular price and special price in category listings and product pages.
Price Display Settings
Configure how prices appear on the storefront:
Go to Stores > Configuration > Sales > Tax:
- Catalog display settings:
- Display Product Prices In Catalog: Excluding Tax, Including Tax, or Both
- Display Shipping Prices: Excluding Tax, Including Tax, or Both
- Shopping Cart display settings:
- Display Prices: Excluding Tax, Including Tax, or Both
- Display Subtotal: same options
- Display Shipping: same options
For B2B stores, Swedish and German markets prefer "including tax" display. For US stores, "excluding tax" is more common. If selling in multiple regions, use "Both" to show both prices.
Advanced Pricing
The Minimum Advertised Price (MAP) feature lets you hide the price until the customer clicks "Click for price":
- Go to Stores > Configuration > Sales > Minimum Advertised Price.
- Enable MAP and select the display mode.
- Set the
msrp(Manufacturer's Suggested Retail Price) attribute on products. - Configure how MAP prices display on the product page.
This is useful for brands that enforce minimum pricing from retailers.
Common Mistakes
Overlapping pricing layers without understanding priority. Setting a special price, group price, and catalog rule without understanding which takes precedence confuses both the system and the customer. Always test pricing with a test account in the relevant customer group.
Skipping reindex after catalog rule changes. Creating or modifying a catalog rule without reindexing means the discount does not appear on the storefront. Run
php bin/magento indexer:reindex catalogrule_productafter every rule change and verify the prices.Not setting date ranges on special prices. A special price without a date range applies indefinitely. Customers may see a discount intended for a one-week sale months later. Always set both from and to dates.
Using catalog rules for customer-specific discounts. Catalog rules apply to all customers in the selected groups. For per-customer pricing, use group prices or a negotiated quote extension. Catalog rules are for broad promotions, not individual deals.
Confusing catalog rules with cart rules. Catalog rules change prices on product pages and in the cart automatically. Cart rules require the customer to apply a coupon or have specific items in the cart. Using the wrong rule type causes unexpected discount behavior.
Practice Questions
What is the priority order of pricing layers in Magento? Answer: The system applies the lowest available price in this priority: tier price (if quantity qualifies) > group price > special price > regular price. Catalog rules apply at the index level and override based on the calculated indexed price.
What is the difference between tier pricing and group pricing? Answer: Tier pricing provides quantity-based discounts (buy more, pay less per unit). Group pricing overrides the price for an entire customer group regardless of quantity. Both can be combined: a wholesale customer can have a group price and also qualify for tier pricing at higher quantities.
How do catalog price rules apply to the storefront? Answer: Catalog rules are indexed by the
catalogrule_product_priceindexer. The indexer calculates discounted prices for all products matching the rule conditions. The indexed prices are used in category listings, product pages, and search results. Rules are applied via cron or manual reindexing.Challenge: Create a complete pricing Strategy for a store selling office supplies. Define the following pricing layers for a "Premium Office Chair" ($500 regular price): special price for launch week ($420), tier pricing (10+ units $450, 25+ units $400, 50+ units $350), group prices (Wholesale $400, VIP $375), and a catalog rule for 10% off all office chairs during a seasonal sale. Calculate the final price for: a retail customer buying 1 during the sale, a wholesale customer buying 15, and a VIP customer buying 30 during the sale.
FAQ
Mini Project
Your task: Create a complete pricing structure for a B2B electronics store.
- Create three customer groups: Retail, Wholesale, VIP.
- Create a product "Wireless Keyboard" with a regular price of $89.99.
- Configure:
- Special price of $79.99 for launch month
- Tier pricing: 10+ units $74.99, 25+ units $69.99, 50+ units $64.99
- Group price: Wholesale $74.99, VIP $69.99
- Create a catalog rule: 10% off all accessories (assign product to the Accessories category).
- Create test accounts for each customer group.
- Test pricing for each group at various quantities.
- Verify the special price ends correctly after the date range.
This exercise ensures you understand how Magento's pricing layers interact in real scenarios.
What's Next
Now that you understand pricing, learn how to manage inventory and stock:
Continue to Lesson 8: Inventory and Stock Management — Multi-source inventory guide.
Related lessons:
- Sales Rules and Coupons — Cart-level promotions
- Tax Configuration — How tax affects price display
- What is Magento — Understanding the pricing index architecture
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro