ООО "БЮРО ПРОЕКТОВ "ФЬЮЖН"
Авто и мото
Россия
Сентябрь 2026
У продавца на маркетплейсе есть две вещи: прайс от поставщика в Excel и кабинет продавца. Между ними — работа, которую обычно делают руками: разложить номенклатуру по требованиям площадки, найти то, чего в прайсе нет, написать описания, собрать картинки, снять видео. На сотне товаров это терпимо. На пяти тысячах — не делается вообще.
Для магазина HOFER FD — продавца автозапчастей бренда HÖFER — мы собрали конвейер, который проходит этот путь сам: на входе прайс как прислали, на выходе карточка на Ozon с рейтингом контента 100 из 100. В статье рассказываем, из чего он собран, что оказалось неочевидным и сколько такое стоит по времени.
У заказчика — ООО «Бюро проектов „Фьюжн“», магазин HOFER FD на Ozon — есть прайс поставщика: 1 566 строк, 86 товарных групп, около 1 460 позиций. В прайсе лежит скелет: наименование, артикул, OE-номер, кросс-номера, норма упаковки, цена. И всё.
Ozon для той же позиции хочет заметно больше: развёрнутое наименование, аннотацию, вид и место установки, код ТН ВЭД, вес и три габарита упаковки, восемь и больше изображений, видео. Половины этого в прайсе нет физически.
Задача звучала так: сделать так, чтобы недостающее добиралось само, а не набивалось вручную. Ассортимент планируется расширять до пяти тысяч позиций — там ручная работа не масштабируется ни за какие деньги.
Первое, о чём думаешь, — написать скрипт. Мы так не сделали, и вот почему.
Всё, что нужно этому конвейеру, в 1С-Битрикс уже есть готовым: хранилище номенклатуры со свойствами любой формы, импорт из Excel с преобразованиями полей, генератор изображений по шаблону, выгрузка в Seller API. Каждый кусок — существующий модуль, который поддерживает его автор, а не мы. Своя строка кода — это долг: чинить и обновлять придётся самим.
Поэтому Битрикс здесь работает не витриной, а станком. Публичная часть сайта выключена намеренно — смотреть на конвейер некому, он не для посетителей. Единственный критерий любого решения: годится ли результат для выгрузки на Ozon.

Из этого следует приятное: хватает редакции «Старт». Торгового каталога и «Интернет-магазина» в ней нет, и это проверено — не мешает. И импорт, и выгрузка работают на инфоблоках, беря цены, остатки и габариты из обычных свойств.
Прайс поставщика мы не правим никогда: следующий придёт в том же виде, и правка не переживёт. Вместо этого рядом появляется рабочая Google-таблица — тот же прайс, разложенный под загрузку.
Столбцы источника остаются нетронутыми, наши начинаются правее. Смысл в том, что таблица — общий стол: в ней работает заказчик (цены и наценка — его зона), в ней работаем мы, и она же уходит на импорт. Ничего не надо пересылать и сводить.

