Автонаповнення описів товарів із зовнішніх джерел 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Автонаповнення описів товарів із зовнішніх джерел 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

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

Етапи розробки

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

  • 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С-Бітрікс

Завдання автонаповнення описів відрізняється від разового парсингу: система має працювати у фоні, обробляти нові товари в міру їх появи в каталозі та не затирати тексти, відредаговані вручну. Це вимагає правильної архітектури тригерів і пріоритетів, а не просто скрипту «пройтися по всіх товарах».

Тригери для заповнення описів

Автонаповнення запускається у трьох ситуаціях:

При додаванні нового товару — обробник події OnAfterIBlockElementAdd. Товар щойно створений, поля порожні — система йде за описом до джерел.

За розкладом для незаповнених — cron-завдання знаходить елементи з порожнім DETAIL_TEXT та ставить їх у чергу.

При ручному запиті — менеджер в адміністративній частині натискає «Отримати опис» для конкретного товару.

Ланцюжок джерел з fallback

Опис шукається послідовно: якщо перше джерело не дало результату — пробуємо наступне:

  1. API виробника за VENDOR_CODE
  2. База Icecat за EAN/штрихкодом
  3. Парсинг сайту виробника
  4. AI-генерація за назвою та характеристиками (крайній варіант)

Кожне джерело реалізує DescriptionProviderInterface::getDescription(string $sku): ?string. Оркестратор перебирає провайдери в порядку пріоритету.

Захист ручних правок

Ключовий елемент — властивість DESCRIPTION_LOCKED (тип S, значення Y/N). Коли менеджер редагує опис в адміністративній частині вручну:

  • Встановлюється DESCRIPTION_LOCKED = Y
  • Система автонаповнення пропускає цей елемент

Встановлюємо прапорець через обробник OnBeforeIBlockElementUpdate — перевіряємо, чи змінився DETAIL_TEXT відносно попереднього значення. Якщо так і зміна прийшла не від системи автонаповнення — ставимо прапорець.

Черга та пріоритизація

Не всі товари однаково важливі. Пріоритет у черзі:

  • Високий: товари з активними замовленнями або переглядами (дані з b_sale_order_item, b_stat_session)
  • Середній: нові товари без опису
  • Низький: старі товари, які не переглядались більше 30 днів

Реалізується через поле priority у таблиці черги, воркер вибирає завдання ORDER BY priority DESC.

Таймлайн робіт

Етап Термін
Архітектура провайдерів, інтерфейси 4–8 годин
Розробка провайдерів (по 1–2 дні кожен) 2–6 днів
Тригери, черга, пріоритизація 1–2 дні
Захист ручних правок 4–6 годин
Адміністративний інтерфейс управління 1 день

Разом: 6–12 робочих днів залежно від кількості джерел.