Інтеграція парсера з модулем імпорту 1С-Бітрікс

Інтеграція парсера з модулем імпорту 1С-Бітрікс Парсер зібрав 40 000 товарів з маркетплейсу, але імпорт у [1С-Бітрікс](https://ru.wikipedia.org/wiki/1%D0%A1-%D0%91%D0%B8%D1%82%D1%80%D0%B8%D0%BA%D1%81) закінчився помилками? Стандартний модуль імпорту не вміє розбирати ієрархію категорій, тягнути з
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Інтеграція парсера з модулем імпорту 1С-Бітрікс
Середній
~1-2 тижні

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

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1462
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    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

Інтеграція парсера з модулем імпорту 1С-Бітрікс

Парсер зібрав 40 000 товарів з маркетплейсу, але імпорт у 1С-Бітрікс закінчився помилками? Стандартний модуль імпорту не вміє розбирати ієрархію категорій, тягнути зображення за URL та мапити динамічні атрибути. Ми стикалися з цим десятки разів — і виробили надійний алгоритм інтеграції. Розробляємо адаптер, який перетворює сирі дані в коректну структуру Бітрікса. Беремо інтеграцію під ключ: від маппінгу до налаштування розкладу оновлень. Ми реалізували понад 50 подібних інтеграцій для великих каталогів.

Типова ситуація: штатний імпорт CSV Бітрікса не підтримує черги елементів, що призводить до падіння продуктивності. Через це імпорт 40 000 товарів займає 2 години з 30% помилок. Адаптер для імпорту даних вирішує ці проблеми за один прогін — час скорочується до 20 хвилин, помилки — менше 1%.

Як працює модуль імпорту в Бітріксі

Нативний імпорт каталогу використовує модуль catalog і компонент bitrix:catalog.import.csv. Згідно з офіційною документацією 1С-Бітрікс, стандартний імпорт не розрахований на складні структури категорій. Таблиці, з якими працює імпорт:

  • b_iblock_element — елементи інфоблоку (товари)
  • b_iblock_element_prop_s* / b_iblock_element_prop_m* — значення властивостей
  • b_catalog_price — ціни
  • b_catalog_product — параметри товару (вага, розміри, тип)

Стандартний CSV-імпорт через CIBlockElement::Add() і CIBlockElement::Update() — робочий, але не масштабується при обсягах від 10 000 товарів: кожен виклик робить окремий запит до БД.

Де ламається наївна інтеграція

Кейс. Парсер збирає 40 000 товарів з маркетплейсу, записує в CSV з колонками name, price, category_path, images[], attrs{}. Запускається стандартний імпорт — через 2 години завершується з 30% помилок:

  • Категорії створюються як плоский список замість дерева, тому що парсер записує шлях рядком «Електроніка / Смартфони / Apple», а імпортер не розбирає ієрархію.
  • Зображення не підтягуються — парсер передає URL, імпортер очікує локальний шлях або base64.
  • Властивості (атрибути) ігноруються — CSV-імпорт не підтримує динамічні колонки.

Як адаптер вирішує проблему нормалізації категорій?

Адаптер розбирає рядок категорії, рекурсивно створює розділи через CIBlockSection::Add(). Маппінг шлях → ID розділу кешується в b_iblock_section, щоб не перестворювати вже існуючі. Для 40 000 товарів з глибиною категорій до 5 рівнів ця операція займає близько 10 хвилин — в 6 разів швидше поштучного створення.

Чому пакетний запис критичний?

Пакетний запис через транзакцію швидший за поштучне додавання в 10 разів. Замість CIBlockElement::Add() у циклі використовуємо подійну модель і черги:

// Відключаємо пошук і події на час імпорту CIBlock::DisableOptimization(); $GLOBALS['BX_DONT_WRITE_INDEX'] = true; // Пакет по 500 елементів через транзакцію $DB->StartTransaction(); foreach ($batch as $item) { $el = new CIBlockElement(); $el->Add($fields, false, false, false); } $DB->Commit(); 

Після імпорту перебудовуємо пошуковий індекс: CSearch::ReIndexAll() або агент bitrix:search.reindex.

Порівняння підходів: нативний імпорт vs адаптер

Характеристика Нативний імпорт Адаптер
Час імпорту 40 000 товарів ~2 години ~20 хвилин
Помилки до 30% менше 1%
Категорії плоский список ієрархія
Зображення не підтримує завантаження за URL
Властивості тільки статичні динамічний маппінг
Детальна схема роботи адаптера

Адаптер отримує дані від парсера, проходить наступні етапи:

  1. Прийом даних (CSV/JSON/XML) через файл або API.
  2. Розбір і валідація: відбраковка записів з некоректними полями.
  3. Нормалізація категорій: розбір шляху, створення розділів.
  4. Маппінг властивостей: зіставлення атрибутів парсера з інфоблоком.
  5. Пакетний запис в інфоблок з використанням транзакцій.
  6. Обробка зображень: завантаження за URL, прив'язка до товару.
  7. Відправка звіту і перебудова пошукового індексу.

Як налаштувати адаптер за 3 кроки?

  1. Створити маппінг полів. Вказуємо, яке поле парсера відповідає назві, ціні, категорії та властивостям. Якщо парсер додає нові атрибути, адаптер автоматично розширює інфоблок.
  2. Перевірити категорії. Запускаємо пробну нормалізацію: адаптер створює дерево розділів із рядка шляху. Результат можна відкотити, якщо категорії не збігаються.
  3. Запустити тестовий імпорт. Імпортуємо 100-200 товарів, перевіряємо коректність даних і відсутність дублів. Після цього запускаємо повний прогін.

Синхронізація при оновленнях

Зовнішній ID товару (артикул або URL джерела) зберігається у властивості EXTERNAL_ID або в XML_ID елемента. Перед створенням перевіряємо наявність через CIBlockElement::GetList(['=XML_ID' => $externalId]) — оновлюємо існуючий або створюємо новий. Дублі виключені.

Що входить в інтеграцію?

Етап Що робимо Результат
Аналіз Вивчаємо структуру парсера, маппінг полів Схема маппінгу, документація
Розробка Пишемо адаптер, обробку категорій і зображень Код адаптера, код міграцій
Тестування Прогін на реальних даних (1000+ позицій) Звіт про помилки, виправлення
Деплой Налаштування розкладу, моніторинг, навчання Агенти, логи, інструкція

Додатково надаємо пакет документації, доступ до репозиторію та підтримку протягом місяця після запуску. Ручний імпорт 40 000 товарів обходиться в 30 000 грн за один прогін, адаптер скорочує цю суму до 5 000 грн. Економія на адмініструванні становить до 50 000 грн на місяць.

Розклад і моніторинг

Повторюваний парсинг запускається через агенти Бітрікса (b_agent) або системний cron. Агент викликає адаптер, який логує результат у користувацький інфоблок: дата, кількість оброблених/помилкових записів. При помилці >5% надсилається повідомлення адміністратору через CEvent::Send(). Поріг помилки налаштовується індивідуально. Після імпорту ми вмикаємо теговане кешування для прискорення завантаження каталогу.

Типові терміни

Оцінка часу під кожен проект індивідуальна, але орієнтуйтеся на діапазон: від 1 до 3 робочих днів для стандартної інтеграції. Ми гарантуємо безпомилковий імпорт і надаємо тестовий прогін на ваших даних.

Отримайте консультацію — оцінимо проект за один день і запропонуємо дорожню карту. Замовте інтеграцію парсера з Бітріксом без головного болю.