Автонаполнение изображений товаров из внешних источников 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С-Битрикс

Изображения — самый тяжёлый по объёму элемент автонаполнения. 10 000 товаров × 5 фото = 50 000 файлов, которые нужно скачать, проверить, оптимизировать и правильно привязать к инфоблоку. При этом система должна работать в фоне, не нагружать сервер в пиковые часы и не дублировать уже загруженные фото.

Источники изображений

API производителя — самый чистый вариант. Производители часто предоставляют медиа-библиотеки партнёрам: ZIP-архив с фото по артикулам или API для скачивания по EAN.

Icecat / Syndigo — база данных контента производителей. Платный доступ, но полностью легальный и с хорошим покрытием электроники и бытовой техники.

Сайт производителя — парсинг. Приоритет: находим теги <meta property="og:image"> или JSON-LD image — это часто ссылки на изображения в хорошем качестве без парсинга галереи.

YML-фид поставщика — тег <picture> содержит URL основного фото.

Дедупликация: не скачивать одно и то же дважды

Храним кеш скачанных URL в Highload-блоке или таблице:

CREATE TABLE image_download_cache (
    source_url TEXT PRIMARY KEY,
    file_id INT,  -- ID в b_file
    downloaded_at TIMESTAMP
);

Перед скачиванием проверяем кеш — если URL уже обрабатывался и файл существует, используем готовый file_id.

Валидация качества изображений

Не все найденные изображения пригодны. Обязательные проверки перед сохранением:

$imageInfo = getimagesizefromstring($imageData);
// минимальное разрешение
if ($imageInfo[0] < 400 || $imageInfo[1] < 400) return null;
// проверка MIME-типа
if (!in_array($imageInfo['mime'], ['image/jpeg', 'image/png', 'image/webp'])) return null;
// минимальный размер файла (слишком маленький = заглушка или ошибка)
if (strlen($imageData) < 10_000) return null;

Оптимизация изображений перед сохранением

Скачанные фото часто больше нужного (3000×3000px, 5 МБ). Перед сохранением в Битрикс:

  • Ресайз до максимума 1500px по большей стороне (для detail_picture)
  • Конвертация CMYK → RGB (типичная проблема с фото из полиграфических источников)
  • Сжатие JPEG до quality 85

Используем Intervention Image (обёртка над GD/Imagick):

$image = Image::make($imageData)->resize(1500, null, fn($c) => $c->aspectRatio());
$optimized = $image->encode('jpg', 85)->getEncoded();

Битрикс сам создаёт превью через свой resize-механизм (CFile::ResizeImageGet), но исходник лучше отдавать уже оптимизированным.

Фоновая обработка и очереди

50 000 изображений нельзя обработать за один запуск. Архитектура:

  • Воркер 1: обходит инфоблок, находит элементы без изображений → добавляет в очередь
  • Воркеры 2–5: параллельно скачивают и сохраняют изображения (4 потока)
  • Расписание: воркеры работают ночью 02:00–06:00, чтобы не нагружать сервер днём
  • Лимит на сессию: не более 1000 изображений за один запуск

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

Этап Срок
Разработка загрузчика с валидацией и оптимизацией 2–3 дня
Система дедупликации и кеширования 4–8 часов
Очереди, параллельные воркеры 1–2 дня
Привязка к инфоблоку (превью + галерея) 4–6 часов
Мониторинг прогресса, административный интерфейс 1 день

Итого: 6–9 рабочих дней. Первичное наполнение 10 000 товаров при 4 потоках — около 3–4 часов.