Налаштування властивостей замовлення 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування властивостей замовлення 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування властивостей замовлення 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 робочі дні.