Автонаповнення описів 1С-Битрикс: де розривається ланцюжок даних
Ланцюжок «постачальник — прайс або вивантаження — каталог — картка» складається з чотирьох переходів, і на кожному втрачається частина даних. Назовні це виходить однаково: порожні описи товарів у половини каталогу, ціна оновилася, а текст залишився від попередньої поставки. Нижче — де саме розривається і чому лише імпорт проблему не закриває.
Перший розрив — на боці джерела. У постачальника опис живе у вільному примітці, в окремому файлі або не живе взагалі: у прайсі під нього відведено одну колонку, куди вміщується обрубок на кілька десятків символів.
Імпорт описів із прайсу перенесе цей обрубок коректно — правило відбору спрацює, а на сайті з’явиться текст, який нічим індексувати. Тут допомагає не імпорт, а збірка опису зі структурованих атрибутів: бренд, модель, призначення, комплектація.
Другий розрив — обмін каталогом із 1С. Вивантаження віддає товари та окремий пакет пропозицій; якщо налаштована лише цінова частина, картка отримує ціну й залишок, а текстові властивості надходять порожніми.
Часта причина — властивості прив’язані до блоку пропозицій, а не до товару, або зіставлення полів не покриває користувацькі властивості.
Третій розрив — ручне заповнення карток. Менеджер переносить текст із листа або специфікації, поки позицій десятки; на сотнях процес відстає від поставок, і після першого ж оновлення прайсу описи розходяться з ціною та наявністю.
Далі сторінки потрапляють у «тонкий контент», позиції втрачають видимість, а правки накопичуються в черзі.
Автонаповнення описів 1С-Битрикс має сенс будувати як конвеєр із перевірками на кожному переході: зіставлення полів, правила збірки тексту, валідація перед записом і розбір виключень вручну. Розбираємо, як це влаштовано і що закриває кожну ділянку.
Що дає керований потік даних із зовнішніх джерел
Потік даних із зовнішніх джерел будується як конвеєр із явними правилами на кожному кроці.
Прайс-лист постачальника, вивантаження від виробника або таблиця характеристик приводиться до єдиної структури, позиції зіставляються за артикулом і штрихкодом, після чого шаблон опису за категорією заповнюється значеннями властивостей і записується в інфоблок 1С-Битрикс.
Якщо зіставлення не збіглося або поле надійшло порожнім, товар не публікується мовчки — він потрапляє в чергу виключень із зазначенням причини.
Ефект автоматизації каталогу вимірюється трьома числами. Строк появи опису в нової позиції скорочується з двох-трьох днів ручної роботи до хвилин — товар потрапляє в каталог тим самим прогоном, що й у джерело.
Частка карток, опублікованих без правок контент-команди, сягає 80-90%; решта — усвідомлені виключення, а не пропущений брак.
Повнота карток тримається не на дисципліні редактора, а на обов’язкових властивостях і перевірках перед записом: порожні характеристики, невідповідність одиниць вимірювання та дублі артикулів відсікаються до публікації.
Обсяг ручної роботи контент-команди скорочується до розбору виключень і правки шаблонів замість набору тексту для кожної позиції.
Швидкість виведення позицій задається розкладом обміну: інкрементальна вивантаження зачіпає лише змінені записи, тому оновлення каталогу на десятки тисяч позицій не потребує повного перезапису.
Наші інженери налаштовують правила зіставлення, шаблони описів і журнал прогонів — при зміні формату вивантаження у постачальника потік не розвалюється мовчки, а показує, що саме не збіглося.
Способи автонаповнення: разовий обмін, розклад, події
Вибір режиму — це вибір між свіжістю даних і передбачуваним навантаженням на каталог. Разовий імпорт прайсу закриває старт або велику перебудову асортименту, пакетний обмін — регулярну синхронізацію великими порціями, події — точкові правки. Нижче — порівняння за умовами застосування та за тим, які обмеження накладає кожен режим.
| Режим | Коли підходить | Обмеження |
|---|---|---|
| Разовий імпорт прайсу | Первинне наповнення каталогу, зміна постачальника, разова перебудова асортименту | Ручні правки після завантаження губляться, якщо джерело не розмічено; повторний запуск не повинен дублювати картки |
| Пакетний обмін каталогом | Масове оновлення описів і характеристик порціями | Тривалі транзакції та блокування під час запису — потрібен розмір порції та пауза між пакетами |
| Обмін за розкладом | Ціни, залишки, описи із зовнішніх джерел — раз на годину або на добу | Дані завжди із затримкою; у разі збою вікна потрібне доганяння пропущеного обміну |
| Обмін за подіями | Реакція на зміну картки, складу або замовлення | Залежить від доступності зовнішнього сервісу; черга та повтор при відмові обов’язкові |
Обмеження, спільні для всіх режимів
Наповнення не повинно затирати текст, який правив контент-менеджер, тому позначаються і джерело, і конкретне поле картки. Масовий запис іде порціями з логуванням — інакше збій на середині залишає каталог у проміжному стані.
Окремо планують перебудову пошукового індексу: його навантаження додається до обміну і на слабкому сервері відкладає відгук каталогу.
Порядок впровадження: від розбору джерел до передачі
Впровадження автонаповнення починається не з коду, а з інвентаризації: які джерела реально дають тексти — вивантаження з облікової системи, картки постачальників, таблиці контент-команди, — у якому вигляді вони надходять і як часто змінюються.
Потім проєктуємо правила зіставлення та контур перевірки, щоб перший імпорт не переписав вручну вивірені описи й не наплодив дублів.
- Аудит джерел даних. Зводимо перелік джерел, оцінюємо повноту й актуальність полів, відзначаємо перетини та протиріччя між ними. Фіксуємо власника кожного джерела та частоту оновлень.
- Правила зіставлення товарів. Вибираємо ключ — артикул, штрихкод або комбінацію властивостей — і описуємо поведінку для новинок без ключа, дублів і знятих з продажу позицій. Правило не повинно дозволяти злити дві різні картки в одну.
- Схема обміну та пріоритети джерел. Зіставляємо поля джерела з описом і властивостями картки, задаємо порядок пріоритетів, якщо товар описано в кількох місцях, і правила нормалізації тексту: розмітка, скорочення, одиниці вимірювання.
- Налаштування обміну. Обмін іде за розкладом і порціями, з журналом операцій і повторним запуском без дублів; після обриву зв’язку обробка продовжується з місця зупинки, а не з початку.
- Тестовий контур каталогу. Розгортаємо копію каталогу з реальною структурою та властивостями і проганяємо повний обсяг: заміряємо час обробки, перевіряємо вибірку карток, шукаємо биті зв’язки та порожні поля.
- Приймання обміну та передача. Звіряємо контрольну вибірку до і після, перевіряємо відкат до попередніх описів, узгоджуємо регламент моніторингу та віддаємо документацію з інструкціями для контент-команди.
Що передаємо на руки: конфігурації, схеми, регламенти
Впровадження закрито не тоді, коли обмін відпрацював один раз, а коли замовник може перезапустити, перевірити й полагодити його без нас. Тому на прийманні передаємо комплект артефактів: робочу конфігурацію, схеми та інструкції для чергового адміністратора.
Кожен документ прив’язаний до конкретного вузла — де лежить джерело, чим запускається обмін, як відкочується невдала правка.
- Схема обміну даними — шлях від зовнішнього джерела через проміжний шар до інфоблоків і торгових пропозицій, з точками контролю на кожному кроці.
- Карта відповідності полів — таблиця «джерело → властивість → правило перетворення»: типи, обов’язковість, поведінка при порожньому значенні.
- Конфігурації та налаштування обмінів — вивантаження агентів, обробників, прав доступу й розкладу, щоб розгорнути стенд з нуля.
- Регламент обробки помилок — які відповіді джерела критичні, кому надходить повідомлення, як перезапустити лише частину, що впала, не повторюючи все вивантаження.
- Документація з обміну — формати файлів, обмеження за обсягом і часом відгуку, вимоги до кодування та роздільників.
- Резервні копії налаштувань — версії конфігурації та правил зіставлення з датами, щоб відкотити спірну правку за один крок.
- Інструкція чергового адміністратора — як перевірити повноту описів за вибіркою товарів, куди дивитися при розходженні та коли кликати нас.
Кейс: каталог на десятки тисяч позицій без ручної правки
Каталог на 40 000+ позицій збирався з вивантажень постачальників: частина надходила з готовими описами, частина — лише з назвою, артикулом і характеристиками.
Картка без опису не проходить модерацію на майданчиках і погано індексується, тому менеджери дописували текст руками — 8-10 хвилин на позицію, і свіжа поставка лежала нерозпроданою, доки її не оброблять.
Ми побудували конвеєр автонаповнення на боці інфоблоків 1С-Битрикс: модуль розбору приводить вивантаження до єдиної структури, правила прив’язують шаблон тексту до розділу й набору властивостей, готовий опис перевіряється на дублі, мінімальну довжину та коректність характеристик.
Ключ дедуплікації за набором значущих властивостей — повторний обмін перезаписує лише змінені картки, а не весь каталог.
Метрики до і після
| Показник | До | Після |
|---|---|---|
| Частка карток без опису | 38% | 2% |
| Час від вивантаження до позиції в продажу | 3-5 днів | найближчий цикл обміну, у межах доби |
| Звернення до підтримки про порожні описи | до 60 на місяць | поодинокі |
| Навантаження на каталог під час обміну | просідання вітрини | порційний запис, вітрина не блокується |
Залишок 2% — позиції, за якими у постачальника просто немає даних: їх ми позначаємо у звіті, щоб менеджер бачив, що саме потребує ручного введення, а не шукав по всьому каталогу.
Чим відрізняється обмін за розкладом від обміну за подіями?
Коротка відповідь: це два різні компроміси між затримкою появи опису та передбачуваністю навантаження. Пакетний обмін за розкладом дає рівний графік і просто налагоджується, подієвий — мінімальну затримку, але потребує надійної доставки повідомлень.
При обміні за розкладом планувальник — агенти в 1С-Битрикс — раз на заданий інтервал запускає завдання, яке вибирає змінені товари за міткою часу або контрольною сумою опису та обробляє їх порціями.
Затримка дорівнює періоду плюс час проходу: при десятках тисяч позицій і порції в пару сотень записів один цикл іде хвилини, тому реальне оновлення надходить із затримкою в десятки хвилин. Зате навантаження на каталог передбачуване, а важкий прохід виводиться в нічне вікно.
Подієвий режим працює навпаки: джерело при правці картки публікує повідомлення, обробник забирає його з черги й оновлює опис майже одразу — затримка вимірюється секундами.
Плата — інфраструктура: черга, повторні спроби, перевірка ідемпотентності та журнал, інакше втрачене повідомлення залишить товар без опису. Плюс піки: масовий імпорт дає сплеск подій, і каталог захищають обмеженням паралельних записів.
На практиці обирають гібрид: події закривають оперативні правки, а рідкісна звірка за розкладом добирає те, що загубилося в черзі. Рішення про режим зводиться до двох питань — як часто змінюються дані та скільки одночасних записів тримає база.
Якщо описи оновлюються раз на добу, розкладу достатньо, і підтримувати його простіше: вимкнення завдання зупиняє потік однією операцією.
Технічні сумніви: що запитують перед запуском
Перед запуском автонаповнення задають один і той самий набір питань: що станеться з текстами, написаними руками, як поводитимуться картки з неповними даними джерела і що відбудеться з каталогом при збої обміну. Відповідаємо за пунктами.
Ручні описи перезапишуться?
Ні, якщо задати пріоритет: поле з ручним текстом позначається ознакою блокування, і завантаження його не чіпає — оновлюються лише порожні або автоматичні значення. Журнал змін за карткою показує, що і коли перезаписалося, і дозволяє повернути попередній варіант.
Джерело віддає неповні дані — що потрапить на сайт?
Опис збирається за шаблоном із властивостей і проходить перевірку на обов’язкові поля, дублі та протиріччя. Якщо даних не вистачає, картка не публікується, а йде в чергу на ручне доопрацювання із зазначенням, чого саме бракує.
Можна охопити лише частину каталогу?
Так. Вибірка задається правилом — розділ, постачальник, значення властивості. Виключення теж описуються правилом і зберігаються між запусками: під час наступного обміну той самий набір залишиться поза бортом автоматики.
Як обмін захищений від збоїв і зайвих прав?
Запис іде порціями та в транзакції: при обриві зв’язку завантажене зберігається, повтор докатує залишок, порожнє значення з джерела не затирає наявний текст. Обліковий запис для обміну отримує лише потрібні права, зміни фіксуються в журналі.
Обговоримо задачу і повернемося з планом робіт
Точну оцінку впровадження обміну не можна видати за однією фразою «потрібно наповнювати описи товарів» — усе визначається структурою вашого каталогу.
Одна й та сама вивантаження постачальника в двох магазинах поводиться по-різному: десь характеристики лежать у властивостях інфоблоку, десь у торгових пропозиціях, десь частина текстів написана вручну і втрачати її не можна. Тому розбір задачі інженерами починається з ваших даних, а не з усередненого шаблону.
Що корисно надіслати до дзвінка:
- зразок вивантаження від зовнішнього джерела — реальний файл, хай навіть за один день;
- карту полів: які властивості товару заповнюються автоматично, а які залишаються ручними;
- правила збагачення: що беремо з джерела як є, що збираємо за шаблоном із характеристик;
- очікувану частоту та обсяг оновлення — скільки позицій за прогін і як часто він іде;
- доступи до тестового контуру або копії каталогу, щоб перевіряти обмін без ризику для робочого сайту.
На дзвінку уточнюємо розходження в даних, правила зіставлення з торговими пропозиціями, що робити при порожніх полях у постачальника, як логувати перезапис і на якій вибірці проганяємо обмін перед запуском.
У відповідь надсилаємо оцінку впровадження та план робіт по каталогу: етапи, що робимо на кожному, що знадобиться з вашого боку і в якому порядку виходить результат.
Опишіть задачу автонаповнення — повернемося з оцінкою, планом і розподілом етапів.







