Автонаполнение описаний товаров из внешних источников 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Автонаполнение описаний товаров из внешних источников 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1258
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    849
  • 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 Appointment Booking Widget for a Medical Center
    584
  • 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 рабочих дней в зависимости от числа источников.