Загрузка каталога на B2B-портал: универсальный подход

Менеджеру по продажам ставят задачу: выйти на три новых B2B-портала — отраслевой, региональный и закупочную площадку крупной корпорации. На каждом свой шаблон каталога: где-то Excel на пятнадцать колонок, где-то CSV с кодами единиц измерения, где-то форма сопоставления полей прямо в интерфейсе. Таких порталов десятки, и учить каждый с нуля невозможно. Хорошая новость в том, что механика загрузки везде одинаковая, а различия предсказуемы. Ниже — универсальный паттерн из четырёх шагов, карта типовых расхождений и стратегия, при которой выход на новый портал занимает вечер, а не месяц.

Общий паттерн: четыре шага для любого портала

Как бы ни назывался портал и в какой бы нише он ни работал, загрузка каталога устроена одинаково:

  1. Скачать шаблон портала. Он лежит в кабинете поставщика в разделе вроде «Каталог», «Загрузка товаров» или «Импорт». Если шаблона нет на виду, его пришлёт менеджер площадки — это нормальный первый вопрос в поддержку.
  2. Сопоставить колонки. Раскладываете свой каталог по их колонкам: «Артикул» в «SKU», «Цена опт» в «Цена без НДС» и так далее.
  3. Заполнить обязательные поля. Обычно они помечены звёздочкой или цветом, их пять–восемь штук. Пустое обязательное поле — гарантированный отказ строки при импорте.
  4. Загрузить файл и разобрать отчёт об ошибках. Портал почти всегда возвращает список отклонённых строк с причинами. Первый заход редко бывает чистым — это нормально, важно читать отчёт, а не гадать.

Паттерн не меняется, меняются только детали второго шага. Именно там и живёт вся рутина.

Скачанный шаблон каталога B2B-портала с обязательными колонками
Шаблон портала — главный документ: с него начинается любая загрузка

Где порталы расходятся: карта типовых различий

Запутывают не сами требования, а их мелкие вариации. Типовой набор расхождений:

  • Названия колонок. Одно и то же поле называется «Артикул», «SKU», «Код товара» или «Part number» — смысл один, заголовки разные.
  • Порядок колонок. Часть порталов требует строгий порядок из шаблона, лишняя колонка посередине ломает импорт.
  • Цены. С НДС или без, копейки через точку или запятую, разрешены ли пробелы-разделители тысяч (обычно нет).
  • Даты. «ДД.ММ.ГГГГ», «ГГГГ-ММ-ДД» или вообще текстовый месяц — для сроков поставки и действия цены.
  • Единицы измерения. «шт.» текстом против кодов по общероссийскому классификатору.
  • Обязательный состав полей. Где-то достаточно артикула и цены, где-то требуют штрихкод, бренд и страну происхождения.
  • Формат файла. XLSX против CSV, а у CSV — ещё и кодировка с разделителем.

Точные требования конкретной площадки меняются, поэтому сверяйтесь с актуальным шаблоном в кабинете портала, а не с инструкцией годичной давности. Похожая логика «требования сначала, файл потом» работает и у торговых сетей — она разобрана в статье про прайс для сетей и их требования.

Стратегия: мастер-прайс и шаблон конвертера на каждый портал

Поддерживать отдельный файл под каждый портал — путь к рассинхрону: через месяц цены в трёх местах разойдутся. Рабочая схема другая. У вас есть один мастер-прайс — эталонный каталог с актуальными ценами и остатками (такой подход детально описан в статье о едином формате прайсов). А под каждый портал — сохранённый шаблон обработки, который превращает мастер-прайс в файл именно этой площадки.

В конвертере EasyExcel это выглядит так. Загружаете мастер-прайс и шаблон портала рядом. На шаге «Структура» указываете, с какой строки начинается таблица. На шаге «Колонки» переименовываете колонки под шаблон портала, переставляете их в нужный порядок и удаляете лишние. Действиями «Убрать пробелы» и «Заменить текст» чистите цены, «Округлить» приводит копейки к требуемому виду, константа заполняет обязательное поле одним значением на весь файл, склейка по шаблону собирает составное наименование вроде «Бренд + модель». На «Фильтрах» отрезаете позиции с нулевым остатком, если портал просит только то, что на складе. Результат выгружаете в XLSX или CSV в UTF-8 — смотря что принимает площадка.

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

Сопоставление колонок мастер-прайса и шаблона B2B-портала в конвертере
Шаг «Колонки»: мастер-прайс раскладывается по колонкам шаблона портала

Новый портал: оценка за десять минут

Прежде чем регистрироваться и что-то переделывать, прогоните площадку по короткому чек-листу. Десяти минут хватает, чтобы понять объём работы:

  1. Есть ли шаблон. Скачайте его сразу. Нет файла-шаблона — ищите раздел «Требования к каталогу» или спрашивайте менеджера.
  2. Сколько полей обязательны. Посчитайте звёздочки. Пять полей — вечер работы, двадцать — уже проект.
  3. Формат файла. XLSX или CSV, какая кодировка и разделитель у CSV, есть ли лимит на число строк.
  4. Форматы цен и дат. С НДС или без, разделитель копеек, вид дат — найдите в шаблоне примеры заполнения, они красноречивее текста.
  5. Как происходит сопоставление. Строгий порядок колонок из шаблона или ручной мэппинг в интерфейсе при каждой загрузке.
  6. Отчёт об ошибках. Возвращает ли портал список отклонённых строк с причинами — без этого отладка превращается в переписку с поддержкой.

По итогам чек-листа решение простое: портал с понятным шаблоном и адекватными обязательными полями подключается через конвертер за один вечер. Портал с двадцатью обязательными полями, половины которых у вас нет, требует отдельного разговора о целесообразности.

Чек-лист оценки нового B2B-портала перед загрузкой каталога
Десятиминутная оценка: шесть пунктов, которые показывают объём работы

Частые вопросы

Портал просит заполнить шаблон вручную, а у меня три тысячи позиций. Что делать?

Не заполнять вручную. Пропустите свой каталог через конвертер: переименуйте колонки под шаблон портала, переставьте их в нужный порядок, очистите цены и выгрузите готовый файл. Ручная работа на трёх тысячах строк — это дни и гарантированные опечатки, конвертация — минуты.

Обязательных полей больше, чем данных в моём прайсе. Как быть?

Сначала проверьте, нельзя ли закрыть поле константой: «Страна — Россия» или «Срок поставки — 3 дня» одинаковы для всего файла и заполняются одним действием. Составные поля собираются склейкой из имеющихся колонок. Если данных объективно нет, уточните у менеджера портала, какие обязательные поля на практике допускают пустые значения.

Каталог на пяти порталах, цены меняются каждую неделю. Как не утонуть?

Держать один мастер-прайс как источник правды и по сохранённому шаблону на каждый портал готовить файлы пачкой в день обновления. Пять шаблонов — это пять раз по две минуты, а не пять отдельных файлов, которые нужно править руками и сверять между собой.

Портал принимает только CSV, а у меня Excel. Или наоборот?

Это самая простая из всех проблем. Конвертер на входе читает XLS, XLSX и CSV, а на выходе отдаёт XLSX со значениями или CSV в UTF-8 с точкой с запятой. Загружаете то, что есть, скачиваете то, что требует портал, — формат перестаёт быть вопросом.