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.

fish-sync
Year
2026
Status
Client project
Catalog
85 SKU → 53 models
Stack
Python · Firebird · SQLite · Gemini 2.5 · aiogram 3 · XML feeds
  • 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

  1. 01

    Snapshot the stock

    A copy of the UkrSklad database is read without touching the live file and dumped to JSON: 85 SKU.

  2. 02

    Find the models

    A name parser groups SKUs into parent models and variants: 53 models, 81 variants.

  3. 03

    Write descriptions

    Gemini 2.5 writes one description per parent model, about 22 a day within the quota.

  4. 04

    A person approves

    Each text goes to a Telegram bot first: /approve, /reject or /regen.

  5. 05

    Store and photos

    Approved data is upserted into SQLite and photos are matched to product codes.

  6. 06

    Feeds

    Separate renderers build XML for Horoshop, Rozetka and the Facebook catalog.

UkrSklad 7Firebird databaseproducts.json85 SKUModel grouping53 models, 81 variantsGemini 2.5~22 models a dayModeration bot/approve · /regenSQLite storeupsert per modelPhoto syncphotos → product codesXML feedsHoroshop, Rozetka, FB

Limits I know about

  • The daily AI quota sets the pace for new descriptions; the queue simply continues the next day.

Need something like this?

Tell me about your task and data. I will answer with how I would approach it.

Discuss a project →