DropUnion App - a Telegram store for clothing sellers
DropUnion App is not a single store but a platform that grows any number of them. A seller registers in the bot and receives a personal link - and a buyer who opens it lands in that specific storefront right inside Telegram. The catalogue can be kept by hand or pulled from MyDrop or a Google Sheet; orders, statuses, Nova Poshta delivery and subscription billing run on their own.
Who it fits: clothing, footwear and accessory sellers who trade through Instagram and Telegram and take orders in direct messages; dropshippers working off somebody else’s stock; and anyone who wants to launch a subscription platform of their own rather than a single store.
Stack: Python with aiogram for the bot, FastAPI and PostgreSQL on the back end, React with Vite for the Mini App, and integrations with MyDrop, Google Sheets, Nova Poshta and WayForPay.
- Python
- aiogram
- FastAPI
- PostgreSQL
- React
- Telegram Mini App
- MyDrop API
- Nova Poshta API
- WayForPay
How the platform is put together
The key decision is a single bot for everyone. A seller does not get a separate bot to register, host and update: they sign up in the platform’s shared bot and receive a link carrying their own token. A buyer opens that link and sees exactly that shop - its products, its banner, its colours. The system can hold any number of stores, and none of them knows about the others.
From there the system splits into two halves working on one database: the storefront where the client buys and the bot where the seller runs the shop. Neither side installs an app or opens a website - it all happens inside Telegram.
1. The buyer’s storefront
The storefront is a React Telegram Mini App: a home screen with a banner and categories, a catalogue with search and filters, a product page with sizes and colours, a cart and checkout. Nobody maintains the category list separately - it is assembled from the products themselves, so it always matches what is actually in stock.
Checkout is built for the Ukrainian market: the Nova Poshta city and branch are suggested from a local copy of the branch database rather than an external API call on every keystroke. If the seller has turned on payment confirmation, the buyer must attach a screenshot of the transfer - without it the order is simply not created.
2. The seller bot instead of an admin panel
There is no separate admin panel - the shop is run entirely from the bot. Products are added step by step (name, description, price, category, photos, sizes, colours, availability), any step can be skipped, and an existing card can be edited field by field, hidden from the storefront or deleted.
The storefront look is configured from the bot as well: the accent colour of the buttons, the banner photo and the line under the shop name. Change it and buyers see the result at once, with nothing to restart. The manual lives inside the bot too, so the seller never has to look for instructions elsewhere.
3. Where the catalogue comes from
The catalogue can be kept by hand, but the point of the platform is different: connect a ready source and stop dealing with products at all. There are three sources - MyDrop as a vendor (your own stock), MyDrop as a dropshipper (somebody else’s stock plus your markup, as a percentage or a fixed amount), a YML feed and an ordinary Google Sheet in which the bot works out the columns by itself.
Only one source can be active at a time, and switching wipes the previous import so the storefront never keeps items nobody supplies any more. Manually added products stay where they are. The catalogue and stock levels refresh themselves every half hour.
4. Orders, delivery and money
The moment a buyer places an order, the seller receives a card with the contacts, the items, the city and the delivery method - plus the payment screenshot if that option is on. Statuses change with buttons right under the card, and every change automatically notifies the buyer on behalf of the shop.
With MyDrop connected, statuses sync both ways and the waybill number is pulled in automatically - the seller never moves an order between systems by hand.
5. The subscription as the business model
The platform earns from subscriptions: the first days are free and require no card, after which recurring billing through WayForPay kicks in. If a payment fails, the system retries up to three times and tells the seller why; after a cancellation the shop keeps working until the end of the period already paid for rather than shutting down on the spot.
The logic that matters
- → Multi-tenancy on a single bot: the token in the link identifies the shop, so onboarding a new seller needs neither a new bot nor a separate deployment
- → Manual and imported products are kept apart: changing or resetting the catalogue source never touches what the seller entered by hand
- → Recurring billing with retries and a clear message about why a charge failed, instead of silently switching the shop off
- → Nova Poshta branches are stored locally and refreshed on a schedule - checkout does not depend on an external API being up
What the platform can do
- → A personal Telegram store for every seller - a Mini App storefront behind their own link
- → A catalogue with search, filters for new, popular and discounted items, and paged loading
- → A product page with multiple photos, sizes, colours, stock levels and a struck-through old price on sale
- → A cart and checkout with autocomplete for the Nova Poshta city and branch
- → Catalogue import from MyDrop (vendor or dropshipper with a markup), a YML feed or a Google Sheet
- → Automatic price and stock updates every 30 minutes with no seller involvement
- → Orders with statuses new → confirmed → shipped → delivered and automatic buyer notifications
- → Two-way synchronisation of statuses and waybills with MyDrop
- → Storefront styling from the bot: accent colour, banner and the line under the shop name
- → A subscription with a free period, WayForPay recurring billing, retries and a two-click cancellation