AI Asist
v2
Д
Д

Плейбук: цены покупателя Ozon

← Заметки  ·  Раздел: Ozon  ·  Файл: data/notes/ozon/buyer-price-playbook.md

Плейбук: цены покупателя Ozon

Назначение

Система ежедневно в 09:00 МСК сохраняет цены из таблицы товаров Ozon Seller. Собирается отдельная строка на (shop_id, offer_id, московская дата), поэтому размеры не смешиваются: HZ030-Blue-S, HZ030-Blue-M и HZ030-Blue-L — три разные наблюдения.

Источник — авторизованный Chrome-профиль конкретного магазина. Кабинет делает read-only запрос POST /api/v1/products/list-by-filter; из его ответа нужны:

Поле Значение
part_price.user_price цена продавца («Ваша цена»)
part_marketing_price.price цена для покупателя
part_marketing_price.oa_price цена с Ozon Картой
part_price.old_price зачёркнутая цена
part_price.min_price минимально допустимая цена

Публичный Ozon Seller API не подменяет этот источник: его price.price может быть ценой продавца, а customer_price закрыт для данного ключа.

Подключение магазина

Правило общее: если Ozon-магазин подключён к системе (заказы, продажи, остатки или реклама), он автоматически попадает в таблицу профилей со статусом pending. До отдельного Chrome-профиля и ручной авторизации снимок не собирается и помечается «ожидает авторизацию».

Для готового профиля зарегистрировать CDP-порт:

.venv/bin/python scripts/collect_ozon_buyer_prices.py \
  --configure-profile --shop-id <ID> --profile-name '<магазин>' \
  --debug-url http://127.0.0.1:<PORT> --status ready

Исследования

Цена и реклама

Соединяем ozon_buyer_price_daily с ozon_ad_metrics_daily по shop_id, offer_id и дате. Смотрим не только тот же день, но и лаги 1–3 дня после старта/остановки кампании. Цена покупателя, цена с Ozon Картой и цена продавца анализируются раздельно.

Цена и заказы

Соединяем снимки с ozon_postings + ozon_posting_items по магазину, артикулу и дате создания заказа. Метрика — заказы/единицы в день при данной цене.

Ограничения вывода

Корреляция не доказывает, что реклама снизила цену. В модель проверки добавляем акции/скидки Ozon, остатки и дни без рекламы. Один снимок в 09:00 описывает цену в этот момент; изменения внутри дня он не ловит.

Сбои

Если компьютер/Chrome-профиль недоступен или сессия Ozon истекла, создаётся строка ozon_buyer_price_runs со статусом error; задним числом снимок не догружается. После повторного входа следующий снимок идёт по обычному графику.

Уведомление

После ежедневного снимка цен в 09:00 МСК системный Telegram-бот отправляет одно сообщение: итог цен за сегодня и ночного трафика за вчера. Он использует уже настроенные на сервере ALERT_BOT_TOKEN и ALERT_CHAT_ID; токены не хранятся в коде или плейбуке. При ошибке любого из двух сборов сообщение всё равно отправляется со статусом ОШИБКА и краткой причиной.

Фильтры