telegram
RUEN
~/cases/ggsel-autopricer

GGSEL AutoPricer

Keeps GGSEL and Digiseller prices up to date — checks PS Store, Xbox and Epic Games, applies the central bank exchange rate and markup.

~6000products in the seller's catalog
3stores: PS Store, Xbox, Epic Games
2marketplaces: GGSEL and Digiseller
3 hbefore a sale ends — regular price is back

The task

A digital games seller keeps about 6000 products on GGSEL and Digiseller. Prices depend on the store and the exchange rate, sales come and go — there's no keeping up by hand. Products had no store links, so the games also had to be found.

What I built

  • product import from both marketplaces and parsing of titles like "Game REGION (platforms)"
  • automatic matching with games in PS Store, Xbox and Epic Games with a confidence score; doubtful matches go to review with Telegram buttons or via Excel
  • price = store price × central bank rate + tiered markup, accounting for marketplace fees, rounding and a minimum price
  • sales are picked up, and the regular price returns 3 hours before a sale ends
  • products with variants, and pausing a product when the game disappears from the store
  • a dry-run mode with an Excel report: you see what will change before it changes

Under the hood

  • Title matching understands Roman numerals and penalizes extra editions and wrong platforms. For Xbox it builds a local catalog index of about 16 thousand games.
  • Epic Games is queried in batches across all regions with a single request.
  • Reliability: retries on API overload honoring Retry-After, marketplaces isolated from each other, partial writes rolled back, a cached exchange rate when the central bank is down.
  • Double-start protection, so prices are never changed twice.
stack:Pythonaiogram 3curl_cffiSQLiteopenpyxlsystemd

The code belongs to the clients, so the case pages only describe the work.