Грабли, на которые наступают все. Модуль импорта различает категории и товары не по содержимому, а по оформлению строки: ей нужны одновременно заливка и объединённые ячейки по всей ширине. Мы перенесли клиентский файл в Google-таблицу голыми значениями — и модуль перестал видеть имена разделов. Ошибка молчит: глазами всё верно, значения на месте, а разделы не парсятся. Поэтому таблицу для импорта правят поверх существующей, а не пересобирают из данных.
Второе правило родилось само: новые столбцы добавляются до блока промптов, а промпты всегда идут последними. Иначе через месяц в таблице тридцать столбцов вперемешку, и в ней невозможно работать.
Часть недостающего берётся с официального сайта бренда, и это самый честный источник: развёрнутое наименование, комплектация, применяемость (марка / модель / годы), OE и Ref-номера, фотографии. Сборщик обходит сотню с лишним карточек за три минуты и не требует ни прокси, ни браузера.
А вот весогабариты в открытом доступе почти отсутствуют — и это главный вывод всей истории.
Мы перебрали двенадцать каталогов и маркетплейсов. Итог:
один источник отдал вес и три размера отдельными полями и покрыл 80 позиций из 132 — он и стал основным;
ещё один отдал габариты одной строкой и покрыл шесть позиций;
часть площадок закрыта антиботом наглухо — не пускают ни с сервера, ни через прокси, ни браузером;
официальный API со всеми данными существует и стоит 228 000 ₽ в месяц;
остальные отдаются свободно, но весогабаритов не содержат вовсе.
Вывод устойчивый: массового источника весогабаритов в открытом доступе нет. Их публикуют продавцы маркетплейсов, а маркетплейсы закрыты. Значит схема должна работать без них.
Поиск не по артикулу. Один каталог на запрос по артикулу колодок Chevrolet Captiva уверенно выдал колодки Lada Vesta. Данные пришли настоящие — просто не про тот товар. Источник годится только тогда, когда артикул на найденной карточке совпадает с запрошенным, и это проверяется программно, а не глазами.
Размер детали вместо размера коробки. Внешне не отличить: числа правдоподобные, поля заполнены. Проверяется плотностью: разделите вес на объём. У коробки с колодками выходит 0,3–1,5 г/см³; если получилось 7,3 — это плотность сплошной стали, и в источнике указан размер самого изделия. У нас такая проверка стоит отдельным скриптом и отбраковывает строки до того, как они уедут в карточку.
И мелочь, которая стоит часа: размеры почти везде отдаются в метрах, вес в килограммах, а Ozon просит миллиметры и граммы. Приводить к одному виду надо при разборе, а не «потом в таблице».
Схема в итоге двухслойная. Что нашлось — берём фактом. Остальное закрываем типовым значением по категории (медианой собранных) и честно помечаем это в отдельном столбце «Источник габаритов».
Так делать можно, потому что пустое поле роняет карточку на валидации, а помеченная оценка видна глазами и правится точечно. У колодок разброс невелик, а Ozon всё равно перемеряет посылку при приёмке. Заказчик видит, где факт, а где оценка, и может уточнить любую строку сам.
Аннотация нужна каждой позиции, и писать её руками на пяти тысячах товаров бессмысленно. Мы не стали гонять тексты через отдельный сервис: генерация живёт прямо в Google-таблице, надстройкой с моделью.
Устроено так:
отдельный столбец — промпт-формула: он не текст, а формула, которая склеивает факты строки (наименование, применяемость, тип, комплектацию, номера);
соседний столбец — куда пишет модель;
ещё один — общая роль модели на весь лист.
Промпт живёт формулой не для красоты: поправили данные в строке — промпт изменился сам, и перегенерация не требует переписывания заданий. На тестовой категории 132 описания сгенерировались примерно за минуту, длина 261–438 знаков, все уникальные.
Три вещи, которые стоит знать заранее:
Перезапись формулы запускает генерацию заново и тратит деньги. Сначала проверяем на двух строках, потом ставим на столбец. Готовый результат фиксируем значениями, иначе случайный пересчёт спишет бюджет ещё раз.
Габариты в промпт не кладём намеренно. В первом прогоне модель писала «габариты упаковки составляют 15.50 × 3.50 × 9.00 см» — а это у нас в большинстве строк оценка. В отдельном столбце она помечена, в тексте же читалась бы как точная величина. Весогабариты идут отдельным полем, не прозой.
Всё, что пишет модель, вычитывается. Правдоподобная выдумка в карточке маркетплейса дороже пустого поля. Мы проверяли тексты на выдуманные годы выпуска — годы пришли из применяемости с сайта бренда, модель ничего не добавила от себя. Но проверять надо каждый раз.
Медиа весит в рейтинге Ozon больше всего, и восемь кадров дают за него максимум. Собираются они тремя разными способами и ни один — руками.
Его рисует наш модуль wintra.genimgmarketplace: один шаблон на всю категорию, послойная композиция, 132 картинки за прогон.

Текстовые слои умеют считать: наименование склеивается из раздела каталога и свойства «Вид колодок» и обрезается по длине контейнера, применяемость переносится по строкам, длинный список Ref-номеров ломается и закрывается многоточием. Это важнее, чем кажется: без ограничения длины строка просто уезжает за край картинки, и заметно это только на просмотре всех 132 файлов подряд.
Дальше — карусель. Здесь мы разделили слайды на общие (годятся любой категории) и категорийные.

Ключевая деталь схемы: категорийный слайд ищется не по ID раздела и не по его названию. Причина простая — при первом импорте разделы только создаются, их ID ещё не существует. Зато в строке уже лежит артикул, а у артикула есть смысловая средняя часть: «HF 350 960» → 350. По ней и идёт подбор. Импорт забирает слайды двумя масками: общие и категорийные.
Что нельзя рисовать на слайдах. Ozon запрещает на дополнительных фото информацию о доставке и возврате — сроки, стоимость, способ, географию, скорость. Наш слайд «Доставка и оплата» получил замечание модерации целиком и был заменён. Под тот же запрет попадает безобидное на вид «отгружаем со склада в Самаре». Заодно мы убрали со слайдов сроки гарантии, контакты, рейтинг магазина и число заказов: последние два меняются, а картинка нет.

