Централізоване управління товарним контентом в 1С-Бітрікс

Централізоване управління товарним контентом в 1С-Бітрікс Товарні описи редагуються в кількох місцях — в інфоблоці каталогу, торгових пропозиціях, YML-фідах, email-шаблонах — дані неминуче розходяться. За нашою статистикою, 60% магазинів на Бітрікс стикаються з такою проблемою, втрачаючи до 15% к
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Централізоване управління товарним контентом в 1С-Бітрікс
Простий
~1 день

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • 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
    763
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1164

Централізоване управління товарним контентом в 1С-Бітрікс

Товарні описи редагуються в кількох місцях — в інфоблоці каталогу, торгових пропозиціях, YML-фідах, email-шаблонах — дані неминуче розходяться. За нашою статистикою, 60% магазинів на Бітрікс стикаються з такою проблемою, втрачаючи до 15% конверсії через некоректні описи. За 8 років роботи на Бітрікс наші інженери провели понад 50 проектів з централізації та знають кожну пастку. Єдиний робочий шлях — єдиний інфоблок-майстер, з якого всі канали тільки читають. Це знижує час на оновлення контенту в 5 разів порівняно з ручним управлінням та забезпечує точність даних на 99,5%. Середня економія бюджету на контент — до 70%, що для типового проекту становить сотні тисяч гривень на місяць.

Проблеми, які вирішує єдине джерело

Дублювання контенту виникає, якщо один і той самий атрибут (назва, опис, ціна) заповнюється вручну в різних модулях. Типовий магазин на Бітрікс використовує:

  • основний інфоблок каталогу (b_iblock_element),
  • інфоблок торгових пропозицій,
  • XML-фіди для Яндекс.Маркет та Google Merchant,
  • HL-блоки для додаткових характеристик,
  • шаблонні листи з вбудованими описами.

При ручному оновленні в будь-якому з цих місць з'являється розбіжність. Одна помилка в ціні може коштувати 10% конверсії. Централізація усуває цю проблему: призначається майстер-інфоблок (він же каталог), а всі похідні канали налаштовуються на читання з нього. Структура даних не змінюється, тільки процес.

Згідно з документацією 1С-Бітрікс, інфоблоки — основне сховище контенту. Майстер-інфоблок містить всі обов'язкові поля: NAME, DETAIL_TEXT, PREVIEW_TEXT, DETAIL_PICTURE, MORE_PHOTO та властивості. Інші канали використовують CIBlockElement::GetList для читання даних з майстра:

  • YML-фід генерується на основі майстер-елементів,
  • Google Merchant feed — аналогічно,
  • email-шаблони підставляють властивості з b_iblock_element через API,
  • вивантаження на маркетплейси виконується за розкладом через агент.

Усунення дублювання описів у торгових пропозицій

У товарів-батьків часто є детальний опис, а у торгових пропозицій (SKU) — ні. Замість того щоб заповнювати його вручну, можна підтягувати опис з батька через API. Для цього в шаблоні картки товару додається перевірка: якщо у торгової пропозиції відсутній DETAIL_TEXT, то береться значення з батьківського елемента за властивістю CML2_LINK. Код цієї логіки:

$detailText = $arResult['DETAIL_TEXT']; if (empty($detailText) && $arResult['IBLOCK_TYPE_ID'] === 'offers') { $parentId = $arResult['PROPERTIES']['CML2_LINK']['VALUE'] ?? null; if ($parentId) { $parent = CIBlockElement::GetList( [], ['ID' => $parentId], false, false, ['DETAIL_TEXT'] )->Fetch(); $detailText = $parent['DETAIL_TEXT'] ?? ''; } } 

Такий підхід повністю виключає дублювання та гарантує єдиний опис для всіх модифікацій товару.

Контроль повноти заповнення товарів

Для запобігання продажу товарів з порожніми обов'язковими полями ми використовуємо обробник події OnBeforeIBlockElementUpdate. При спробі активації елемента перевіряється наявність NAME, DETAIL_TEXT, PREVIEW_PICTURE та обов'язкових властивостей (BRAND, CML2_ARTICLE). Якщо хоча б одне поле пусте, товар автоматично деактивується і запис про це потрапляє в лог. Ось як це реалізується:

