Автонаповнення зображень товарів із зовнішніх джерел 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С-Бітрікс

Зображення — найважчий за обсягом елемент автонаповнення. 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×3000 px, 5 МБ). Перед збереженням у 1С-Бітрікс:

  • Ресайз до максимуму 1500 px по більшій стороні (для 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();

1С-Бітрікс сам створює превью через свій 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 годин.