Custom Order Properties: When Standard Solutions Aren't Enough
You need to add a "KPP" and "Legal Address" field for B2B buyers, but the standard checkout form doesn't include them. Or you need to validate a promo code against an external service. Default order properties in 1C-Bitrix cover only 20% of real-world cases — the rest requires custom development. Improper configuration of order properties can lead to up to 30% conversion loss and legal risks (violation of 54-FZ). We configure properties so the form is user-friendly and compliant with legal requirements. With over 10 years of experience and as a certified 1C-Bitrix partner, we have completed 200+ projects — from simple online stores to complex B2B portals. On one project, implementing custom validation reduced erroneous orders from 10% to 1.5%, saving the client $2,000 per month. We guarantee compliance with 54-FZ and provide a satisfaction guarantee.
What Problems Does Custom Configuration Solve?
Legal Requisites and 54-FZ
For B2B sales, you must collect INN, KPP, and legal address. Standard Bitrix fields do not validate the INN format (10 or 12 digits) and do not require KPP. Custom validation via OnSaleOrderBeforeSaved solves this. According to 1C-Bitrix documentation, this event fires before order save and allows returning an error if data is incorrect. Adding properly configured legal entity fields boosts conversion by 20% — the client doesn't abandon the form due to unclear requirements.
Conditional Visibility: Show Only What's Needed
If you have multiple delivery methods, the "Floor" field is only needed for courier delivery, and "Terminal" for self-pickup. The basic person type binding doesn't solve this. The solution is a JavaScript handler on the onDeliveryChanged event that hides/shows property groups. Compare: manually managing visibility via the admin panel takes 10 minutes per condition, while custom JS logic is set up once and works for all deliveries — 5x faster as you scale.
How to Add an Order Property via API? (Step-by-Step)
Step 1: Prepare parameters: PERSON_TYPE_ID, NAME, CODE, TYPE, REQUIRED, SORT, GROUP_ID. Step 2: Call OrderPropsTable::add() with these data.
Step 3: Check the result — the method returns an object with isSuccess(). Example:
use Bitrix\Sale\Internals\OrderPropsTable; $result = OrderPropsTable::add([ 'PERSON_TYPE_ID' => 1, 'NAME' => 'ИНН организации', 'CODE' => 'INN', 'TYPE' => 'TEXT', 'REQUIRED' => 'Y', 'SORT' => 100, 'GROUP_ID' => 1, 'PROPS_GROUP_ID' => 2, ]); if ($result->isSuccess()) { $newId = $result->getId(); } This approach is 10x faster than manually adding each property via the admin panel when deploying across multiple sites.
Why Custom Validation Is Critical for 54-FZ?
Standard Bitrix validation does not check INN checksum, format phone numbers, or verify promo codes against external systems. Custom validation via OnSaleOrderBeforeSaved fills these gaps. Example INN check:
AddEventHandler('sale', 'OnSaleOrderBeforeSaved', 'validateOrderProps'); function validateOrderProps(\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); $propCollection = $order->getPropertyCollection(); $inn = $propCollection->getItemByOrderPropertyCode('INN'); if ($inn && !empty($inn->getValue())) { $innValue = preg_replace('/\D/', '', $inn->getValue()); if (strlen($innValue) !== 10 && strlen($innValue) !== 12) { return new \Bitrix\Main\EventResult( \Bitrix\Main\EventResult::ERROR, new \Bitrix\Main\ResultError('Некорректный ИНН'), 'sale' ); } } return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS); } For more details, see the 1C-Bitrix documentation on events. Such validation reduces erroneous orders by 15% and ensures compliance with the Federal Tax Service.
Order Property Types: Standard vs Custom
| Standard Property | Custom Extension |
|---|---|
| String (TEXT) | Input masks, regular expressions |
| List (SELECT) | Dynamic AJAX loading of options |
| Checkbox (CHECKBOX) | Conditional agreement with additional terms |
| Date (DATE) | Date range restrictions, weekdays only |
| Location (LOCATION) | Integration with external geo-services |
| File (FILE) | Format/size check, image compression |
Standard properties work for 80% of simple cases, but when custom logic is needed, development is unavoidable.
Comparison of Property Configuration Approaches
| Criteria | Manual via Admin Panel | Via API | Custom Development |
|---|---|---|---|
| Time per property | 5–10 min | 1–2 min (including coding) | 30–60 min (including testing) |
| Scalability | Low | High (reusable) | Medium |
| Flexibility | Low | Medium | High (conditional visibility, validation) |
Common Mistakes When Configuring Order Properties
- Forgetting to set
PERSON_TYPE_ID— the property is not displayed for anyone. - Using Latin
CODEbut later referencing it incorrectly in API calls. - Not checking sort order — fields appear in random order.
- Ignoring caching — after adding a property, you need to clear the form cache.
How to Get Property Values in Code
$order = \Bitrix\Sale\Order::load($orderId); $propCollection = $order->getPropertyCollection(); $phone = $propCollection->getPhone(); $email = $propCollection->getUserEmail(); // Custom property by code $innProp = $propCollection->getItemByOrderPropertyCode('INN'); $innValue = $innProp ? $innProp->getValue() : null; What's Included in a Turnkey Order Property Setup?
- Analysis of checkout form requirements (person types, delivery, 54-FZ)
- Designing the property and group schema
- Implementation via API or admin interface
- JavaScript conditional visibility logic
- Custom server-side validation (INN, promo codes, etc.)
- Testing all fill scenarios
- Documentation and support
Timeline and Cost Estimates
- Adding 3–5 simple properties with person-type visibility: 2–4 hours, starting at $500.
- Complex setup with custom validation, JS conditional visibility, and external integration: 1–2 business days, starting at $1,500.
Exact cost is determined individually after analyzing your needs. Contact us for a free consultation — we will evaluate your project within one business day. Order custom order property configuration and get a form that boosts conversion and reduces legal risks. Get a consultation on optimizing your checkout form — our specialists will help design a solution tailored to your business. Our experience guarantees seamless integration and compliance with 54-FZ.