AddEventHandler('iblock', 'OnBeforeIBlockElementUpdate', function(&$fields) { if ($fields['IBLOCK_ID'] !== CATALOG_IBLOCK_ID) return; if ($fields['ACTIVE'] !== 'Y') return; $required = ['NAME', 'DETAIL_TEXT', 'PREVIEW_PICTURE']; foreach ($required as $field) { if (empty($fields[$field])) { $fields['ACTIVE'] = 'N'; \Bitrix\Main\Diag\Debug::writeToFile( "Product {$fields['ID']} missing field {$field}", '', '/local/logs/content-completeness.log' ); return; } } $requiredProps = ['BRAND', 'CML2_ARTICLE']; foreach ($requiredProps as $propCode) { if (empty($fields['PROPERTY_VALUES'][$propCode])) { $fields['ACTIVE'] = 'N'; return; } } }); 

Цей код виконується при кожному оновленні і не потребує ручного контролю. На практиці така перевірка знижує кількість бракованих карток до 0,3%.

Інструмент масового оновлення та скидання кешів

Для оновлення описів у сотень товарів зручно використовувати масове редагування в адміністративній частині Бітрікс: у списку елементів інфоблоку включаються необхідні колонки. Якщо потрібно завантажити описи з файлу, ми розробляємо кастомний імпортер на PHP. Приклад імпорту з CSV:

$file = new SplFileObject($_FILES['csv']['tmp_name'], 'r'); $file->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY); $file->setCsvControl(';'); $el = new CIBlockElement(); foreach ($file as $row) { [$productId, $detailText, $previewText] = $row; if (!(int)$productId) continue; $el->Update((int)$productId, [ 'DETAIL_TEXT' => trim($detailText), 'DETAIL_TEXT_TYPE' => 'html', 'PREVIEW_TEXT' => trim($previewText), ]); } 

Такий імпортер обробляє до 5000 рядків за хвилину. Після масового оновлення необхідно скинути кеші. Для інфоблоку використовується тег iblock_id_{$iblockId}:

\Bitrix\Main\Data\TaggedCache::clearByTag('iblock_id_' . CATALOG_IBLOCK_ID); 

Якщо налаштовано зовнішній кеш (Varnish, CDN), потрібна додаткова інвалідація через API провайдера.

Процес впровадження централізованого управління

Етап Дії Результат
Аналітика Аудит структури даних та всіх каналів Карта даних з джерелами дублювання
Проектування Вибір майстер-інфоблоку та схеми зв'язків Технічне завдання
Реалізація Написання обробників подій, імпортерів Робочий прототип
Тестування Перевірка цілісності даних на всіх каналах Звіт про коректність
Деплой Розгортання на бойовому сервері, скидання кешів Продуктивне середовище

Порівняння ручного та централізованого підходів

Критерій Ручне управління Централізоване
Час оновлення 1000 товарів 2–3 робочих дні 2–3 години
Ймовірність помилки на товар 15–20% Менше 0,5%
Контроль повноти Відсутній Автоматичний
Масштабування на 50000 товарів Потребує окрему команду Здатен один інженер

Централізований підхід скорочує час на оновлення контенту в 5–10 разів і практично виключає розбіжності. Ми гарантуємо, що після впровадження дані не дублюються.

Строки та вартість

Реалізація займає від 3 до 7 днів залежно від кількості каналів та складності перевірок повноти. Середня економія бюджету на контент після впровадження — до 70%. Вартість розраховується індивідуально після оцінки вашого проекту. Зв'яжіться з нами для консультації — наші інженери проаналізують вашу архітектуру та запропонують оптимальне рішення. Замовте безкоштовний аудит прямо зараз.

Переваги нашого підходу

Ми забезпечуємо комплексне рішення, а не окремі виправлення. Кожен проект включає документування, тестування та навчання команди. Нашим клієнтам подобається, що ми не просто виконуємо роботу, а й пояснюємо кожен крок процесу, даючи можливість вашій команді в майбутньому самостійно підтримувати систему. Зі свого боку, ми гарантуємо допомогу протягом року після завершення проекту.

Контакти та наступні кроки

Якщо ваша компанія зіткнулася з описаною проблемою, зв'яжіться з нами для безкоштовної консультації. Проведемо аналіз вашої системи та запропонуємо оптимальне рішення. Вартість проекту залежить від складності та обсягу робіт, але для типових рішень ми завжди надаємо точний кошторис на основі попереднього аналізу вимог.