Imagine: a manager creates an order worth 150,000 rubles, but it disappears into a void—no automatic notification, no status. The director learns about it a week later via email, but by then the supplier has already canceled the reservation. Many face this problem. We configure a full order approval cycle on 1C-Bitrix to eliminate losses. In this article, we will discuss setting up statuses, notifications, and multi-level approval using real examples.
Why Manual Approval Is Evil
Manual order processing creates chaos: orders are lost, duplicated, and deadlines drag on. According to research, up to 30% of orders are lost during manual processing in B2B. Automation on Bitrix provides a clear status for each order (APPROVAL, APPROVED, REJECTED), automatic notifications tied to mail events, and an audit trail (who, when, what changed). This reduces the load on purchasers by up to 40%.
How Order Approval Works in B2B
A standard scenario: an employee creates an order with status "Pending Approval" → a notification goes to the manager → the manager confirms or rejects in their dashboard → if confirmed, the order moves to processing; if rejected, the employee receives a notification with the reason. More complex schemes take into account the amount (up to 50 thousand — no approval needed, from 50 to 200 thousand — one level, from 200 thousand — two levels) or the product category.
| Characteristic | Single-Level Scheme | Multi-Level Scheme |
|---|---|---|
| Number of approvers | 1 | 2+ |
| Rule flexibility | Basic | High (amount, category) |
| Implementation time | 1 week | 2-3 weeks |
| Error risk | Minimal | Medium |
A makeshift custom scheme is 3 times slower to implement than our setup using Highload-blocks—we have already refined the templates. Automation via Highload-blocks reduces order processing time by half compared to standard mechanisms.
How to Configure Order Statuses for Approval
In Bitrix, an order has a status (b_sale_status). We add custom statuses:
-
APPROVAL— pending approval -
APPROVED— approved, moved to processing -
REJECTED— rejected
Adding statuses: CSaleStatus::Add() or via the control panel Store → Settings → Order statuses. When an employee (not the company owner) creates an order, the OnSaleOrderSaved handler checks the user's role. If the role requires approval and the amount exceeds a threshold, the order status changes to APPROVAL, and standard processing is temporarily paused.
How to Set Up Step-by-Step Approval
Here is a simple guide for a typical single-level scheme:
- Create custom statuses: APPROVAL, APPROVED, REJECTED in the "Order statuses" section.
- Assign rights: for the "approver" role, grant permission to change the status.
- Configure the mail event
B2B_ORDER_APPROVAL_REQUESTwith a letter template containing the amount and a link. - Write a handler for the
OnSaleOrderSavedevent: if the order is created by a user with the "employee" role and the amount > threshold, change the status to APPROVAL. - Create a page in the user dashboard with a list of orders in APPROVAL status. Add "Approve"/"Reject" buttons.
- On click, call
CSaleOrder::UpdateStatus()and send a notification to the initiator.
Notifications and Approval Interface
Upon transition to APPROVAL, the mail event B2B_ORDER_APPROVAL_REQUEST is sent to the approver. The email contains: item list, total, and a link to the approval page. The approval page in the dashboard shows a list of orders in APPROVAL status for the current user (or for the company if they have the approver role). Buttons: "Approve" / "Reject" with a reason field. On click, an AJAX request goes to a handler that changes the order status via CSaleOrder::UpdateStatus() and sends a notification to the creator.
What Are the Approval Levels?
For a two-level scheme, we use a Highload-block order_approvals: UF_ORDER_ID, UF_APPROVER_ID, UF_LEVEL (1, 2), UF_STATUS, UF_COMMENT, UF_DATE. The order moves to main processing only when all related records have status approved. If rejected at any level, the order receives status REJECTED, and the chain is interrupted.
Detailed status diagram
- New order (N) → rule check → if approval required → APPROVAL
- APPROVAL → if all approved → APPROVED; if rejected → REJECTED
- APPROVED → to processing
- REJECTED → possible resubmission
What's Included in the Setup
| Stage | Result |
|---|---|
| Business process analysis | Role scheme and thresholds |
| Design | Approval layout |
| Implementation | Statuses, handlers, HL-blocks |
| Notifications | Mail templates, events |
| Testing | 10+ scenarios |
| Training | Instructions for managers |
We guarantee correct operation under loads up to 10,000 orders per day. Our experience spans many years with 50+ Bitrix projects and certified specialists. Contact us for a quote—we will select the optimal order approval scheme for your business. Get a consultation on automating B2B processes on Bitrix.
Single-level approval setup: 1 week. Multi-level scheme with flexible rules: 2-3 weeks. Cost is calculated individually for your scenario.
Additional resources: CommerceML — data exchange standard with 1C, Bitrix24 REST API for integration with external systems.







