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

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

Серійний та партіонний облік у 1С — це окремий пласт функціональності, який у стандартний CommerceML практично не включений. Тим не менш ряд галузей без цього не працює: електроніка (серійні номери), медтехніка, продукти харчування (партії з терміном придатності), фармацевтика. Дані про серії потрібні на сайті — хоча б у скороченому вигляді.

Що таке серії та партії в 1С

Серія — унікальний ідентифікатор конкретного екземпляра товару (серійний номер). Один телевізор = одна серія. Облік у регістрі ТовариНаСкладах ведеться в розрізі серій.

Партія — група товарів одного приходу із загальними характеристиками (дата виготовлення, термін придатності, номер партії виробника). Один ящик молока певної дати = одна партія. На складі може бути 10 ящиків двох різних партій.

У 1С:УТ 11 серійний облік вмикається в налаштуваннях номенклатури: Використовувати серії. Партіонний облік — окреме налаштування. Обидва механізми збільшують деталізацію складських даних і ускладнюють обмін із сайтом.

Що реально потрібно на сайті

Не завжди потрібно передавати всі серії та партії. Типові сценарії:

Сценарій 1: Перевірка серійного номера. Покупець вводить серійний номер на сайті та дізнається інформацію про товар (гарантія, дата виробництва). Для цього не потрібне вивантаження серій у каталог — потрібен API-запит до 1С за конкретним серійним номером.

Сценарій 2: Термін придатності в картці товару. Для продуктів харчування або медтоварів — показувати на сайті найближчий термін придатності наявної партії. Це вже вивантаження даних партії як атрибута товару.

Сценарій 3: Вибір партії покупцем. Рідкісний випадок: покупець бачить доступні партії (наприклад, різні дати розливу вина) і вибирає потрібну. Це складна реалізація — кожна партія = окремий SKU.

Технічна реалізація: термін придатності як атрибут

Найбільш затребуваний випадок — передача найближчого терміну придатності з 1С на сайт.

У 1С (на стороні УТ/КА) створюємо регламентне завдання:

  1. Для кожної позиції номенклатури з партіонним обліком — визначаємо найближчу дату закінчення терміну придатності з наявних залишків
  2. Записуємо цю дату в ДодатковийРеквізит номенклатури «ТермінПридатності»
  3. При наступному обміні цей реквізит потрапить у XML і оновить властивість у 1С-Бітрікс

Альтернатива: прямий HTTP-запит із 1С-Бітрікс до сервісу 1С при завантаженні картки товару. Але це створює залежність швидкості сторінки від швидкості 1С.

Серійні номери при замовленні

Якщо покупець замовляє товар із серійним обліком — при відвантаженні з 1С до замовлення прив'язується конкретний серійний номер. Цей номер корисно передати назад у 1С-Бітрікс: в особистому кабінеті покупець бачить серійні номери куплених товарів — це зручно для гарантійного обслуговування.

Зворотна передача серійних номерів: у CommerceML замовлення при оновленні статусу може містити розширені дані. Додаємо в обробку оновлення статусу в 1С-Бітрікс логіку збереження серійних номерів із ДодатковихРеквізитів документа.

// Обробник оновлення замовлення з 1С
function onOrderStatusUpdate($arOrder, $arXML) {
    foreach ($arXML['ITEMS'] as $item) {
        if (!empty($item['SERIAL_NUMBERS'])) {
            saveSerialNumbers(
                $arOrder['ID'],
                $item['PRODUCT_ID'],
                $item['SERIAL_NUMBERS']
            );
        }
    }
}

Партіонний облік і резервування

При оформленні замовлення на сайті та передачі в 1С — потрібно зарезервувати конкретну партію (особливо при короткому терміні придатності). Стандартний механізм резервування в 1С резервує партію автоматично за алгоритмом FEFO (First Expired First Out — спочатку та, що раніше закінчиться).

На сайті покупець не вибирає партію — це робить 1С. Сайт лише передає кількість. 1С резервує підходящу партію і може повернути інформацію про неї (дата придатності зарезервованої партії) у відповіді на замовлення.

Кейс: виробник продуктів харчування

Виробник молочної продукції: прямі B2B-продажі з сайту ритейлерам. Кожне замовлення — конкретні SKU з урахуванням партій (дата виробництва, термін придатності). Ритейлер хоче бачити на сайті не просто «молоко 1л», а «молоко 1л, вироблено 10.03, придатне до 20.03».

Реалізували через HighloadBlock «Партії»: при кожному обміні (раз на 2 години) з 1С передається список доступних партій по кожній позиції. У картці товару — випадаючий список «Оберіть дату виробництва». При додаванні в кошик — зберігається ID партії. При передачі замовлення в 1С — GUID партії вказується в реквізитах позиції замовлення.

1С резервує конкретну партію — помилок за терміном придатності немає.