Imagine: a customer adds items totaling a certain amount, but the discount isn't applied. You check the cart rules — conflict: two rules with different priorities stack, giving an unexpected discount. Or a gift isn't added because the condition 'item quantity >= 3' is set for the wrong group. Such errors are typical pain points for online stores on 1C-Bitrix. We configure cart rules — the sale module mechanism that manages prices and order composition based on given conditions. With 10+ years of experience, we have implemented dozens of complex schemes: from simple discounts to custom promotions with HL-block integration. Configuration is done in the section "Online Store → Discount Management → Cart Rules." All rules come with testing and a 30-day guarantee.
Why cart rules require precise configuration?
Each rule consists of three parts: application conditions, action, and priority. Conditions can be anything: cart total, item quantity, presence of an item from a specific section, user group, or even date. Actions — discount on the cart or product, add gift, block order. Priority is controlled by the SORT field and the LAST_DISCOUNT flag. A typical mistake is omitting LAST_DISCOUNT, and then discounts stack. As a result, margin drops and customers get unexpected prices.
In the database, rules are stored in the b_sale_discount table, conditions in b_sale_discount_cond, actions in b_sale_discount_act. With a large number of rules (50+), performance degrades — we have to optimize queries and use tagged caching.
How to set up an N+1 promotion?
Promotion "three for the price of two" — a non-standard scenario. Condition: quantity of items from a specific group ≥ 3. Action: 100% discount on the cheapest item in the cart from the same group. The standard action "discount on the cheapest" exists in Bitrix, but it's important to correctly specify the item group. If items are not properly marked, the gift won't be added. We use a filter by property or infoblock section, and for complex cases, a custom module.
Typical setup scenarios
Discount upon reaching a total. Condition: cart total reaches a certain threshold. Action: percentage discount on the order. Important: the discount applies to the entire cart. If a discount on a specific group is needed, the condition must include a filter by section or property.
Gift under a condition. Action "Add gift" requires that the gift product exists in the catalog and is active. Bitrix adds it with a price of 0 and flag IS_GIFT = Y. When the condition is no longer met, the gift is automatically removed.
Discount based on purchase history. Non-standard rule: if a customer has purchased more than a certain amount in the last 30 days, give a discount. Implemented via a custom condition on an order HL-block.
Comparison of standard vs custom rules
| Characteristic | Standard Rules | Custom Solutions |
|---|---|---|
| Setup | Through admin panel | Via API and modules |
| Development time | 2–4 hours | 1–2 days |
| Flexibility | Limited | Maximum, any conditions |
| Performance | Depends on number of rules | Optimized for load |
Custom rules process faster for large catalogs (10,000+ items) by using direct HL-block queries and caching. Standard rules can slow down with 50+ active rules — we solve this by aggregating conditions.
What's included in turnkey cart rule setup?
- Audit of current rules and conflict detection (including hidden ones where rules are not activated).
- Designing a discount scheme considering business logic and margin.
- Implementation and testing of each scenario in a test environment.
- Writing technical documentation (rule description, conditions, triggers).
- Handover of access and training employees on rule management.
- Warranty support 30 days after launch.
How long does setup take?
Standard setup of 1-2 rules via the administrative interface takes from a few hours to a day. Complex custom rules with 1C integration or non-standard conditions — from 2 to 5 days. Exact time is calculated after a free audit of the current store.
Table of common conditions and actions
| Condition | Action | Note |
|---|---|---|
| Cart total >= N | Discount on cart X% | Applies to entire cart |
| Item quantity >= N | Discount on cheapest | Requires filter by section |
| Item from group A present | Add gift | Gift must be active |
| User in VIP group | Discount on order Y% | Combine with LAST_DISCOUNT |
Why trust professionals with setup?
We specialize in 1C-Bitrix for over five years, having completed more than 50 projects with complex discount systems. We use modern approaches: tagged caching, optimization of queries to infoblocks and HL-blocks. All work is backed by a quality guarantee. Contact us — we will assess your project and offer the optimal solution. Get a free consultation from an engineer with 10 years of experience.
Learn more about the sale module in the official documentation. Also useful to read Wikipedia on discounts.

