Configuring User Groups in 1C-Bitrix
On a site with multiple roles — buyers, wholesale customers, managers, partners — without configured user groups, chaos quickly ensues: everyone sees the same prices, one set of sections, and identical personal account functionality. User groups in Bitrix are the mechanism for differentiating permissions, prices, content, and functions.
Structure of Groups in Bitrix
Groups are stored in the b_group table. User-group relationship — b_user_group. System groups:
- ID 1 — "All Users" (includes unregistered users)
- ID 2 — "Administrators" (full access)
Other groups are created based on project needs. Each group has a set of parameters: name, description, administrative section access flag, module permissions, public part settings.
What is Configured at Group Level
Public Part:
- Access to site sections (via folder permissions in structure)
- Component visibility — via
GROUPSparameter in template or condition in code - Price groups in catalog (module
catalog) — binding user group to price group
Administrative Part:
- Flag
ADMIN_SECTION— access to/bitrix/admin/ - Module permissions:
iblock,sale,catalog,filemanetc. - Permissions for specific info blocks (via info block permissions)
Binding Groups to Catalog Prices
This is one of the most practically important settings. In the catalog module, each user group is assigned a price group:
Shop → Catalog → Price Groups → [edit] → User Groups
In table b_catalog_group price groups are stored, in b_catalog_group2user_group — binding to user groups. If a user belongs to multiple groups with different prices — the most favorable price is applied (depends on priority settings).
Automatic Group Assignment
Bitrix allows configuring automatic group assignment during registration and on events:
// Add user to group programmatically
$USER->Update($userId, ['GROUP_ID' => [5, 8]]); // overwrites all groups
// Add without overwriting other groups
CUser::SetUserGroup($userId, array_merge(
CUser::GetUserGroup($userId),
[5]
));
Via administrative section: Settings → Users → Registration Settings → Default Group.
Group Membership Term
In b_user_group there are fields DATE_ACTIVE_FROM and DATE_ACTIVE_TO — you can limit group membership by time. Used for temporary access, trial periods, seasonal promotions. Managed via administrative section or API CUser::SetUserGroup.
Recommended Group Structure for E-commerce
| Group | Purpose | Features |
|---|---|---|
| Registered Users | Basic retail buyer | B2C price |
| Wholesale Customers | B2B, volume discounts | Wholesale price, hidden sections |
| VIP Customers | Personal conditions | Separate price group |
| Shop Managers | Administrative access | Flag ADMIN_SECTION, rights to sale |
| Content Managers | Content editing | Rights to iblock, fileman |
Execution Timeline
Configuring groups for a typical e-commerce store (3–5 groups, price binding, administrative permissions) — 3–5 hours. Complex scenarios with automatic group change rules and 1C integration — up to 1 working day.







