Послойный генератор изображений
От: Винтра
Условия акции
Подарки предоставляются при покупке лицензии модуля через DataKit. Можно выбрать два подарка из трёх. Бесплатная установка — установка модуля на сайт клиента и проверка работы, без настройки под бизнес-процессы и доработок; нужен доступ к сайту или хостингу. Запуск за 1 рабочий день отсчитывается с момента оплаты и получения доступов. Первые 3 месяца VPS для 1С-Битрикс оплачивает DataKit при заказе хостинга через DataKit. Подарки не заменяются деньгами.
Зачем нужен этот модуль?
Каждый маркетплейс требует уникальные изображения: Ozon хочет белый фон и текст с характеристиками, Wildberries — инфографику с преимуществами, Яндекс.Маркет — чистые фото с брендингом. Готовить такие картинки вручную в Photoshop — долго, дорого и неудобно при большом каталоге.
Генератор картинок для маркетплейсов решает эту задачу полностью автоматически: вы один раз настраиваете шаблон прямо в Bitrix-админке, а модуль сам генерирует изображения для всех товаров, подставляя данные из инфоблока — название, характеристики, детальное фото.
Ключевые возможности- Визуальный редактор шаблонов — создайте шаблон за 5 минут без знания программирования. Добавляйте, переупорядочивайте и отключайте слои.
- Мгновенное превью — видите результат в реальном времени прямо в редакторе слоя, не выходя из админки.
- Поддержка всех популярных маркетплейсов — встроенные пресеты размеров: Ozon (700×933), Wildberries (900×1200), Яндекс.Маркет (1040×1440), Авито (1280×960). Можно задать любой произвольный размер.
- 7 типов слоёв — фон, локальная картинка, детальное фото товара, картинка из свойства, фиксированный текст, текст из свойства инфоблока, PHP-выражение.
- Условная логика — слой типа «локальная картинка» можно показывать только при определённом значении свойства. Например, значок «Хит» — только для товаров с меткой «bestseller».
- Удаление фона — встроенный алгоритм удаления цветного фона с товарных фото (допуск по каждому каналу RGB, сглаживание края). Поддерживает удаление двух цветов одновременно.
- Маска области — можно скрыть прямоугольную область детального фото (например, убрать лишнюю деталь).
- Планировщик (автоматический режим) — настройте задание и назначьте интервал (каждый час, раз в сутки, раз в неделю). Bitrix-агент запускает генерацию по расписанию через стандартный cron.
- Гибкая фильтрация — при ручной генерации и в планировщике можно выбрать: только товары без картинки, или перегенерировать все. Фильтр по разделу, названию, ID, значениям свойств (с логикой AND/OR).
- PHP-трансформации — для слоя «Текст из свойства» можно задать PHP-функцию или выражение для преобразования значения перед выводом (например, mb_strtoupper).
- Мультиязычность — интерфейс использует стандартные Bitrix lang-файлы. Русский язык включён.
- Чистая установка — модуль создаёт собственные таблицы в БД, не трогает стандартные таблицы Bitrix. При деинсталляции всё удаляется.
=========================
• Drag & drop позиционирование слоёв — перетащите слой мышкой прямо по превью-изображению. Координаты X/Y пересчитываются автоматически, синяя рамка показывает реальный размер слоя.
• Произвольный размер холста — помимо стандартных размеров Ozon, WB, Яндекс.Маркет и Авито теперь можно задать любые размеры вручную.
• Расписания генерации — новый раздел «Задания генерации» для автоматического запуска по расписанию через Bitrix-агент. Гибкая фильтрация элементов, выбор интервала, управление агентом прямо из карточки задания.
• Создание инфоблока и свойств из формы шаблона — не нужно выходить в настройки Bitrix: инфоблок и свойство типа «Файл» создаются в один клик.
• DETAIL_PICTURE как результат — результат генерации можно сохранять в стандартное поле «Детальная картинка», без создания дополнительного свойства.
• Настройки модуля — добавлена страница настроек с флагом «Разрешить PHP-слои» (по умолчанию выключено).
• В комплекте шрифт Arial — модуль готов к работе сразу после установки.
Как это работает
- Установите модуль через «Установка решений».
- В меню появится раздел «Генератор картинок» → «Шаблоны».
- Создайте шаблон: выберите маркетплейс, инфоблок товаров, свойство для сохранения результата.
- Добавьте слои: фон → детальное фото товара → текст с ценой → значок акции.
- Нажмите «Генерировать» — модуль пройдёт по всем товарам и сохранит картинки в выбранное свойство.
- PHP 8.0 и выше
- Расширение PHP: GD (с поддержкой TrueType/FreeType для текстовых слоёв)
- Bitrix CMS 20.0 и выше
- Инфоблок с файловым свойством для сохранения результата
|
Дата публикации
|
08.05.2026 |
|
Число установок
|
Менее 50 раз |
|
Дата обновления
|
01.09.2026 |
|
Включает в себя
|
Модуль |
|
Последняя версия
|
1.1.9 |
|
Адаптивность
|
Нет |
|
Поддержка композита
|
Да |
|
Совместимо с Сайты24
|
Нет |
|
Подходящие редакции 1С-Битрикс
|
3380 3381 3382 3383 |
|
Наличие демо-режима
|
Да |
|
Продолжительность демо-периода
|
7 |
- Модуль больше не может уронить соседний модуль Винтры. Класс плашки демо-режима носил общее имя «WintraTrialNotice» — такое же, как в других наших модулях. Если рядом стоял ещё один, класс объявлялся второй раз и сайт падал с фатальной ошибкой, причём падал именно сосед, а не виновник. Так 22.08.2026 на боевом сайте побелела страница у клиента. Класс переименован в «WintraImgGenTrialNotice».
- Проверка сайта Битрикса больше не жалуется на таблицы модуля. Кодировка таблиц была задана в коде жёстко, и на базе с другой кодировкой штатная проверка «Кодировки таблиц в БД» отдавала ошибку. Теперь модуль не называет кодировку вовсе и берёт ту, что стоит у базы; уже созданные таблицы приводятся к ней при обновлении.
- Подсчёт элементов и список значений свойства требуют одноразовый токен. Раньше эти два адреса проверяли только права администратора. Этого мало: запрос, подделанный с чужой страницы, идёт с куками самого администратора и проверку проходит — то есть посторонний сайт мог заставить наш перебирать инфоблок. Остальные адреса модуля токен требовали давно, эти два оставались без него.
- Последний адрес модуля без проверки демо-режима закрыт. Список значений свойства читался через инфоблоки и классов модуля не требовал — именно поэтому проверка на нём и отсутствовала. После окончания демонстрационного периода адрес отвечал так, будто модуль работает.
- Из поставки убраны два файла, которые никто не открывал. «js/admin.min.js» был второй копией «js/admin.js», и не подключался ни одной страницей — а вторая копия одной и той же логики не остаётся одинаковой, она тихо расходится. «lib/menu-helper.php» остался на диске от версии 1.1.7. Оба удаляются и с уже установленных сайтов.
- Убран мёртвый запасной блок на одиннадцати страницах. Он подключал «include.php», «если классы не загрузились». Защитой это не было никогда: в сборке маркетплейса «include.php» — защитный файл, который при истёкшем демо возвращает отказ ещё до объявления классов, и повторно он всё равно не выполняется. Читался блок при этом как рабочая страховка.
- После окончания демонстрационного периода страницы модуля больше не падают с ошибкой. Раньше «Генерация», «Шаблон», «Слой» и «Задание» открывались белым экраном с сообщением вида «Class "LocalImagegenTemplate" not found»: страница обращалась к модулю, не проверив, что тот вообще подключился. Теперь на их месте выводится штатная плашка с причиной и ссылкой на активацию — так же, как это уже работало на страницах «Шаблоны», «Задания» и «Настройки». Проверены все четырнадцать страниц модуля.
- Фоновые запросы страниц отвечают понятно, а не молчат. Подсчёт элементов, предпросмотр, генерация одного элемента, сохранение задания и создание инфоблока или свойства после окончания демо возвращали ошибку сервера. Теперь возвращают текст «Демонстрационный период модуля истёк».
- Формат готовой картинки задаётся у каждого шаблона. В 1.1.6 выбор был один на весь модуль, а в одном каталоге обычно нужен PNG для одной площадки и WebP для другой. Теперь формат и качество выбираются на странице шаблона, а настройка модуля осталась значением по умолчанию — для шаблонов, где формат не выбран. Существующие шаблоны после обновления работают как раньше.
- Преобразование текста в слое снова применяется. Поле «PHP-трансформация» обещает два варианта — имя функции или выражение с переменной $value, — но с версии 1.1.5 работал только первый: выражение вроде mb_strtoupper($value, 'UTF-8') молча пропускалось, и надпись выводилась без изменений. Теперь работают оба. В список разрешённых функций добавлены mb_strtoupper и mb_strtolower: обычные strtoupper и strtolower кириллицу не меняют, из-за чего русские названия оставались в прежнем регистре.
- Подписи в интерфейсе больше не превращаются в «?» и ромбы. Прошлая версия убрала из кода русский текст, но не символы: длинное тире, кавычки-ёлочки и многоточие в коде страниц ломались на сайтах в UTF-8 так же. Из-за этого свойство-результат показывалось как «ozon_file ? Изображение OZON», а пустая дата последнего запуска — одним ромбом. Проверены все страницы модуля: символов вне языковых файлов не осталось.
- Условие показа слоя умеет больше, чем «равно». Добавлены «не равно», «одно из» (список через запятую), «заполнено» и «не заполнено». Раньше под каждый случай приходилось заводить отдельный слой. Слои, настроенные раньше, продолжают работать без изменений.
- Новые подстановки: год, дата и текст значения списка. {{YEAR}}, {{YEAR_PREV}}, {{YEAR_NEXT}}, {{DATE}}, {{MONTH}}, {{DAY}} — чтобы поставить год на картинку, вычисляемые слои больше не нужны. {{season.TEXT}} выводит подпись значения списка, тогда как {{season}} по-прежнему даёт его код.
- Иконка модуля в меню перестала зависеть от соседних решений. Класс, который рисует раздел «Винтра.Хаб», назывался одинаково у нескольких наших модулей, поэтому на сайте с несколькими решениями иконку рисовал тот, что загрузился первым.
- Вычисляемые слои вернулись — теперь без выполнения кода. В версии 1.1.5 слой «PHP-выражение» был сведён к подстановке значений, и надписи, которые собирались из нескольких свойств или зависели от условия, перестали работать. Теперь выражение разбирает сам модуль и вычисляет по разрешённому списку функций: доступны склейка, арифметика, сравнения, условие «а ? б : в», обращение к свойствам и полям элемента, функции работы со строками, числами и датой. Как код на сервере выражение не выполняется, поэтому настройка остаётся безопасной. Прежние выражения работают в точности как раньше — переписывать их не нужно.
- Настройка «Разрешить PHP-слои» снова управляет поведением. В 1.1.5 галка осталась в интерфейсе, но ни на что не влияла: модуль её не читал. Теперь она включает вычисление выражений, а называется понятнее — «Разрешить вычисляемые выражения в слоях». Подстановки вида «{{NAME}}» работают всегда, независимо от неё.
- Формат готовой картинки на выбор: PNG, JPEG или WebP. Раньше результат всегда сохранялся в PNG и весил порядка полумегабайта на товар. JPEG и WebP дают тот же вид при файле в 5–10 раз меньше — на каталоге в двадцать тысяч позиций это разница в гигабайтах. Рядом настраивается качество. В списке показываются только форматы, которые умеет кодировать PHP на вашем хостинге.
- Размер холста Ozon по умолчанию исправлен на 900?1200. Стояло 700?933 — меньше, чем требует площадка.
- Подписи в интерфейсе перестали превращаться в «?????». На сайтах в кодировке UTF-8 вопросительными знаками отображались блок условий на страницах генерации и задания («Группа», «Между свойствами», «И», «ИЛИ», «удалить группу», «свойство»), сообщения журнала генерации, ошибки загрузки картинок и шрифтов, подписи полей маски и плашка демо-режима. Все они переехали в языковые файлы.
- Транслитерация названия в символьный код заработала на UTF-8 сайтах. Таблица перевода букв хранилась в коде страницы русскими символами и после сборки архива переставала совпадать с тем, что вводит пользователь: код молча не подставлялся.
- Единая иконка меню. Модуль в разделе «Винтра.Хаб» теперь с той же иконкой, что и остальные решения Винтры.
- Демонстрационный режим виден в модуле. На страницах модуля появилась штатная плашка Битрикса с обратным отсчётом: «Демонстрационный режим работы модуля. Осталось дней: N» и ссылкой на покупку. После окончания демо страницы показывают причину и ссылку на активацию вместо пустой страницы.
- Защита от подделки запросов. Удаление и копирование шаблона, удаление и копирование слоя, сохранение шаблона, удаление расписания и переключение его активности и cron-агента, запуск генерации, предпросмотр, создание инфоблока и свойства, сохранение задания и настроек — всё это теперь требует одноразовый токен сессии. Запуск генерации переведён с адресной строки на POST-запрос.
- PHP-выражения в слоях заменены подстановкой значений. Слой «PHP-выражение» выполнял содержимое поля как код на сервере. Теперь поле понимает подстановки вида «{{NAME}}», «{{ID}}», «{{ARTNUMBER}}» — имя поля или свойства элемента в двойных фигурных скобках. Список преобразований текста ограничен безопасными функциями, настройка «Разрешить PHP-слои» больше не нужна. ? Если в слоях были PHP-выражения — перепишите их на подстановки после обновления.
- Проверка загружаемых картинок. Фон и изображение слоя проверяются на сервере по расширению и по фактическому содержимому: принимаются только PNG и JPEG. В папках загрузок создаётся запрет на выполнение скриптов, в том числе на уже установленных сайтах.
- Название решения, разработчик и версия отображаются верно. Название и имя разработчика были записаны в коде по-русски и на сайтах в кодировке UTF-8 показывались вопросительными знаками, а номер версии был вписан в код числом и не менялся при обновлении. Всё это теперь берётся из языкового файла и из файла версии.
- Модуль в общем разделе «Винтра.Хаб». Пункт меню переехал из «Сервисов» в общий раздел рядом с остальными модулями Винтры, с иконкой. На уже установленных сайтах переезд происходит при обновлении.
- Надёжность обновления. Из поставки убраны апдейтеры прошлых версий, а сам апдейтер больше не подключает модуль во время копирования файлов — из-за этого установка обновления могла зависнуть.
- Безопасность и кодировка. Технические детали ошибок не выводятся наружу — показывается обобщённое сообщение. Стрелки, крестики и галочки оформлены так, чтобы не искажаться на сайтах в UTF-8.
