Налаштування вивантаження штрих-кодів з 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С-Бітрікс

Штрихкоди на сайті — не лише естетика картки товару. Це ключ до швидкого пошуку (покупець сканує упаковку), до інтеграції з маркетплейсами (вимагають EAN), до систем автоматичної ідентифікації в B2B. У 1С штрихкоди зберігаються в окремому регістрі, і їх передача в Бітрікс — окреме завдання, яке не покривається стандартним CommerceML «з коробки».

Як штрихкоди зберігаються в 1С

У 1С:УТ 11 та інших конфігураціях штрихкоди зберігаються в регістрі відомостей ШтрихкодиНоменклатури. Структура:

  • Номенклатура — посилання на довідник
  • Характеристика — якщо штрихкод прив'язаний до конкретної характеристики (SKU)
  • Одиниця виміру — EAN для штуки, коробки, піддону можуть різнитися
  • Штрихкод — рядок (EAN-8, EAN-13, Code128, QR, Datamatrix)
  • Тип штрихкоду — EAN13, EAN8, Code128 тощо

Один товар може мати кілька штрихкодів:

  • EAN-13 для одиниці (штуки)
  • EAN-13 для упаковки (6 штук)
  • Code128 для піддону
  • Додатковий штрихкод постачальника

CommerceML та штрихкоди: стандартний спосіб

У CommerceML 2.08 є тег Штрихкод — але підтримка його в стандартному модулі обміну Бітрікс обмежена. Штрихкод передається як додатковий реквізит або через спеціальний тег всередині <Товар>:

<Товар>
  <Ід>товар-guid</Ід>
  <Найменування>Приклад товару</Найменування>
  <Штрихкод>4607025491117</Штрихкод>
</Товар>

Деякі версії модуля обміну Бітрікс читають цей тег і записують у властивість інфоблока CML2_BAR_CODE. Перевірте: якщо властивість CML2_BAR_CODE існує після першого імпорту — штрихкод передається стандартно.

Якщо ні — потрібен обробник події імпорту.

Кастомний обробник для множинних штрихкодів

Для передачі кількох штрихкодів (по одиницях виміру) стандартного тегу недостатньо. Використовуємо ДодатковіРеквізити:

<ДодатковіРеквізити>
  <ЗначенняРеквізиту>
    <Найменування>ШтрихкодШтука</Найменування>
    <Значення>4607025491117</Значення>
  </ЗначенняРеквізиту>
  <ЗначенняРеквізиту>
    <Найменування>ШтрихкодКоробка</Найменування>
    <Значення>4607025491124</Значення>
  </ЗначенняРеквізиту>
</ДодатковіРеквізити>

У Бітрікс створюємо властивості інфоблока BARCODE_UNIT та BARCODE_BOX з типом «Рядок». Обробник події OnIBlockCMLImport2ElementAdd заповнює ці властивості:

AddEventHandler('catalog', 'OnIBlockCMLImport2ElementAdd',
    'fillBarcodeProperties');

function fillBarcodeProperties(&$arFields, &$arProps, $arXML) {
    if (isset($arXML['BARCODE_UNIT'])) {
        $arProps['BARCODE_UNIT'] = $arXML['BARCODE_UNIT'];
    }
    if (isset($arXML['BARCODE_BOX'])) {
        $arProps['BARCODE_BOX'] = $arXML['BARCODE_BOX'];
    }
}

Штрихкоди у торгових пропозицій (SKU)

Якщо штрихкод прив'язаний до характеристики (наприклад, різні EAN у червоної та синьої футболки), потрібно передавати його на рівні пропозиції, а не товару. У XML пропозиції:

<Пропозиція>
  <Ід>товар-guid#характеристика-guid</Ід>
  <Штрихкод>4607025491131</Штрихкод>
</Пропозиція>

В інфоблоці пропозицій Бітрікс створюємо властивість BARCODE і заповнюємо її аналогічним обробником, але вже для події OnIBlockCMLImport2OfferAdd.

Пошук за штрихкодом на сайті

Після заповнення властивості BARCODE пошук за штрихкодом реалізується через стандартний компонент пошуку Бітрікс або кастомно:

$result = CIBlockElement::GetList(
    [],
    [
        'IBLOCK_ID' => CATALOG_IBLOCK_ID,
        'PROPERTY_BARCODE' => $scannedCode,
    ],
    false,
    false,
    ['ID', 'NAME', 'DETAIL_PAGE_URL']
);

Для мобільного сайту — підключити бібліотеку для сканування штрихкоду через камеру (ZXing або QuaggaJS). Користувач сканує штрихкод упаковки — сайт миттєво відкриває картку товару.

Кейс: B2B-майданчик з EDI

Виробник продуктів харчування з EDI-інтеграцією: рітейлери вимагають EAN-13 на кожну позицію прайс-листа. Штрихкоди ведуться в 1С, але історично не вивантажувалися на B2B-портал.

Завдання: додати EAN-13 до кожної позиції в каталозі B2B-порталу, щоб рітейлери могли копіювати їх при завантаженні у свої системи.

Зробили одноразове вивантаження всіх штрихкодів з 1С (зовнішня обробка → CSV), завантажили в Бітрікс через скрипт масового оновлення властивості BARCODE. Час: 4 години на 12 тис. позицій.

Налаштували подальшу синхронізацію при обміні: нові товари приходять зі штрихкодом у ДодатковіРеквізити, обробник заповнює властивість. Зміна штрихкоду існуючої позиції — через той самий механізм.