Внутренняя жаба и свой Ozon Price Tracker с блэкджеком и сиреной (и моя боль)
Всем привет, диванные архитекторы.
короче все в курсе про рандомно скидки Озона, сегодня купил, завтра товар на 500% дешевле(образно говоря)) Да, базара нет, можно отменить и купить дешевле. Но не суть. Меня короч в какой-то момент переклинило. Заходить по двадцать раз в день проверять, не подешевели ли носки. Чекнул чё есть на рынке... сторонние боты в телеге либо не работают,
либо просят подписку, либо показывают гостевые цены без учета Ozon Карты и регионального склада (ID).
В общем решил, а ху...и нам кабанам, пишем свой нативный трекер под Android на Kotlin, Jetpack Compose и локальном движке. Без серверов, без передачи данных третьим дядям(реже тетям), с жестким контролем всего происходящего.
...че каво и что имеем на данный момент
Стек без мамонтов: Kotlin + Jetpack Compose + Room +WorkManager + Coil.
К сожалению парсинг Озона через Jsoup/OkHttp в 2026 году ожидаемо шлет тебя на три буквы с кодом 403 Forbidden и бесконечным редиректом на капчу, пришлось поднять локальный headless-браузерный движок внутри прилож.
Что уже работает и радует душу:
1. Честные цены с Ozon Картой и скидкой ID: Приложение умеет подхватывать авторизацию Ozon ID. Никаких «средних цен по больнице» видит ровно ту цену, которую видите вы в своем профиле со своего домашнего ПВЗ.
2. Добавление в 1 клик через системный Share: Увидел товар в приложении Озона ➔ нажал «Поделиться» ➔ выбрал свой трекер ➔ выставил целевой прайс. Всё.
3. Разделение на три лагеря:
СЛЕДИМ то, что реально в наличии и пасется ботом;
ЗАКОНЧИЛСЯ товары, которые раскупили (бот продолжает тихо мониторить склад, и если продавец пополнил остатки ..прилетает Restock Alert);
АРХИВ ...купленное или отложенное барахло, чтобы не жрать ресурсы.
4. Умная сортировка и детекция падений: Если цена пошла вниз (даже на 50₽), товар моментально летит в топ списка с плашкой «🔥 Цена снизилась на X ₽».
5. Режим «ОРАТЬ» и Сирена: Обычные скидки шлют тихий пуш. Но если цена пробила выставленный таргет и телефон врубает полноэкранный Heads-up баннер и зацикленную сирену через аларм-менеджер, которая орет, пока ты не нажмешь «Купить». Проспать скидку физически невозможно.
6. Графики на Canvas: Написал нативный график истории цен прямо на Compose Canvas, с адаптацией под день/ночь и фирменный сине-розовый стиль Озона.
7. Живой логер в фоне: Фоновый воркер пишет логи с точностью до секунды, их можно экспортировать в .txt прямо в /Download.
Ну и там всякие другие плюшки...
И главное приложение уверенно живет в фоне на Xiaomi (HyperOS) и не умирает ночью в Doze Mode.
А теперь собственно боль (и почему я здесь)
Приложение сейчас на стадии активного бета-теста на реальном железе, и есть два момента, на которых мой инженерный дзен всё...
Проблемка1: Корзина Озона
Поштучно товары через «Поделиться» добавляются идеально за полторы секунды. Но добавлять 20 позиций по одной такое себе. У Озона есть функция «Поделиться корзиной» (cart?share=...), которая генерирует публичную ссылку. Казалось бы, епта. Но при попытке разобрать страницу корзины, этот франкенштейн на Nuxt 3 подмешивает в DOM-дерево подвал с лентами «Вы смотрели», «Возможно вам понравится» и еще 40 рекламных карточек с аналогичной версткой. В итоге вместо 2 товаров из корзины скрипт радостно пытается затрекать половину витрины озона.
Проблемка2: Периодический склероз сессии, раз в пару недель WebView решает, что он устал, и роняет сессионные куки авторизации. Цены при этом не ломаются, но превращаются обратно неавторизованные (без учета Ozon Банка), пока заново не откроешь профиль. В приложении просто тыкаешь в настройках на авторизацию и логинишься. Да, когда эту хрень заметил, я конечно сделал временную затычку в виде уведомления что "ау, залогиньтесь плиз снова", но все таки хочется как то убрать данное неудобство.
Внимание, вопрос к коллективному разуму местных гуру:
Господа фронтендеры, реверс-инженеры и просто бывалые воины парсинга:
1. Кто ковырял публичные корзины Озона (cart?share=...) на Nuxt...по какому самому надежному селектору или объекту в window можно уверенно изолировать реальные товары корзины от мусорных каруселей рекомендаций? Я пробовал по очевидным самым типа - 1 -(количество товаров), форма галочки, ну и другие элементы которые казалось бы только в корзине присутствуют, но при 2х товарах в корзине, удалось сократить парс до 6 товаров (из +-50)
2. Как держать живой вебвьюшную сессию без регулярных пинков?
Советы, идеи, конструктивная критика архитектуры и вобще в
комментах категорически приветствуются. Всем низких цен и стабильного рантайма!
# FIXME: Я не знаю, почему это работает. Не трогайте, иначе всё взорвется.
# И да, я молился, когда это писал.
Ответ на пост «Идея для маркетплейсов на миллион»1
Неадекватные и бесполезные отзывы на маркетах из-за того, что сами маркетплейсы своими уведомлениями, которые всех бесят круглыми красными кружками в уголках, "заставляют" покупателя сразу после получения оставить отзыв, не дав даже попользоваться покупкой. Вот если бы они предлагали оставить отзыв через пару недель, а до этого даже специально нельзя бы было его оставить, вот тогда бы был самый адекватный рейтинг у товаров. А еще из-за доставки или ошибки продавца (разбили, поломали, не то положили) товару ставят 1 звезду. Товар тут не причем!. И вот если бы был период ожидания отзыва, было бы всё гуд.
Идея для маркетплейсов на миллион1
Уважаемые маркетплейсы! Внедрите пожалуйста пессимизацию неинформативных отзывов. Чтобы все отзывы к товарам, содержащие словосочетания «еще не читал», «еще не открывал», «еще не включал», «еще не пробовал» - попадали бы в самую жопу ленты.
Вайлдберриз запустил свой мессенджер. И это прямо стыдоба!
Ок, я скачал мессенджер WB Chat, чтобы потестить. Там даже чаты и каналы есть, а еще аудиозвонки. Попробовал позвонить - гудки идут, а человеку звонок не проходит, потом появляется уведомление о пропущенном. Позвонил другому человеку, который был рядом - соединение появилось только секунд через 20, вспомнил времена модемов! В общем, приложение с минимальным функционалом, но даже те функции, которые там есть, работают плохо.
Я, вообще, не понимаю, как такая огромная компания с невероятными финансовыми возможностями может делать вот такие поделки. У них есть возможность нанять лучших специалистов отрасли! А они делают вот такое позорище. Как так-то?
Пруф про запуск мессенджеры: https://ria.ru/20260826/wildberries-2113270149.html












