Подготовка фотографий товаров для 1С-Битрикс

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

Подготовка фотографий товаров для 1С-Битрикс

Сырые фотографии не загружаются в Битрикс в том виде, в котором они выходят с камеры или от поставщика. Нужна предобработка: правильный размер, правильный формат, правильная структура папок. Загрузка 6-мегабайтных RAW-конвертов напрямую в /upload/ убивает скорость сайта и засоряет базу данных записями в b_file.

Подготовка фотографий товаров для 1С-Битрикс

Технические требования к файлам для Битрикс

Битрикс хранит изображения в таблице b_file (метаданные) и физически в /upload/. При загрузке через административный интерфейс или API Битрикс автоматически создаёт уменьшенные версии (/upload/resize_cache/) по параметрам, заданным в компонентах.

Оптимальные параметры исходников для загрузки:

Параметр Значение
Максимальный размер по длинной стороне 2000–2400 пикселей
Формат JPEG (основной), PNG для товаров с прозрачностью
Качество JPEG 80–85%
Цветовой профиль sRGB (не AdobeRGB — браузеры не умеют его корректно отображать)
Максимальный размер файла 500 KB для карточки, 200 KB для превью
DPI 72–96 (веб, не печать)

Битрикс при выводе через компонент bitrix:catalog.element перемасштабирует изображение до размеров, заданных в параметрах (DETAIL_IMAGE_SIZE). Загружать файлы больше 2400px бессмысленно — Битрикс всё равно создаст версию указанного размера, но исходник займёт место на диске и в базе.

Структура именования файлов

До загрузки в Битрикс файлы должны быть переименованы по единому стандарту. Битрикс хранит оригинальное имя файла в b_file.ORIGINAL_NAME. По именам файлов потом можно будет восстановить связи, найти нужные изображения.

Рекомендуемая схема именования:

{артикул}_{порядковый номер}.jpg

Примеры:

grohe-33265002_1.jpg   <- главное фото
grohe-33265002_2.jpg   <- фото сбоку
grohe-33265002_3.jpg   <- фото деталей
grohe-33265002_4.jpg   <- фото в интерьере

Пакетная подготовка изображений

Автоматизация через ImageMagick:

#!/bin/bash
# Подготовка папки с исходниками для загрузки в Битрикс
INPUT_DIR="./raw"
OUTPUT_DIR="./ready"
mkdir -p "$OUTPUT_DIR"

for file in "$INPUT_DIR"/*.{jpg,jpeg,JPG,JPEG,png,PNG}; do
    [ -f "$file" ] || continue
    filename=$(basename "$file")
    name="${filename%.*}"

    # Ресайз, конвертация в sRGB, JPEG, оптимизация
    convert "$file" \
        -auto-orient \
        -resize "2000x2000>" \
        -colorspace sRGB \
        -strip \
        -quality 82 \
        -interlace Plane \
        "$OUTPUT_DIR/${name}.jpg"

    echo "Processed: $filename"
done

Флаги:

  • -auto-orient — исправляет ориентацию по EXIF (важно для мобильных фото)
  • -resize "2000x2000>" — уменьшает только если больше 2000px, не увеличивает
  • -strip — убирает EXIF-метаданные (GPS-координаты, данные камеры)
  • -interlace Plane — прогрессивный JPEG, быстрее воспринимается при загрузке

Массовая загрузка в Битрикс через API

После подготовки файлов — загрузка в элементы инфоблока по артикулу:

// Маппинг: артикул → ID элемента
$articleToId = [];
$res = \CIBlockElement::GetList(
    [], ['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'ACTIVE' => 'Y'],
    false, false,
    ['ID', 'PROPERTY_ARTICLE']
);
while ($el = $res->Fetch()) {
    if ($el['PROPERTY_ARTICLE_VALUE']) {
        $articleToId[$el['PROPERTY_ARTICLE_VALUE']] = $el['ID'];
    }
}

// Загрузка изображений из папки
$directory = new \DirectoryIterator('/path/to/ready/');
$grouped   = []; // Группируем по артикулу

foreach ($directory as $file) {
    if ($file->isDot() || $file->getExtension() !== 'jpg') continue;

    // Парсим артикул из имени файла: "grohe-33265002_1.jpg"
    preg_match('/^(.+)_(\d+)\.jpg$/', $file->getFilename(), $m);
    if (!$m) continue;

    [$, $article, $order] = $m;
    $grouped[$article][(int)$order] = $file->getPathname();
}

foreach ($grouped as $article => $images) {
    $elementId = $articleToId[$article] ?? null;
    if (!$elementId) continue;

    ksort($images);
    $imageFiles = array_values($images);

    $el = new \CIBlockElement();
    $el->Update($elementId, [
        'DETAIL_PICTURE'  => \CFile::MakeFileArray($imageFiles[0]),
        'PREVIEW_PICTURE' => \CFile::MakeFileArray($imageFiles[0]),
    ]);

    // Галерея — свойство типа «Файл»
    if (count($imageFiles) > 1) {
        $gallery = array_map(
            fn($path) => ['VALUE' => \CFile::MakeFileArray($path)],
            array_slice($imageFiles, 1)
        );
        \CIBlockElement::SetPropertyValueCode($elementId, 'GALLERY', $gallery);
    }
}

Форматы изображений: WebP

Битрикс не генерирует WebP автоматически. Для WebP-поддержки — два подхода:

  1. На уровне nginx: webp_rewrite модуль конвертирует JPEG/PNG в WebP на лету, если браузер поддерживает формат. Конвертированные версии кешируются.

  2. Дублирующие свойства: отдельное свойство GALLERY_WEBP с WebP-версиями, шаблон компонента выбирает формат через <picture>.

Сроки

Объём Сроки
Подготовка и загрузка фото для 100 товаров (1–3 фото на товар) 1–2 рабочих дня
Подготовка и загрузка фото для 500 товаров 1 неделя
Настройка pipeline автообработки для регулярных поставок 1–2 дня