Цены Wildberries, Ozon, Lamoda и «Детского мира» в одном окне, и ни одна позиция не продаётся ниже минимальной цены, даже когда её роняет акция площадки
4 кабинета → 1 окно
Где видны и меняются цены
Как считали: до проекта цены смотрели и меняли в кабинетах Wildberries, Ozon, Lamoda и «Детского мира» по отдельности; после все четыре площадки сведены в одну таблицу платформы, и цена уходит в API площадки оттуда же
Компания продаёт на четырёх площадках: Wildberries, Ozon, Lamoda и «Детский мир». У каждой свой кабинет, и чтобы увидеть, по какой цене товар стоит на витрине, приходилось заходить в четыре места. Поменять цену на сотне позиций значило сделать это четыре раза, в четырёх разных интерфейсах.
Опаснее другое: цену на маркетплейсе меняет не только сам продавец. Площадка проводит акцию, добавляет свою скидку, и товар начинает продаваться дешевле, чем компания готова его отдать. Узнают об этом обычно задним числом, когда продажи уже прошли.
Цену на маркетплейсе меняет не только продавец: акция площадки может опустить товар ниже допустимой цены, и узнают об этом задним числом.
И ни в одном кабинете не было ответа на простой вопрос: когда и с какой на какую поменялась цена этой позиции и дошло ли изменение до площадки.
Когда пришёл заказ на центр цен, у компании уже работала система юнит-экономики, которую мы сделали раньше. Вторая отдельная программа означала бы два окна, две копии каталога и две версии себестоимости, которые рано или поздно разойдутся.
Поэтому мы предложили собрать одну платформу, и генеральный директор это решение согласовал. Систему юнит-экономики переработали под микросервисы и сделали первым модулем платформы, центр управления ценами встал рядом вторым. Сотрудники компании работают в одном интерфейсе, а не переключаются между программами.
Вместо второй программы второй модуль: тот же каталог, те же штрихкоды и та же себестоимость из 1С.
Общее у модулей то, на чём держится всё остальное: каталог товаров и размеров, штрихкоды, подключённые кабинеты площадок и себестоимость. Справочник себестоимости приходит из 1С один раз и нужен обоим модулям: юнит-экономике для расчёта прибыли, центру цен для маржи и минимальных цен.
Главный экран это одна таблица: товары с ценами и статусами на всех четырёх площадках, с поиском, фильтрами и массовым выбором строк. Товары, которые участвуют в акциях, отмечены прямо в таблице.
Карточка товара собирает всё, что нужно для решения о цене: цены по площадкам, себестоимость, комиссии площадки и маржу, историю изменений цены и ссылку на товар в кабинете маркетплейса. Новая цена отправляется в API площадки из окна «Обновить цену», без захода в кабинет.
Для массовых изменений есть импорт из Excel. Шаблон скачивается из программы, строка находит товар по штрихкоду, применяются только заполненные ячейки, а перед применением программа показывает, что именно изменится. Каждое изменение, ручное или массовое, попадает в журнал: старая цена, новая, статус и ошибка площадки, если она была.
Для каждой позиции компания задаёт минимальную цену: вручную или массовым расчётом, с предпросмотром перед применением. С интервалом синхронизации, раз в 15–60 минут, программа сравнивает с ней цену на витрине Wildberries и Ozon и отмечает товары, которые опустились ниже.
Дальше поведение задаёт сама компания переключателями. Если включён автоматический вывод из акций, товар Ozon, который ниже минимума опустила акция, из этой акции выводится. Если включено автоматическое восстановление, цена поднимается до минимальной за счёт уменьшения скидки. Когда скидкой поднять цену невозможно, программа сообщает причину, и цена корректируется вручную.
Программа держит нижнюю границу цены, даже когда цену двигает не компания, а акция площадки.
Если переключатели выключены, программа ничего не трогает и только подсвечивает товары ниже минимума. На панели мониторинга видно, сколько таких позиций сейчас и чем закончилась последняя проверка.
Правил автоматического репрайсинга здесь нет сознательно: программа держит нижнюю границу, а цену выше неё назначает человек.
У каждой площадки свой API, свои лимиты частоты запросов и свои возможности. Wildberries принимает цены и скидки, Ozon ещё и вывод товаров из акций, Lamoda цены и периоды распродаж, «Детский мир» цены. Программа учитывает лимиты каждой площадки, а запись цен идемпотентна: повторная отправка той же цены не создаёт второго изменения.
Расписание тоже своё. Цены Wildberries и Ozon синхронизируются автоматически с интервалом 15–60 минут, цены Lamoda и «Детского мира», а также тарифы и комиссии ежедневно в заданное время. Каталог обновляется по команде оператора, и прогресс виден в интерфейсе в реальном времени. Одновременно идёт не больше одной синхронизации, поэтому они не мешают друг другу.
К одной площадке можно подключить несколько кабинетов. Ключ проверяется запросом к API площадки прямо при подключении, поэтому ошибка в ключе видна сразу, а не при первой неудачной синхронизации.
Платформа развёрнута в инфраструктуре компании. Данные о ценах, марже и себестоимости и API-ключи кабинетов не покидают её серверов, а ключи хранятся в базе в зашифрованном виде.
Доступ к программе закрыт на уровне инфраструктуры компании: VPN, белый список адресов или Basic Auth на уровне nginx. Развёртывание выполняется одной командой, а состояние системы отдаётся в виде метрик Prometheus.
Цены всех четырёх площадок видны и меняются из одного окна. Изменить цену на сотне позиций теперь значит загрузить один файл и проверить предпросмотр, а не обойти четыре кабинета.
Акция площадки больше не может незаметно увести товар ниже допустимой цены: такой товар либо подсвечивается, либо возвращается к минимуму автоматически, в зависимости от того, как компания настроила программу.
У каждого изменения цены есть след: кто бы его ни сделал, человек или программа, в журнале видно, что было, что стало и прошло ли изменение на площадку.
И вся работа с маркетплейсами теперь живёт в одной платформе: прибыль по позиции и её цена считаются на одних и тех же данных.
Огромное спасибо команде VerionGroup. Раньше цены на четырёх площадках приходилось проверять вручную, а акции маркетплейсов незаметно уводили товар ниже цены, по которой мы готовы его продавать. Теперь все цены в одном окне, и программа сама следит, чтобы мы не продавали в минус. За это время она сэкономила нам уже сотни тысяч рублей. Сейчас правда тяжело найти тех, кто сделает хорошо. Здесь работают на результат, а для нас это самое главное. Планка действительно высокая, и что нам нужно, понимают с полуслова. Обращаемся не в первый раз и будем обращаться ещё не раз.
Первый разговор ни к чему не обязывает: посмотрим на вашу ситуацию и скажем, нужен ли вам такой проект вообще.