Client project · e-commerce
fish-sync
A sync pipeline for a fishing-tackle shop: stock from UkrSklad becomes product cards on Horoshop, Rozetka and Facebook, with AI descriptions approved in Telegram.
Private repository · walkthrough on request


- 53models found in 85 SKU
- 81variants linked to their parents
- 3channels from one source
- ~22AI descriptions a day
The problem
The shop keeps stock in UkrSklad, a desktop app with a Firebird database. Every marketplace wants its own feed, product variants are only implied by names, and nobody has time to write descriptions for each model.
How it works
- 01
Snapshot the stock
A copy of the UkrSklad database is read without touching the live file and dumped to JSON: 85 SKU.
- 02
Find the models
A name parser groups SKUs into parent models and variants: 53 models, 81 variants.
- 03
Write descriptions
Gemini 2.5 writes one description per parent model, about 22 a day within the quota.
- 04
A person approves
Each text goes to a Telegram bot first: /approve, /reject or /regen.
- 05
Store and photos
Approved data is upserted into SQLite and photos are matched to product codes.
- 06
Feeds
Separate renderers build XML for Horoshop, Rozetka and the Facebook catalog.
Limits I know about
- The daily AI quota sets the pace for new descriptions; the queue simply continues the next day.