Авторизация
Сброс пароля
От прайса в EXCEL до карточки Ozon: конвейер на «1С-Битрикс» для рейтинга контента 100 из 100
Заказчик: ООО «Бюро проектов „Фьюжн“» — владелец магазина HOFER FD на Ozon, который продает автозапчасти бренда HÖFER
Страница кейса/результат: https://www.ozon.ru/seller/hofer/

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

2. Описание реализации кейса и творческого пути по поиску оптимального решения
Почему станком стал Битрикс, а не таблица и не скрипт
Первое, о чём думаешь, — написать скрипт. Мы так не сделали, и вот почему.
Всё, что нужно этому конвейеру, в «1С-Битрикс» уже есть готовым: хранилище номенклатуры со свойствами любой формы, импорт из Excel с преобразованиями полей, генератор изображений по шаблону, выгрузка в Seller API. Каждый кусок — существующий модуль, который поддерживает его автор, а не мы. Своя строка кода — это долг: чинить и обновлять придётся самим.
Поэтому Битрикс здесь работает не витриной, а станком. Публичная часть сайта выключена намеренно — смотреть на конвейер некому, он не для посетителей. Единственный критерий любого решения: годится ли результат для выгрузки на Ozon.
Из этого следует приятное: хватает редакции «Старт». Торгового каталога и «Интернет-магазина» в ней нет, и это проверено — не мешает. И импорт, и выгрузка работают на инфоблоках, беря цены, остатки и габариты из обычных свойств.
Звено 1. Прайс → Google-таблица
Прайс поставщика мы не правим никогда: следующий придёт в том же виде, и правка не переживёт. Вместо этого рядом появляется рабочая Google-таблица — тот же прайс, разложенный под загрузку.
Столбцы источника остаются нетронутыми, наши начинаются правее. Смысл в том, что таблица — общий стол: в ней работает заказчик (цены и наценка — его зона), в ней работаем мы, и она же уходит на импорт. Ничего не надо пересылать и сводить.
Грабли, на которые наступают все. Модуль импорта различает категории и товары не по содержимому, а по оформлению строки: ей нужны одновременно заливка и объединённые ячейки по всей ширине. Мы перенесли клиентский файл в Google-таблицу голыми значениями — и модуль перестал видеть имена разделов. Ошибка молчит: глазами всё верно, значения на месте, а разделы не парсятся. Поэтому таблицу для импорта правят поверх существующей, а не пересобирают из данных.
Второе правило родилось само: новые столбцы добавляются до блока промптов, а промпты всегда идут последними. Иначе через месяц в таблице тридцать столбцов вперемешку, и в ней невозможно работать.
Звено 2. Добираем то, чего в прайсе нет
Часть недостающего берётся с официального сайта бренда, и это самый честный источник: развёрнутое наименование, комплектация, применяемость (марка / модель / годы), OE и Ref-номера, фотографии. Сборщик обходит сотню с лишним карточек за три минуты и не требует ни прокси, ни браузера.
А вот весогабариты в открытом доступе почти отсутствуют — и это главный вывод всей истории.
Двенадцать площадок и один рабочий источник
Мы перебрали двенадцать каталогов и маркетплейсов. Итог:
- один источник отдал вес и три размера отдельными полями и покрыл 80 позиций из 132 — он и стал основным;
- ещё один отдал габариты одной строкой и покрыл шесть позиций;
- часть площадок закрыта антиботом наглухо — не пускают ни с сервера, ни через прокси, ни браузером;
- официальный API со всеми данными существует и стоит 228 000 ₽ в месяц;
- остальные отдаются свободно, но весогабаритов не содержат вовсе.
Вывод устойчивый: массового источника весогабаритов в открытом доступе нет. Их публикуют продавцы маркетплейсов, а маркетплейсы закрыты. Значит схема должна работать без них.
Два опасных места, где парсер врёт молча
Поиск не по артикулу. Один каталог на запрос по артикулу колодок Chevrolet Captiva уверенно выдал колодки Lada Vesta. Данные пришли настоящие — просто не про тот товар. Источник годится только тогда, когда артикул на найденной карточке совпадает с запрошенным, и это проверяется программно, а не глазами.
Размер детали вместо размера коробки. Внешне не отличить: числа правдоподобные, поля заполнены. Проверяется плотностью: разделите вес на объём. У коробки с колодками выходит 0,3–1,5 г/см³; если получилось 7,3 — это плотность сплошной стали, и в источнике указан размер самого изделия. У нас такая проверка стоит отдельным скриптом и отбраковывает строки до того, как они уедут в карточку.
И мелочь, которая стоит часа: размеры почти везде отдаются в метрах, вес в килограммах, а Ozon просит миллиметры и граммы. Приводить к одному виду надо при разборе, а не «потом в таблице».
Чего найти не удалось — закрываем типовым значением
Схема в итоге двухслойная. Что нашлось — берём фактом. Остальное закрываем типовым значением по категории (медианой собранных) и честно помечаем это в отдельном столбце «Источник габаритов».
Так делать можно, потому что пустое поле роняет карточку на валидации, а помеченная оценка видна глазами и правится точечно. У колодок разброс невелик, а Ozon всё равно перемеряет посылку при приёмке. Заказчик видит, где факт, а где оценка, и может уточнить любую строку сам.
Звено 3. Тексты пишет приложение в таблице, а не человек
Аннотация нужна каждой позиции, и писать её руками на пяти тысячах товаров бессмысленно. Мы не стали гонять тексты через отдельный сервис: генерация живёт прямо в Google-таблице, надстройкой с моделью.
Устроено так:
- отдельный столбец — промпт-формула: он не текст, а формула, которая склеивает факты строки (наименование, применяемость, тип, комплектацию, номера);
- соседний столбец — куда пишет модель;
- ещё один — общая роль модели на весь лист.
Промпт живёт формулой не для красоты: поправили данные в строке — промпт изменился сам, и перегенерация не требует переписывания заданий. На тестовой категории 132 описания сгенерировались примерно за минуту, длина 261–438 знаков, все уникальные.
Три вещи, которые стоит знать заранее:
- Перезапись формулы запускает генерацию заново и тратит деньги. Сначала проверяем на двух строках, потом ставим на столбец. Готовый результат фиксируем значениями, иначе случайный пересчёт спишет бюджет ещё раз.
- Габариты в промпт не кладём намеренно. В первом прогоне модель писала «габариты упаковки составляют 15.50 × 3.50 ? 9.00 см» — а это у нас в большинстве строк оценка. В отдельном столбце она помечена, в тексте же читалась бы как точная величина. Весогабариты идут отдельным полем, не прозой.
- Всё, что пишет модель, вычитывается. Правдоподобная выдумка в карточке маркетплейса дороже пустого поля. Мы проверяли тексты на выдуманные годы выпуска — годы пришли из применяемости с сайта бренда, модель ничего не добавила от себя. Но проверять надо каждый раз.
Звено 4. Картинки — восемь кадров на товар
Медиа весит в рейтинге Ozon больше всего, и восемь кадров дают за него максимум. Собираются они тремя разными способами и ни один — руками.
Главное изображение
Его рисует наш модуль wintra.genimgmarketplace: один шаблон на всю категорию, послойная композиция, 132 картинки за прогон.
Текстовые слои умеют считать: наименование склеивается из раздела каталога и свойства «Вид колодок» и обрезается по длине контейнера, применяемость переносится по строкам, длинный список Ref-номеров ломается и закрывается многоточием. Это важнее, чем кажется: без ограничения длины строка просто уезжает за край картинки, и заметно это только на просмотре всех 132 файлов подряд.
Четыре слайда инфографики
Дальше — карусель. Здесь мы разделили слайды на общие (годятся любой категории) и категорийные.
Ключевая деталь схемы: категорийный слайд ищется не по ID раздела и не по его названию. Причина простая — при первом импорте разделы только создаются, их ID ещё не существует. Зато в строке уже лежит артикул, а у артикула есть смысловая средняя часть: «HF 350 960» ? 350. По ней и идёт подбор. Импорт забирает слайды двумя масками: общие и категорийные.
Что нельзя рисовать на слайдах. Ozon запрещает на дополнительных фото информацию о доставке и возврате — сроки, стоимость, способ, географию, скорость. Наш слайд «Доставка и оплата» получил замечание модерации целиком и был заменён. Под тот же запрет попадает безобидное на вид «отгружаем со склада в Самаре». Заодно мы убрали со слайдов сроки гарантии, контакты, рейтинг магазина и число заказов: последние два меняются, а картинка нет.
Собственно галерея
Восемь кадров в галерее каждого товараГлавное изображение, фотографии с сайта бренда и четыре слайда — восемь кадров в каждой карточке
Звено 5. Видеообложка — иначе потолок 82 балла
Видео в рейтинге Ozon даёт +40 к группе «Медиа». Без него общий рейтинг упирается в 82 балла, сколько ни заполняй остальное. При этом генератора видео в Seller API нет вовсе: площадка принимает только ссылку на готовый файл.
Значит ролики надо собирать самим — и на 132 позиции это уже не ручная работа. Мы собрали видеообложки из кадров той же галереи: растворение между кадрами, вертикальный формат под карточку, имя файла равно слитному артикулу, чтобы импорт подхватил без сопоставления.
Требования площадка отдаёт сама, в описании атрибутов: видеообложка — MP4 или MOV, 8–30 секунд, до 20 МБ. Здесь есть тихая ловушка: кроссфейды съедают время внахлёст. Восемь кадров по 1,25 секунды дают на выходе 7,6 секунды — то есть меньше минимума, и файл отбивается. Поэтому длительность считается от целевой, а каждый готовый файл проверяется программно.
Звено 6. Выгрузка в Ozon
Выгрузку ведёт модуль webprostor.ozon: профиль на категорию, товары, цены и остатки через Seller API.
Здесь главная особенность площадки: у Ozon своя структура атрибутов на каждую категорию. Это значит, что профиль выгрузки настраивается по каждой категории отдельно — универсального «залить весь прайс» не бывает в принципе.
И самое дорогое из мелочей: значение словарного атрибута должно совпадать со справочником Ozon побайтно. Площадка принимает строку молча, но без точного совпадения ставит нулевой идентификатор значения и роняет валидацию. Выглядит это как «импорт прошёл успешно, а карточка не публикуется». Поэтому словари категории мы выгружаем из API и подставляем значения из них, а не набираем руками.

Правая часть таблицы: габариты и их источник, аннотация, вид колодок, ТН ВЭД и блок промптов — он всегда последний

Каждый слой берёт значение из своего источника: фон — из шаблона, фото — с сайта бренда, текст — из свойств товара

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

Главное изображение, фотографии с сайта бренда и четыре слайда — восемь кадров в каждой карточке

Формула проверена на живых цифрах карточки
4. Заключение
Такое решение подойдет любому продавцу, который выходит на маркетплейсы с чужим прайсом и большим ассортиментом:
- автозапчасти, расходники, инструмент;
- стройматериалы, крепёж, сантехника;
- электрика и комплектующие;
- любой каталог, где поставщик присылает Excel, а площадка хочет карточку.
Особенно — если ассортимент регулярно обновляется. Разовую выгрузку можно пережить руками; ежемесячную с новыми позициями — нет.
Схема не привязана к Ozon: Wildberries, Яндекс.Маркет и Авито отличаются требованиями к размерам картинок и составом атрибутов, а звенья конвейера остаются те же.


