Управление ценами на Ozon: 4 000 SKU из Google Таблицы
Кейс

Управление ценами на Ozon: 4 000 SKU из Google Таблицы

Четыре тысячи товаров. Каждый день цены на часть из них нужно менять — акция, ответ конкуренту, сезонная корректировка, новая партия с другой себестоимостью. Менеджер открывает личный кабинет Ozon, находит товар, меняет цену, подтверждает. Следующий товар. И так — от ста до трёхсот позиций в день.

Этот кейс — про то, как таблица и скрипт заменили три часа ежедневной рутины и убрали ценовые ошибки, которые стоили бизнесу денег.

Про бизнес

К нам обратился продавец на Ozon с ассортиментом более 4 000 SKU. Категория товаров — бытовая химия и хозтовары. Рынок конкурентный: десятки продавцов с похожим ассортиментом, покупатель выбирает по цене. Маржинальность невысокая, поэтому каждая ошибка в ценообразовании — это либо упущенная прибыль, либо прямой убыток.

Ценовые изменения происходят часто и по разным причинам:

  • Промоакции Ozon. Площадка предлагает участие в акциях, нужно выставить специальные цены на сотни позиций за ограниченное время.
  • Ответ конкурентам. Конкурент снизил цену — нужно оперативно скорректировать свою.
  • Сезонные корректировки. Спрос на определённые категории растёт и падает в зависимости от сезона.
  • Изменение закупочной цены. Новая партия от поставщика — пересчёт розничных цен по всей линейке.

Как было раньше

Менеджер работал через личный кабинет продавца на Ozon. Процесс выглядел так: открыть раздел «Цены и остатки», найти нужный товар через поиск или скроллинг, изменить цену, сохранить. При массовых изменениях — выгрузить шаблон Excel, заполнить, загрузить обратно.

На обновление 100–300 позиций уходило от 2 до 3 часов. Каждый день. Менеджер занимался этим вместо анализа продаж и работы с ассортиментом.

Ошибки были неизбежны. За три месяца до обращения к нам произошло три инцидента:

  1. Неправильная цена на 40 позиций. Менеджер скопировал столбец со сдвигом — цены перепутались между товарами. Обнаружили через 6 часов. Часть товаров продали ниже себестоимости. Ущерб — порядка 35 000 рублей.
  2. Промоцены не выставлены вовремя. Ozon давал 48 часов на подготовку к акции. Менеджер не успел обновить все 800 позиций. Магазин участвовал в акции с неполным ассортиментом, потерял трафик и рейтинг продавца.
  3. Промоцены не сняты после акции. Акционные цены держались на 120 позициях три дня после окончания акции. Менеджер просто забыл вернуть их обратно. Ещё 22 000 рублей.

Суммарно — три ценовые ошибки, больше 50 000 рублей прямых потерь за квартал. Не считая упущенной прибыли от невовремя запущенных промо.

Что мы построили

Центр управления ценами — Google Таблица с подключением к Ozon Seller API через Google Apps Script. Менеджер работает в привычном интерфейсе таблицы, а скрипт берёт на себя всё общение с Ozon.

Дашборд цен

Главный лист таблицы — сводка по всем 4 000 SKU. Для каждого товара видно: текущая цена на Ozon, цена до акции, минимальная допустимая цена (рассчитывается автоматически по себестоимости и целевой марже), статус акции. Менеджер фильтрует нужные товары, проставляет новые цены в отдельный столбец, нажимает кнопку — и изменения уходят в Ozon.

Валидация перед отправкой

Скрипт не отправит цену, которая ниже минимальной маржи. Если менеджер ставит цену 320 рублей, а себестоимость с учётом комиссии Ozon и логистики — 310 рублей, система подсвечивает строку красным и блокирует отправку. Порог настраивается: для каких-то категорий минимальная маржа 5%, для каких-то — 12%.

Планировщик промоцен

Для акций менеджер указывает промоцену, дату начала и дату окончания. Скрипт выставляет промоцену в назначенное время и автоматически возвращает базовую цену после окончания акции. Больше не бывает ситуации «забыли снять промо».

Лог изменений

Каждое обновление цены записывается на отдельный лист: кто изменил, когда, какой товар, старая цена, новая цена, причина (промо, конкуренты, себестоимость). Полная история за всё время работы. Полезно не только для контроля, но и для анализа ценовой динамики.

Мониторинг и алерты

Отдельный скрипт проверяет каждый час, что все запланированные обновления прошли успешно. Если Ozon API вернул ошибку или обновление зависло — менеджер получает уведомление в Telegram. Не нужно сидеть и ждать, пока 4 000 позиций обработаются.

Как работает обновление

