telegram
RUEN
~/cases/ggsel-autopricer

GGSEL AutoPricer

Держит цены на GGSEL и Digiseller актуальными — сверяется с PS Store, Xbox и Epic Games, учитывает курс ЦБ и наценку.

~6000товаров в каталоге продавца
3стора: PS Store, Xbox, Epic Games
2площадки: GGSEL и Digiseller
3 чдо конца скидки — возврат обычной цены

Задача

Продавец цифровых игр держит на GGSEL и Digiseller около 6000 товаров. Цены зависят от стора и курса, скидки приходят и уходят — вручную за этим не успеть. Ссылок на сторы в товарах нет, поэтому игры нужно было ещё и найти.

Что сделал

  • импорт товаров с обеих площадок и разбор названий вида «Игра РЕГИОН (платформы)»
  • автосопоставление с играми в PS Store, Xbox и Epic Games с оценкой уверенности; сомнительное — на проверку кнопками в Telegram или через Excel
  • цена = цена в сторе × курс ЦБ + ступенчатая наценка, с учётом комиссии площадки, округления и минимальной цены
  • распродажи подхватываются, обычная цена возвращается за 3 часа до конца скидки
  • товары с вариантами, пауза товара, если игра пропала из стора
  • режим проверки с Excel-отчётом: видно, что поменяется, до того как поменяется

Под капотом

  • Сопоставление названий понимает римские цифры, штрафует за лишнее издание и чужую платформу. Для Xbox строится локальный индекс каталога примерно на 16 тысяч игр.
  • Epic Games опрашивается пачками сразу по всем регионам одним запросом.
  • Надёжность: повторы при перегрузке API с паузой по Retry-After, площадки изолированы друг от друга, частичная запись откатывается, при недоступности ЦБ берётся сохранённый курс.
  • Защита от двойного запуска, чтобы цены не менялись дважды.
stack:Pythonaiogram 3curl_cffiSQLiteopenpyxlsystemd

Код остаётся у заказчиков, поэтому на страницах кейсов — только описание.