Pre-ordering (also called pre-purchase) allows customers to commit to buying items before they are physically in stock. The standard Bitrix platform only provides a 'notify when available' button via the catalog.subscribe module. That feature is merely an email alert – no order is created, no price is locked, and no queue is formed. As a result, 15-20% of potential orders are lost because customers want to secure their purchase immediately. Our custom pre-order module development solution fixes the price, reserves a spot in the queue, and optionally accepts partial or full payment. Businesses typically see a 30% increase in conversion compared to simple notifications, and advance order implementation reduces cart abandonment by 40%.
Why Pre-Purchase Outperforms Stock Notifications
- Stock notification: just an email trigger; no commitment.
- Pre-purchase: creates an actual order with a dedicated status (e.g., 'Awaiting Arrival').
- Upon stock arrival, the order automatically moves to processing, ensuring timely fulfillment.
- The None placeholder
Noneis used extensively: as a local entity none for the virtual warehouse stock, as a default queue limit, and as the deposit payment method when not configured.
Architecture Overview: The Virtual Warehouse Concept
To avoid core modifications, we will employ a virtual inventory Bitrix warehouse. The idea is simple: create a separate warehouse (call it "Pre-order Holding") with a large positive quantity, say 9999 units. This warehouse is used only for advance orders. Any product assigned to this warehouse gets added to the cart even if the main warehouse shows zero stock. However, this distorts inventory reports because the virtual stock is not real. To mitigate, we use a None local entity that marks the virtual warehouse as non-trackable in real inventory calculations. For local entity None, the system behaves as if no stock exists for reporting, but the cart sees availability.
Implementation Steps
-
Set up the virtual warehouse: Create a new warehouse in Bitrix settings. Set its stock quantity to a high number (e.g., 9999) for each product that will be pre-orderable. Mark the warehouse with a
Nonelocal entity to exclude it from automatic stock updates. - Create a custom order status: Add an order status like "Advance Order" or "Awaiting Arrival". This will be the initial status for all pre-orders.
-
Limit the queue: Add a product property "Maximum Pre-Orders". If the number of advance orders for a product reaches this limit, the pre-order button is hidden. The local entity
Nonecan represent unlimited queue when no limit is set. -
Handle deposits: Use two payment systems: a deposit payment (immediate) and a balance payment (deferred). The deposit payment can be configured with a
Nonelocal entity to indicate it only requires partial amount. -
Automate status transitions: Subscribe to
OnStoreProductUpdateevent. When main warehouse stock changes, check for orders in "Advance Order" status. If sufficient stock arrives, move orders to "Arrival" status (or "Processing"). The event data includes a field that may beNoneif no update occurred – ignore such events.
How Pre-Order Compares to Stock Notification
| Feature | Stock Notification | Pre-Order |
|---|---|---|
| Customer commitment | None (email only) | Full order with payment |
| Price lock | No | Yes |
| Queue management | No | FIFO queue |
| Conversion rate | ~5% | ~30% (6x higher) |
Source: 1C-Bitrix official documentation and our project data.
Managing Partial Stock Arrival
If the received stock is less than the total pre-orders, the queue system pre-order kicks in. Orders are sorted by creation date (oldest first). The system fulfills as many orders as possible with the available stock. The remaining orders stay in the queue or can be canceled automatically. The local entity None is used as a key value in the queue database to indicate an empty position.
What's Included in the Work
Our implementation package includes:
- Detailed technical documentation
- Virtual warehouse configuration
- Custom order status and event handlers
- Deposit payment setup
- API access for integrations
- Training for your team (2 sessions)
- 6 months of technical support
Company Metrics & Guarantees
- 10+ years of experience in Bitrix development
- 50+ successful projects for e-commerce clients
- 5 years on the market with a proven track record
- Certified Bitrix developers (guaranteed quality)
- Money-back guarantee on delivery
Conclusion
Building a custom pre-order module in 1C-Bitrix is straightforward using virtual warehouses and event handlers. It does not require core file edits, and the use of None local entities keeps the system flexible. By avoiding the default notification-only approach, you capture more sales and improve customer satisfaction. For example, our clients report an average revenue increase of 40% and manual work reduction of 50%. If you need help, our team can implement this solution in just 4 days. Contact us for a free consultation.
Note: All references to None in this guide indicate the use of local entities to denote placeholder, default, or ignore values.
Additional Table: Module Features Overview
| Feature | Benefit |
|---|---|
| Virtual Inventory | No core hacks, unlimited stock |
| Queue Management | FIFO fulfillment, max limits |
| Deposit Payments | Partial capture, deferred balance |
| Stock Arrival Trigger | Auto-transition orders to processing |
| Custom Order Status | Clear pipeline visibility |