sequenceDiagram participant М as Менеджер participant Т as Google Таблица participant GAS as Google Apps Script participant API as Ozon Seller API М->>Т: Указывает новые цены М->>Т: Нажимает «Обновить цены» Т->>GAS: Запуск скрипта GAS->>Т: Чтение строк с флагом update GAS->>GAS: Валидация (маржа, лимиты) alt Валидация не пройдена GAS->>Т: Подсветка ошибок GAS->>М: Уведомление об ошибках else Валидация пройдена loop Пакеты по 100 SKU GAS->>API: POST /v3/product/import/prices API-->>GAS: Результат обновления end GAS->>Т: Обновление статусов GAS->>Т: Запись в лог изменений GAS->>М: Уведомление об успехе end

Обновление идёт пакетами по 100 позиций — это максимум, который принимает Ozon API за один запрос. Для 4 000 SKU это 40 запросов. С учётом пауз между запросами и записи логов — 4-5 минут на полное обновление всего ассортимента.

Результат

Система работает шесть месяцев. Вот что изменилось:

  • Время обновления цен: с 3 часов до 5 минут. Менеджер тратит 20 минут на подготовку (фильтрация, простановка цен) и 5 минут на отправку. Итого — полчаса вместо трёх часов.
  • Ноль ценовых ошибок за 6 месяцев. Валидация по марже и автоматический реверт промоцен полностью исключили две из трёх типов ошибок. Третий тип (сдвиг строк) невозможен, потому что привязка идёт по product_id, а не по позиции в столбце.
  • На 15% быстрее запуск акций. Раньше подготовка к промоакции Ozon занимала 6-8 часов. Сейчас менеджер загружает список товаров акции, проставляет промоцены, настраивает расписание — и переключается на другие задачи.
  • Экономия — более 200 000 рублей в год. Складывается из трёх компонентов: высвобожденное время менеджера (порядка 600 часов в год), отсутствие ценовых ошибок (50 000+ рублей в квартал), своевременное участие в акциях (дополнительные продажи).

Технический стек

КомпонентТехнология
ИнтерфейсGoogle Sheets (дашборд, фильтры, условное форматирование)
ЛогикаGoogle Apps Script (V8 runtime)
API маркетплейсаOzon Seller API v3 (/v3/product/import/prices, /v3/product/info/prices)
ВалидацияФормулы Google Sheets + проверки в GAS
ПланировщикTime-based триггеры GAS
Лог измененийОтдельный лист в таблице
УведомленияTelegram Bot API
МониторингWatchdog-скрипт (проверка каждые 60 минут)

Чего не скрываем

Было бы нечестно рассказать только про успехи. Есть ограничения, о которых важно знать.

Rate limits Ozon API. Ozon ограничивает количество запросов: не более 60 в минуту для ценовых эндпоинтов. При 4 000 SKU и пакетах по 100 — это 40 запросов, укладываемся с запасом. Но если параллельно работают несколько скриптов (остатки, заказы, аналитика) — лимит делится между ними. Мы добавили межзапросные паузы и retry с exponential backoff, но при росте до 10 000+ SKU может потребоваться вынесение обновлений на отдельный API-ключ.

Ozon API версионирование. Ozon периодически обновляет API. За полгода мы дважды адаптировали скрипт: один раз изменился формат ответа, второй раз — обязательные поля запроса. Мы мониторим changelog Ozon API и обновляем скрипт проактивно, но полностью автоматизировать этот процесс невозможно. На поддержку закладывается 2-3 часа в месяц.

Производительность Google Sheets с 4 000 строками. Таблица с 4 000 строками и формулами условного форматирования работает заметно медленнее, чем с 500. Фильтрация, скроллинг, пересчёт формул — всё с задержками. Мы оптимизировали: убрали ARRAYFORMULA на весь столбец, заменили на пересчёт по триггеру, вынесли архивные данные на отдельные листы. При 4 000 строк это терпимо. При 8 000+ — таблица станет неудобной, и потребуется разбивка на несколько файлов или переход на веб-интерфейс.

Планировщик — не секундная точность. Time-based триггеры GAS работают с точностью плюс-минус 15 минут. Если промоцена должна включиться ровно в 00:00, она может включиться в 23:50 или в 00:12. Для большинства акций Ozon это несущественно — площадка сама контролирует время начала. Но для ручных промо, привязанных к конкретному часу, это стоит учитывать.

Читайте также


Если у вас магазин на Ozon с сотнями или тысячами SKU и ценообразование съедает часы каждый день — напишите нам. Разберёмся, что можно автоматизировать, а где хватит готовой таблицы.

С вами была команда GoogleSheets.ru, мы превращаем ручное управление ценами в систему.

Не хотите разбираться сами?

Если читали статью и поняли, что руками уже не справляетесь — напишите. Оценим задачу бесплатно и предложим решение.

140+ реализованных проектов
Google Products Expert в команде

Хотите такой же результат?

Расскажите о задаче — предложим решение и покажем релевантные кейсы.

Написать в Telegram

Подписывайтесь — делимся скриптами, кейсами и лайфхаками