Setting up promotions and marketing rules in 1C-Bitrix

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Configuring Promotions and Marketing Rules in 1C-Bitrix

Marketing rules in Bitrix (module sale, sections "Shopping cart rules" and "Discounts") — a flexible constructor of conditions and actions. Incorrect configuration leads to discounts stacking uncontrollably, promo codes working together with promotions, or promotions applying to wrong products.

Difference between catalog discounts and marketing rules

Catalog discounts (b_catalog_discount) — work at the product price level, before the basket.

Marketing rules (Store → Marketing → Discounts and promotions) — work in the basket, allow:

  • Giving a gift when purchasing for amount X
  • Order discount when category Y products are present
  • "Buy 2 — get 3rd free"
  • Promo code binding

Data is stored in tables b_sale_discount (rules), b_sale_discount_condition (conditions), b_sale_discount_action (actions).

Creating a promotion through constructor

Store → Marketing → Discounts and promotions → Add:

  1. Conditions — constructor based on logical AND/OR blocks:

    • Order amount greater than X
    • Basket contains product from section N
    • User in group G
    • Promo code used
  2. Actions:

    • Order discount (%, fixed)
    • Discount on basket products
    • Delivery discount
    • Add gift (product at zero price)
  3. Application settings:

    • Priority
    • "Stop processing" — important for mutually exclusive promotions
    • Combined application with other discounts

Promo codes

In promotion settings, coupon usage is enabled (Store → Marketing → Coupons). Coupon types:

Type Description
Universal One code, multiple uses
Unique One code — one use
Unique per user Linked to specific user

Coupons are stored in b_sale_discount_coupon. When activated in basket, coupon is verified via \Bitrix\Sale\DiscountCouponsManager::add method.

Controlling promotion stacking

Most common problem — multiple promotions apply simultaneously and stack. Solution: use "Stop processing subsequent discount rules" field (LAST_DISCOUNT = Y) on highest priority promotion, or explicitly specify incompatibility in conditions through applied coupon verification.

Estimated timeframes

Configuring 3–5 standard promotions with promo codes — 3–5 hours. Complex mechanics with gifts, conditional chains, and custom actions — 1–2 business days.