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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Автонаполнение характеристик товаров из внешних источников 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

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

Правильно заполненные характеристики — основа фасетного фильтра. Без них умный фильтр bitrix:catalog.smart.filter не работает, а покупатель не может отобрать товары по параметрам. Автоматизация заполнения характеристик сложнее, чем автоматизация описаний: нужно поддерживать схему свойств инфоблока, нормализовывать разнородные данные и следить за консистентностью значений списочных свойств.

Проектирование схемы свойств под автоматизацию

Перед началом — аудит текущих свойств инфоблока. Типичные проблемы унаследованных каталогов:

  • Характеристики хранятся в одном текстовом свойстве «Описание» через переносы строк
  • Одно и то же свойство создано несколько раз с разными CODE
  • Числовые значения хранятся в строковых свойствах, фильтр не работает корректно

Для автонаполнения нужна чистая схема: каждая характеристика — отдельное свойство с правильным типом. Числа — тип N, категории (бренд, цвет, материал) — тип L (список), текстовые — тип S.

Источники характеристик

Icecat XML — наиболее полный источник для электроники и бытовой техники. Поиск по EAN через https://icecat.us/api/. Данные структурированы, названия характеристик стандартизированы.

GS1 / GEPIR — база данных по штрихкодам, содержит базовые атрибуты товара.

API производителя — если производитель предоставляет партнёрский доступ к спецификациям.

Парсинг сайта производителя — fallback при отсутствии API. Таблицы спецификаций парсим как описано в статье о парсинге характеристик.

Нормализация и контроль качества

Главная проблема: один и тот же параметр из разных источников может называться по-разному и иметь разные единицы измерения.

Архитектура нормализации:

  1. Словарь канонических имён — таблица property_canonical_map:
    source: 'icecat', source_name: 'Screen Size', canonical: 'display_diagonal', unit: 'inch'
    source: 'supplier_a', source_name: 'Диагональ экрана', canonical: 'display_diagonal', unit: 'sm'
    
  2. Конвертер единиц — при импорте автоматически конвертирует см в дюймы (или наоборот) по canonical
  3. Валидатор диапазонов — числовые значения проверяются на реалистичность (вес телефона 5000 г — явная ошибка)

Управление enum-значениями списочных свойств

Свойства типа L требуют предварительного создания значений в b_iblock_prop_enum. При автонаполнении новые значения появляются постоянно — нужна стратегия:

Автосоздание — новое значение автоматически добавляется в enum. Риск: мусорные значения от ошибок парсинга (опечатки, HTML-теги в значении).

Очередь на модерацию — новое значение помещается в очередь, менеджер подтверждает или отклоняет. Безопаснее, но требует внимания.

Рекомендую комбинацию: автосоздание с фильтрацией (длина > 2 и < 100 символов, без HTML, без спецсимволов), + уведомление менеджеру о новых значениях.

Инкрементальное обновление

Характеристики меняются реже, чем цены — раз в неделю достаточно для большинства каталогов. Оптимизация:

  • Храним хеш набора характеристик элемента: md5(serialize($properties))
  • При обновлении из источника сравниваем хеш — если не изменился, пропускаем запись в БД
  • Это снижает нагрузку на b_iblock_element_property при больших объёмах

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

Этап Срок
Аудит и реструктуризация схемы свойств инфоблока 1–2 дня
Разработка провайдеров источников 2–4 дня
Нормализатор, словарь канонических имён 2–3 дня
Управление enum-значениями 1 день
Инкрементальное обновление, мониторинг 1–2 дня

Итого: 7–12 рабочих дней — одна из самых трудоёмких задач автонаполнения из-за необходимости работы со схемой данных.