Configuring Loyalty Program in 1C-Bitrix
Under "loyalty program" in Bitrix, different things are meant: cumulative discounts, bonus points, customer levels. It's important to define the mechanics right away, because built-in Bitrix tools cover only part of scenarios, the rest requires custom development or third-party modules.
What's built-in
Bitrix doesn't have a dedicated "loyalty program" module. Functionality is assembled from:
- User groups — different levels with different prices and rights
-
Cumulative discounts — automatic transfer between groups by purchase amount (
b_sale_user.DISCOUNT_VALUE) -
Order discounts — condition "sum of previous orders" in rule constructor of
salemodule -
Coupons — personal promo codes (
b_sale_discount_coupon)
For bonus points (earning N points per purchase, spending on next order) there's no built-in mechanism — either custom module or integration with external loyalty system (Mindbox, UDS, 1C:Loyalty).
Implementing tiered program
Three-tier program (Basic / Silver / Gold) through user groups:
- Create three groups with corresponding price groups
- Configure automatic transfer via
OnSaleOrderSavedevent - In personal account display current level and progress to next
Data for progress calculation:
// User's current purchase amount
$userSaleData = \Bitrix\Sale\Internals\UserTable::getList([
'filter' => ['=USER_ID' => $userId],
'select' => ['DISCOUNT_VALUE'],
])->fetch();
$currentTotal = (float)$userSaleData['DISCOUNT_VALUE'];
Integration with external loyalty systems
If bonus points are required — connect via REST API external system. Integration points:
-
OnSaleOrderSaved— award points when order is placed -
OnSaleOrderStatusChange— award when transferred to "paid" status - Basket component — add points spending field
Display in personal account
For displaying loyalty program status, use custom template of bitrix:sale.personal component. The template includes your own logic for level and bonus calculation.
Estimated timeframes
Basic tiered program through groups with progress display — 1–2 business days. Full system with bonus points and external platform integration — 3–7 days.

