Налаштування трансформації даних при парсингу для 1С-Бітрікс

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

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

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1461
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    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С-Бітрікс часта ситуація: товари завантажуються, але фільтри не працюють, ціни відображаються з валютою, а категорії розкидані по дереву. Без шару трансформації між парсером та імпортером дані потрапляють «як є» — і ламають структуру каталогу. Наприклад, рядок із ціною потрапляє в поле ціни, і сортування за ціною перестає працювати. Ми налаштовуємо трансформацію під ключ і гарантуємо, що після імпорту каталог залишається чистим та консистентним. Оцінимо ваш проект за 1 день — просто зв'яжіться.

Офіційна документація 1С-Бітрікс підкреслює важливість попередньої валідації даних при імпорті.

Які трансформації потрібні при парсингу?

Нормалізація тексту — стандартне очищення від зайвих символів та приведення до єдиного регістру. Наприклад, ШУРУПОВЕРТ BOSCH GSR 18V стане Шуруповерт Bosch GSR 18V. Використовуємо mb_convert_case() з whitelist-ом для артикулів та брендів. Також видаляємо HTML-сутності (& → &) та нерозривні пробіли. Помилки в назвах — причина до 30% відбракування товарів при ручній перевірці.

Нормалізація цін — витягуємо число з рядка ціни за допомогою регулярного виразу та наступною заміною коми. Конвертуємо валюту за курсом НБУ або фіксованим значенням. Округлюємо до двох знаків.

Нормалізація характеристик — одиниці виміру парсяться через /^([\d.,]+)\s*([а-яА-Яa-zA-Z]+)$/u, булеві значення приводяться до Y/N, спискові властивості маппяться на XML_ID через конфігураційний масив.

Обробка зображень — часто парсери качають картинки з дублюючими іменами. Ми обчислюємо md5-хеш кожного файлу і порівнюємо з уже завантаженими. Якщо хеш збігається — картинка не додається. Це запобігає розростанню файлового сховища і прискорює імпорт. Також налаштовуємо автоматичну генерацію прев'юшок через Bitrix Imaging.

Як мапити категорії без ризику?

Структура категорій джерела рідко збігається з розділами інфоблоку. Використовуємо таблицю відповідностей:

$categoryMap = [ 'Електроінструмент/Дрелі' => 15, 'Електроінструмент/Шуруповерти' => 16, 'Ручний інструмент/Викрутки' => 22, ]; $sectionId = $categoryMap[$externalCategory] ?? DEFAULT_SECTION_ID; 

Для нових категорій, відсутніх у маппінгу, товари поміщаються в розділ «Без категорії» із записом у лог. Автоматичне створення розділів небезпечне — одна помилка в даних джерела, і в каталозі з'являються сміттєві розділи. Наш досвід показує, що такий підхід скорочує час на підтримку каталогу в рази.

Чому валідація обов'язкова перед імпортом?

Навіть після трансформації дані можуть містити помилки: пусте ім'я, невірний XML_ID, від'ємна ціна. Валідація — це окремий етап пайплайну між трансформацією та імпортом:

Поле Правило Дія при порушенні
NAME Не пусте, 3–255 символів Пропустити елемент, записати в лог
XML_ID Унікальне, не пусте Пропустити (дубль)
PRICE Число > 0 Встановити 0, позначити для перевірки
SECTION_ID Існуючий розділ Помістити в «Без категорії»
PREVIEW_PICTURE Файл існує, розмір < 10 МБ Імпортувати без картинки

Усі відхилені елементи зберігаються в таблиці parser_rejected із причиною. Це дає можливість розібрати помилки без повторного імпорту.

Що входить у налаштування трансформації під ключ?

  • Аудит вихідних даних та виявлення типових проблем.
  • Проектування ланцюжків правил для кожного поля.
  • Реалізація на PHP з використанням \Bitrix\Main\ORM та подій.
  • Інтеграція з існуючим парсером або імпортером.
  • Тестування на реальній вибірці товарів (мінімум 1000 позицій).
  • Документація за правилами та інструкція для внесення змін.
  • Гарантія 12 місяців на код та підтримка при зміні джерела.
Детальніше про налаштування правилКонфігурація правил дозволяє гнучко змінювати логіку без зміни коду.

Приклад конфігурації правил:

$transformRules = [ 'NAME' => [ ['type' => 'trim'], ['type' => 'mb_title_case'], ['type' => 'max_length', 'value' => 255], ], 'PRICE' => [ ['type' => 'extract_number'], ['type' => 'multiply', 'value' => 1.2], // Націнка 20% ['type' => 'round', 'value' => 2], ], 'PROPERTY_WEIGHT' => [ ['type' => 'extract_number'], ['type' => 'convert_unit', 'from' => 'kg', 'to' => 'g'], ], ]; 

Порівняння: конфігурація vs зашита логіка

Критерій Конфігурація правил Зашита логіка в коді
Час на зміну 5 хвилин 1–3 години + тести
Додаткові витрати Немає Можливі
Ризик помилок Мінімальний Високий
Прозорість Видна в конфігу Неявна

Конфігурований підхід дозволяє змінювати трансформацію без залучення розробника та правки парсера. Для каталогів з частими змінами джерела це суттєво дешевше в довгостроковій перспективі. Таке налаштування окупається в середньому за 2-3 місяці, економлячи на ручній обробці.

Процес роботи та терміни

  1. Аналітика — вивчаємо структуру джерела, виявляємо критичні місця (1–2 дні).
  2. Проектування правил — створюємо конфігурацію під кожен тип поля (1–2 дні).
  3. Реалізація — пишемо класи-трансформери та валідатори (2–3 дні).
  4. Тестування — прогоняємо на реальних даних, виправляємо помилки (1 день).
  5. Деплой — розгортаємо на бойовому сервері, документуємо (1 день).

Орієнтовний термін — від 5 до 8 робочих днів. Підсумкова вартість розраховується індивідуально і залежить від кількості полів та складності трансформацій. Отримайте консультацію з налаштування трансформації вже сьогодні.

Чому ми не рекомендуємо автоматичне створення розділів?

Одного разу ми спостерігали, як парсер створив 500 розділів через невірне поле категорії в джерелі. Відновлення зайняло тиждень. Наш підхід — лише ручне або напівавтоматичне маппування з повідомленням адміністратора. Це підвищує надійність і дозволяє зберегти чистоту каталогу.

Наш досвід — 10+ років роботи з 1С-Бітрікс та більш ніж 500 проектів з інтеграції та парсингу. Офіційна документація Бітрікс рекомендує використовувати інфоблоки версії 2.0 і теговане кешування для великих каталогів. Ми дотримуємося цих рекомендацій і гарантуємо, що ваш каталог буде працювати швидко та без збоїв.

Зв'яжіться з нами — оцінимо ваш проект і підготуємо конфігурацію трансформації за 1–2 дні. Замовте налаштування трансформації та забудьте про проблеми з імпортом.