Справочник/Закупки и склад

Ценообразование

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


Быстрый старт

1. Открыть

Меню Закупки и склад → Ценообразование.

2. Дождаться загрузки данных

Верхний-правый угол — кнопка «Обновить данные». Тариф, цены, логистика подгружаются из Ozon и кладутся в кэш. Первая загрузка по магазину с 1 000+ товаров занимает до 30 сек — потом перерасчёт идёт локально.

3. Выбрать период

Пресеты 7д / 14д / 30д или свой диапазон дат. По этому периоду считаются: заказы, выручка, возвраты, DRR, средние продажи в день, остатки.

4. Выбрать магазин

Выпадающий список справа от дат. Переключение — отдельный срез по каждому подключённому Ozon-магазину.


Таблица

Одна строка — один товар. Колонки слева направо:

КолонкаЧто показывает
☑Чекбокс для массовых действий
Товарoffer_id + название + ссылка «↗ Ozon» на карточку
ЦенаАктуальная цена на Ozon
Новая ценаInline-инпут для отправки новой цены в Ozon. Синхронизирован с drawer'ом справа
АкцииБейджи «в N» (участвует) и «+M» (подходит как кандидат). Hover — список акций
ЗакупЗакупочная цена. Можно редактировать в drawer'е → блок «Структура затрат»
Комиссия %Эффективная категорийная комиссия с учётом дефер-скидки, супер-продукта и не-местной наценки
ЛогистикаЛогистика + last mile в рублях за единицу
Маржа %Маржа при текущей цене. При вводе «Новой цены» пересчитывается
ROIприбыль / закуп
Заказы/дСредние заказы в день за выбранный период

Клик по заголовку — сортировка. Клик по строке — открыть drawer справа.

Фильтры

Над таблицей:

  • Поиск — по offer_id или названию.
  • Акции: все / в акциях / кандидаты / не в акциях. Применяется ко всей выборке, не только к текущей странице.
  • Артикул: все / цифровые (815-338, 582-037\569-029, 10/200) / с буквами (stelka1d).

Подобрать рекомендованные цены массово

Выделите товары чекбоксами → кнопка «Подобрать цены (N)» над таблицей → модалка:

  1. Выберите цель: Маржа % или ROI %.
  2. Значение — дефолт подтягивается из pricing_settings.target_margin_pct; можно ввести своё.
  3. Перезаписать ручные цены — чекбокс off по умолчанию. Если вы уже ввели что-то в «Новую цену» вручную — оно сохраняется.
  4. Preview-таблица: было → рекомендация → Δ% → маржа факт / ROI факт → статус.
  5. Клик по строке в preview — исключить из этого прогона.
  6. «Применить» — цены записываются в колонку «Новая цена» главной таблицы. На Ozon ничего не отправляется.

Статусы в preview:

  • ✓ — подобрано
  • 🔒 «ручное» — вы уже ввели цену, не трогаем (если «Перезаписать» off)
  • ⚠ «ниже min_price» — попадает, но предупреждение
  • ✗ «ниже себестоимости» — не применяется, нужно понизить target или исключить
  • ✗ «нет себестоимости» — без закупа подбор невозможен
  • ✗ «недостижимо» — target выше потолка физики (например 150% маржа)

💡 Округление: всегда до целого рубля. 💡 Bisection: поиск цены в диапазоне [cost, cost × 768], 50 итераций, точность 1 п.п. Bystrее чем «перебрать все цены руками».


Отправить цены в Ozon массово

После того как «Новая цена» заполнена (хоть ручным вводом, хоть подбором) — кнопка «Установить цены (N)» над таблицей → bulk-модалка:

  1. Preflight-проверка — для каждого товара Ozon говорит, выбьет ли товар из акций, какой будет актуальный max_action_price, какие появятся кандидатуры.
  2. Агрегат сверху: «5 выбьются из акций · 2 ниже себестоимости · 3 новых кандидата · 1 rate-limited».
  3. Глобальный выбор auto_action_enabled — не менять / включить авто-участие в акциях / выключить.
  4. Отправить — прогресс-бар, poll каждые 1.5 сек, итог.

