Налаштування вивантаження замовлень з 1С-Бітрікс у 1С
Вивантаження замовлень — перший етап двостороннього обміну. Сайт формує XML та віддає його 1С при запиті. Розібратися з налаштуванням нескладно, але є деталі, які визначають, чи потраплять до 1С всі потрібні дані в правильному форматі.
Увімкнення вивантаження замовлень
Налаштування → Налаштування продуктів → Інтернет-магазин → Обмін з 1С → Замовлення:
- Вивантажувати замовлення: так
- Статуси замовлень для вивантаження: вибрати потрібні. Найчастіше «Новий» та «Оплачений»; скасовані замовлення вивантажувати не потрібно — вони створюють зайві документи в 1С
- Вивантажувати замовлення, створені не раніше: обмежити історію, якщо магазин працював без 1С — не потрібно тягнути замовлення за кілька років
Склад XML замовлення
Стандартний XML замовлення включає реквізити покупця, позиції з кількістю та цінами, обрану доставку, властивості замовлення. Спрощена структура:
<Документ>
<Ід>ORDER_ID</Ід>
<Номер>ACCOUNT_NUMBER</Номер>
<Дата>2024-03-15</Дата>
<Контрагенти>
<Контрагент>
<Ід>USER_1C_ID</Ід>
<Найменування>Іванов Іван</Найменування>
</Контрагент>
</Контрагенти>
<Товари>
<Товар>
<Ід>PRODUCT_1C_ID</Ід>
<Кількість>2</Кількість>
<ЦінаЗаОдиницю>1500</ЦінаЗаОдиницю>
</Товар>
</Товари>
<Вартість>3000</Вартість>
</Документ>
Для передачі товару в 1С критично наявність <Ід> — ідентифікатора товару з 1С, що зберігається у властивості CML2_LINK елемента інфоблоку. Якщо товар створений на сайті вручну без цієї властивості — в 1С він потрапить як «невідома номенклатура», що створює ручну роботу для оператора 1С.
Передача реквізитів покупця
Для фізичних осіб стандартний набір реквізитів (ім'я, телефон, адреса) передається автоматично з властивостей замовлення. Юридичні особи вимагають додаткових даних: ЄДРПОУ, КПП, найменування організації. Ці дані зберігаються в окремих властивостях замовлення і додаються в XML через обробник:
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderExport1C',
function(&$arOrder) {
$arOrder['COMPANY'] = $arOrder['PROPS']['COMPANY']['VALUE'];
$arOrder['INN'] = $arOrder['PROPS']['INN']['VALUE'];
$arOrder['KPP'] = $arOrder['PROPS']['KPP']['VALUE'];
}
);
Нумерація замовлень
1С шукає замовлення за номером <Номер> з XML. За замовчуванням Бітрікс передає ACCOUNT_NUMBER — наприклад, 1000423. Якщо в 1С вже існують документи з такими номерами з іншої системи — виникнуть конфлікти. Префікс вирішує проблему:
// У налаштуваннях обміну або обробнику
$arOrder['ACCOUNT_NUMBER'] = 'WEB-' . $arOrder['ACCOUNT_NUMBER'];
Доставка та оплата в XML замовлення
Служба доставки та спосіб оплати передаються окремими блоками:
<ЗначенняРеквізитів>
<ЗначенняРеквізиту>
<Найменування>СпосібОплати</Найменування>
<Значення>Оплата карткою онлайн</Значення>
</ЗначенняРеквізиту>
<ЗначенняРеквізиту>
<Найменування>СпосібДоставки</Найменування>
<Значення>Кур'єрська доставка</Значення>
</ЗначенняРеквізиту>
</ЗначенняРеквізитів>
Найменування в 1С повинні збігатися з тим, що передає Бітрікс — інакше в 1С створяться нові елементи довідника «Способи доставки» при кожному неспівпаданні.
Терміни налаштування
Налаштування вивантаження замовлень у стандартному сценарії — 2–4 години. З передачею реквізитів юросіб, нестандартних властивостей та кастомною нумерацією — 4–8 годин.







