Настройка свойств заказа 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка свойств заказа 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка свойств заказа 1С-Битрикс

Свойства заказа — это дополнительные поля, которые покупатель заполняет при оформлении. Стандартная поставка 1С-Битрикс включает базовый набор: имя, телефон, email, адрес доставки. Большинство проектов рано или поздно упираются в специфические требования: юридические реквизиты для B2B-покупателей, поле для промокода, выбор подарочной упаковки, согласие с конкретными условиями договора или загрузка документа. Всё это реализуется через механизм свойств заказа.

Где хранятся свойства заказа

Свойства заказа в D7 (модуль sale) — отдельные сущности, управляемые через Bitrix\Sale\Internals\OrderPropsTable. Административный путь: «Интернет-магазин → Настройки → Свойства заказа».

Каждое свойство привязывается к группе свойств (ORDER_PROPS_GROUP), которая соответствует типу персоны (физическое / юридическое лицо) и способу доставки. Свойства отображаются или скрываются в зависимости от этих выборов — это ключевая логика условной видимости.

Типы свойств

Тип Код Применение
Строка TEXT Имя, комментарий, ИНН
Список SELECT Фиксированные варианты выбора
Флаг CHECKBOX Согласие с условиями
Дата DATE Желаемая дата доставки
Местоположение LOCATION Интеграция с геовиджетом
Файл FILE Загрузка документов

Добавление свойства через API

При миграционных скриптах или автоматизированном развёртывании:

use Bitrix\Sale\Internals\OrderPropsTable;

$result = OrderPropsTable::add([
    'PERSON_TYPE_ID' => 1, // 1 - физлицо, 2 - юрлицо
    'NAME'           => 'ИНН организации',
    'CODE'           => 'INN',
    'TYPE'           => 'TEXT',
    'REQUIRED'       => 'Y',
    'SORT'           => 100,
    'GROUP_ID'       => 1,
    'PROPS_GROUP_ID' => 2,
]);

if ($result->isSuccess()) {
    $newId = $result->getId();
}

Условная видимость свойств

Привязка свойства к типу персоны обеспечивает базовую условную видимость. Для более гибкой логики — например, показывать поле «Этаж» только при курьерской доставке — нужна JavaScript-обработка:

BX.addCustomEvent('onDeliveryChanged', function(deliveryId) {
    const floorField = document.querySelector('[data-prop-code="FLOOR"]');
    const courierIds = [5, 7, 12]; // ID курьерских служб

    if (floorField) {
        floorField.closest('.sale-field-wrap').style.display =
            courierIds.includes(parseInt(deliveryId)) ? '' : 'none';
    }
});

Валидация на стороне сервера

Кастомная валидация через обработчик OnSaleOrderBeforeSaved:

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\Sale\ResultError('Некорректный ИНН'),
                'sale'
            );
        }
    }

    return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS);
}

Получение значений свойств в коде

$order = \Bitrix\Sale\Order::load($orderId);
$propCollection = $order->getPropertyCollection();

$phone = $propCollection->getPhone();
$email = $propCollection->getUserEmail();

// Произвольное свойство по коду
$innProp = $propCollection->getItemByOrderPropertyCode('INN');
$innValue = $innProp ? $innProp->getValue() : null;

Сроки выполнения

Добавление 3–5 простых свойств с настройкой видимости по типу персоны — 2–4 часа. Комплексная настройка с кастомной валидацией, условной JavaScript-видимостью и интеграцией с внешней системой — 1–2 рабочих дня.