Видео в рейтинге Ozon даёт +40 к группе «Медиа». Без него общий рейтинг упирается в 82 балла, сколько ни заполняй остальное. При этом генератора видео в Seller API нет вовсе: площадка принимает только ссылку на готовый файл.
Значит ролики надо собирать самим — и на 132 позиции это уже не ручная работа. Мы собрали видеообложки из кадров той же галереи: растворение между кадрами, вертикальный формат под карточку, имя файла равно слитному артикулу, чтобы импорт подхватил без сопоставления.
Требования площадка отдаёт сама, в описании атрибутов: видеообложка — MP4 или MOV, 8–30 секунд, до 20 МБ. Здесь есть тихая ловушка: кроссфейды съедают время внахлёст. Восемь кадров по 1,25 секунды дают на выходе 7,6 секунды — то есть меньше минимума, и файл отбивается. Поэтому длительность считается от целевой, а каждый готовый файл проверяется программно.
Выгрузку ведёт модуль webprostor.ozon: профиль на категорию, товары, цены и остатки через Seller API.
Здесь главная особенность площадки: у Ozon своя структура атрибутов на каждую категорию. Это значит, что профиль выгрузки настраивается по каждой категории отдельно — универсального «залить весь прайс» не бывает в принципе.
И самое дорогое из мелочей: значение словарного атрибута должно совпадать со справочником Ozon побайтно. Площадка принимает строку молча, но без точного совпадения ставит нулевой идентификатор значения и роняет валидацию. Выглядит это как «импорт прошёл успешно, а карточка не публикуется». Поэтому словари категории мы выгружаем из API и подставляем значения из них, а не набираем руками.

Тестовая карточка набрала 100 баллов: медиа 100, текст 100, атрибуты 100. Посмотреть её можно прямо сейчас — колодки HÖFER HF 350 563 на Ozon.
Цены модулей открыты, ссылки ниже — считайте сами. Интереснее часы, потому что именно они определяют объём работы.
Фундамент — один раз на весь проект:
лицензия 1С-Битрикс, достаточно редакции «Старт»;
модуль импорта из Excel — kda.importexcel;
генератор изображений — wintra.genimgmarketplace;
выгрузка на Ozon — webprostor.ozon;
настройка всего процесса — парсер, генератор, модули, сведение данных: около 6 часов работы программиста.
Дальше работа идёт категориями — «колодки», «амортизаторы», «фильтры» и так далее, включая подкатегории. На каждую:
настройка профиля выгрузки под категорию (специфика Ozon заложена именно в категории);
правка парсера, поиск источников, если на прежних нужных данных нет;
сопоставление полученных данных;
новые столбцы таблицы под свойства этой категории;
правка шаблона генератора картинок;
запуск генерации текстов и видео;
два категорийных слайда.
Итого около 8 часов работы контент-менеджера на категорию. И вот что важно: количество товаров внутри категории почти не влияет. Десять позиций или сто тридцать — работа одна и та же. Десяток проще сделать руками; со ста — конвейер уже окупается, а с тысячей альтернативы нет.
Любому продавцу, который выходит на маркетплейсы с чужим прайсом и большим ассортиментом:
автозапчасти, расходники, инструмент;
стройматериалы, крепёж, сантехника;
электрика и комплектующие;
любой каталог, где поставщик присылает Excel, а площадка хочет карточку.
Особенно — если ассортимент регулярно обновляется. Разовую выгрузку можно пережить руками; ежемесячную с новыми позициями — нет.
Схема не привязана к Ozon: Wildberries, Яндекс.Маркет и Авито отличаются требованиями к размерам картинок и составом атрибутов, а звенья конвейера остаются те же.
![]()
Дмитрий Павлович Травин
Проектный менеджер
Соберём такой же конвейер под ваш прайс: развернём площадку, настроим импорт, найдём источники недостающих данных, сделаем шаблон картинок под ваш бренд и профиль выгрузки под ваши категории. Начинаем с одной тестовой категории — на ней видно и результат, и объём работы по остальным.
Напишите нам на info@wintramedia.ru или оставьте заявку на wintramedia.ru — посмотрим ваш прайс и скажем, что в нём есть, а что придётся добирать.