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

В інтернет-магазині електроніки покупець вводить серійний номер — і бачить гарантійний термін, модель, дату продажу. Або клієнт продуктового магазину вибирає молоко і бачить, що в наявності партія з терміном придатності до 25 травня. Без налаштування вивантаження серій і партій з 1С в Бітрікс такі с
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування вивантаження серійних номерів і партій з 1С в Бітрікс
Простий
~1 день

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

Часті запитання

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1460
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    764
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    810
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1166

В інтернет-магазині електроніки покупець вводить серійний номер — і бачить гарантійний термін, модель, дату продажу. Або клієнт продуктового магазину вибирає молоко і бачить, що в наявності партія з терміном придатності до 25 травня. Без налаштування вивантаження серій і партій з 1С в Бітрікс такі сценарії неможливі. Стандартний обмін 1С-Бітрікс через CommerceML передає ціни, залишки та описи — але не серійні номери та партії. Для електроніки, медтехніки, продуктів та фармацевтики це критично: без серійного номера неможливо організувати гарантійне обслуговування, без партіонного обліку — відстежити терміни придатності. Доводиться доопрацьовувати обмін, щоб сайт отримував ці дані. Наш досвід показує: навіть мінімальна передача (наприклад, тільки термін придатності) дає бізнесу конкурентну перевагу і знижує кількість повернень.

Чому стандартний обмін не підходить для серій і партій?

CommerceML (стандарт передачі даних між 1С та Бітрікс) не оперує серіями та партіями напряму. В XML-структурах CommerceML немає тегів для серійних номерів у залишках товарів. Доводиться розширювати формат: додавати в документ ДодатковіРеквізити або створювати окремі файли обміну. Альтернатива — REST API, але 1С УТ/КА не надають готових REST-сервісів для партіонного обліку. Стандарт CommerceML не підтримує серійні номери (див. офіційну документацію).

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

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

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

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

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

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

Сценарій Опис Складність реалізації
Перевірка серійного номера Покупець вводить серійний номер на сайті та отримує інформацію про гарантію, дату виробництва Низька — достатньо API-запиту до 1С
Термін придатності в картці товару В картці товару відображається найближчий термін придатності від наявних партій Середня — потрібне налаштування регламентного завдання в 1С та обробка в Бітрікс
Вибір конкретної партії покупцем Покупець бачить список доступних партій (дати розливу, партії поставки) та обирає потрібну Висока — кожна партія стає окремим SKU, потрібен HighloadBlock, складна логіка

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

Найбільш затребуваний випадок — передача найближчого терміну придатності з 1С на сайт. В 1С (на стороні УТ/КА) створюємо регламентне завдання:

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

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

Як передаються серійні номери при замовленні?

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

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

// Обробник оновлення замовлення з 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С резервує відповідну партію і може повернути інформацію про неї (дата придатності зарезервованої партії) у відповіді на замовлення.

Чому REST API краще за CommerceML для передачі серій?REST API дозволяє обмінюватися даними без прив'язки до XML-схеми CommerceML. Серійні номери передаються у форматі JSON, що простіше обробляти. Швидкість обміну збільшується в 2-3 рази, а помилки синтаксису виключені.

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

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

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

1С резервує конкретну партію — помилок по терміну придатності немає. Економія клієнта — зниження браку за термінами на 20%.

Що входить в роботу

  • Аудит поточного обміну 1С-Бітрікс
  • Проектування схеми передачі серій/партій
  • Доробка 1С (регламентні завдання, допреквізити)
  • Доробка Бітрікс (властивості, HL-блоки, обробники замовлень)
  • Тестування та запуск
  • Документація та навчання
  • Підтримка після впровадження

Ми працюємо з 1С більше 7 років, виконали понад 30 інтеграцій з Бітрікс. Оцінимо ваш проект за 1 день — зв'яжіться з нами. Замовте налаштування вивантаження серій і партій під ключ. Отримайте консультацію прямо зараз.