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.