Ограничения Ozon:

  • До 1000 цен за один bulk-push. Если выбрано больше — отправится первая тысяча по текущей сортировке.
  • 10 обновлений цены в час на один offer_id. Свои попытки считаются — превышение → status=rate_limited, на Ozon не уходит. В истории видно.

💡 Все запросы пишутся в таблицу истории /supplies/pricing/history — кто, когда, что, результат.


Drawer — анализ одного товара

Клик по строке открывает боковую панель справа. Сверху вниз:

1. Калькулятор цены

Ввод «Новой цены» (синхронизирован с таблицей). Маржа / ROI / наценка пересчитываются на лету. Переключатель «до / после» показывает сравнение.

2. Структура затрат

Разбивка копейка-к-копейке: закуп, комиссия, эквайринг, логистика, last mile, налог, реклама, хранение. Все поля редактируются — подстройте DRR, комиссию, хранение под свои реалии, маржа пересчитается.

3. Механики Ozon

  • Отложенная выплата (0–168 дн) — скидка до 5.4%.
  • Super-product — процент дополнительной скидки.
  • Не-местная наценка — 0 / 4 / 6 / 8 % по кластерам.
  • Ozon Bank — множитель дефер-скидки × 1.25.

4. Обратный расчёт

По целевой марже / ROI / прибыли / максимальному COGS — возвращает нужную цену или потолок закупа. Альтернатива массовому подбору, когда нужно одно значение точное.

5. Воронка продаж

Сессии → переходы → заказы → выкупы. Конверсии на каждом шаге. Данные из аналитики Ozon за выбранный период.

6. Бустинг в поиске

Для товаров в boost-акциях:

  • Акционный процент — максимум по participating акциям (Ozon применяет лучший, не сумму).
  • 🟢🟡🔴 Индекс цен — после клика «Проверить акции».
  • ⭐ Premium Plus / Pro — статус подписки.

⚠ В кабинете Ozon итоговый процент выше. Туда складываются бонусы за долю акционных продаж и Premium, которые API не отдаёт отдельно — не показываем, чтобы не угадывать.

7. Отправка в Ozon

Участвует в акциях

Список акций. Галочка = оставить. Снять галочку = товар будет отключён от акции при нажатии «Установить цену». Предупреждение «выбьется», если новая цена > max_action_price.

Цена по акции — вторая строка с inline-инпутом. Изменяет action_price внутри акции без отключения. Валидация: ≤ max, ≥ 0. Ozon-алерт alert_max_action_price_failed показывается с рекомендованной ценой.

Подходит в акции (кандидат)

Список акций, в которые товар может войти при текущей или новой цене. Кнопка «+ Добавить» на каждой — мгновенный activate. Для STOCK_DISCOUNT акций Ozon не задаёт цену — используем новую или текущую, обрезанную по max.

Установить цену на Ozon

  1. «Проверить акции» — live-preflight, показывает участвующие, кандидатуры, предупреждения.
  2. Авто-акции: не менять / включить / выключить.
  3. Доп. поля (опционально) — old_price (зачёркнутая), min_price (минимум для авто-акций).
  4. «Установить цену на Ozon» — отправка.

💡 Preflight делает live запрос к Ozon перед отправкой — если условия изменились (max_price, новый кандидат), вы увидите это до push'а.


История изменений

Ссылка «История цен →» в шапке страницы. Фильтры: магазин, offer_id, статус, период. Каждая строка:

  • Дата / время.
  • offer_id + магазин.
  • Цена до → цена после, Δ %.
  • Статус: ✓ успех · ✗ ошибка · ⚠ rate limit · · в процессе.
  • Авто-акции: вкл / выкл.
  • Кто отправил, текст ошибки от Ozon (hover на ячейке).

Используйте для дебага: «почему эта цена не обновилась?» — видно либо rate-limit, либо конкретный Ozon-reject.


Настройки ценообразования

В drawer'е изменения применяются per-товар для текущей сессии. Дефолты на весь магазин — pricing_settings:

  • tax_rate — ставка НДС (обычно 0.07 для УСН 6% доход).
  • default_ad_percent — дефолтный DRR, если по товару нет данных из рекламы.
  • target_margin_pct — используется как дефолт «Маржи» в модалке подбора цен.
  • deferred_days — 0–168.
  • non_local_surcharge — 0 / 0.04 / 0.06 / 0.08.
  • super_product_discount — 0+.
  • ozon_bank_account — множитель дефер × 1.25.

Изменяются через API (PATCH /pricing/settings) или в drawer'е вручную.


Типовые вопросы

Почему маржа в таблице не совпадает с кабинетом Ozon?

Несколько возможных причин:

  • У нас в формулу входит DRR из реальных расходов на рекламу, а Ozon «Финансы» не всегда их прибавляет к юнит-экономике.
  • Хранение считается через UE (unit economics), а не просто «фикс на SKU».
  • Кабинет Ozon обычно считает «валовую маржу» без налога; у нас по умолчанию с налогом 7%.

Почему «Новая цена» не стала текущей после push'а?

  1. Проверьте статус в истории цен. Возможно error или rate_limited.
  2. Если статус success — обновите страницу через 10–30 сек. Локальный кэш тарифов обновляется сразу, но HTTP-кэш или TanStack могут держать старое значение.
  3. Сам Ozon применяет цену в каталоге за 5–15 минут, это не наша задержка.

Что делать, если цена выбьет товар из акции?

Три варианта:

  1. Понизьте цену до max_action_price акции (показан в drawer'е).
  2. Оставьте цену — в предупреждении preflight'а сними галочку с акции, тогда отключится вместе с установкой цены.
  3. Установите цену, потом в кабинете Ozon измените условия акции.

Почему Бустинг показывает 0%, когда в кабинете Ozon — 77.5%?

Мы показываем только акционную часть бустинга — то что Ozon API отдаёт точно. Остальные компоненты (индекс цен → X%, доля акций → Y%, Premium → Z%) не экспонируются API, Ozon суммирует их внутри кабинета. Показывать угаданные цифры — врать; пишем честно.

Часто ли обновляются акции?

Участие и кандидаты — раз в час (Celery beat). Кнопка «Обновить акции» в шапке страницы запускает ручной refresh. Перед отправкой цены preflight делает дополнительный live-запрос, так что push всегда идёт на актуальных условиях.


Связанные инструменты

  • API ключи Ozon — Админ → Магазины Ozon. Должны быть включены методы Promos + Actions.
  • Аналитика продаж — меню «Аналитика» → «Продажи». Даёт тот же период, что Ценообразование.
  • Реорды и поставки FBO — «Закупки и склад» → «Поставки FBO».

Смотрите также

Перенос карточек из Ozon в Wildberries →Сверка товаров: единый каталог по штрихкоду →Свой склад: с чего начать →Документы склада →Связь склада и поставок на FBO →Расходы из отгрузок маркетплейсам →Связь склада и закупок →Закупки: что заказать, заявки, контейнеры →Заказы поставщикам →Прайс-листы поставщиков →Сопоставления SKU →Поставки от поставщиков →Поставки на склады Ozon →Создание поставки FBO →Кластеры Ozon →Остатки на складах Ozon →Упаковка FBO →Возвраты к выдаче →Отложенная бронь слотов FBO →Авито: подключение кабинета и Автозагрузка →MCP-коннектор — AI-сотрудник для вашего магазина →Контент-фабрика: с чего начать →Бренды →Каналы публикации →База знаний бренда →Мониторинг новостей →Темы и идеи →Очередь контента →Контент-календарь →История публикаций →Автопилот →Аналитика контента →Настройки контент-фабрики →Память агента: что это и зачем →Обучение: как скармливать тексты и файлы →Очередь review, findings, lineage →Уровни знаний: draft / confirmed / archived / static →Когда агент даёт неверный ответ →Insights (Reflector): дайджест паттернов →Industry review: кросс-арендные инсайты →