We built a system for a Moldovan flower shop that brings orders, stock and reports into one place
Sellers take orders and in-store sales, stock updates itself, and the owner sees daily revenue, losses and margin per product.

The business problem
The shop deals with stock that spoils fast and with orders coming from several channels: phone, walk-ins, scheduled deliveries. Without a shared system, whoever takes an order can't be sure what flowers are left, and the owner only learns at month's end how much was lost to wilted or damaged stock.
It mattered because a florist's margin leaks through small things: a bouquet sold below its real cost, a batch of roses thrown away, an order forgotten for tomorrow.
Find, together with the shop's team, a solution that keeps orders, stock and costs in one place, so sellers can work fast and the owner can see where the business earns and where it loses.
- Protected financial dataSellers work with stock but never see purchase prices, margins or profit; the rules are enforced in the database, not only in the interface
- Correct stock with many people at onceTwo sellers can sell the same flower in the same minute; stock can never go below zero, and a cancelled order returns its items exactly once
- UsersNon-technical sellers who work standing up, on their phones
- Real costThe same rose costs differently from one delivery to the next, so cost is recomputed on every delivery to keep reported profit real
- LanguagesThe interface works in Romanian and English
The solution
We did not start with screens. We started with the shop's working day and set, together with the client, who does what: the seller takes orders and serves walk-in customers; the admin receives supplier deliveries, sets prices and watches the numbers. We then traced a flower's path, from supplier delivery, through an order or a walk-in sale, to a delivered bouquet or a write-off, and wrote a design document for each stage before any code.
We built in stages, following that same day: in the morning the admin sees today's orders and low stock, sellers move orders from "Confirmed" to "In progress" and "Ready", new stock is received with the supplier recorded, damaged flowers are written off with a reason, and in the evening reports show revenue, profit and losses for the period. Every important action stays in a log of who did what and when.
- We agreed the roles with the client: what the seller and the admin can do and see.
- We traced a flower's path, from supplier to customer or to write-off, and wrote a design document for each stage.
- Stock is reserved when an order is created, so flowers promised to one customer can't be sold to another.
- Walk-in sales reuse the order flow in a quick mode, so staff learn one way of working.
- Losses are recorded with a reason and every delivery has a supplier, so the owner sees why and from where stock is lost.
- Financial data stays confidential, and every important action has an author in the log.
- Web appRuns in the browser on desktop and phone, nothing to install
- Cloud databaseAll shop data in a managed cloud database, in one place
- Role-based accessAdmin and seller see and do different things; the rules live in the database
- Stock ledgerEvery stock movement is a ledger entry; stock and average cost update automatically
- Safe order creationAn order and its items save together or not at all; prices and order number are set by the server
- Audit trailA log of who did what and when that cannot be forged from the app
Screens with demo data
What we found midway through
Creating an order touches several tables at once: the order, its items, reserved stock and the activity log. We moved creation into a single atomic database function, so an order is never left half-saved.
Online payments needed webhook confirmation, protection against double payment for the same order and a reconciliation screen against the provider’s records.
Along the way we added walk-in sales, a loss report by reason and a per-user activity log. A bottom navigation bar was added for sellers working from the shop floor on a phone.
What the client gained
The shop now works from one place: a phone order reserves the flowers right away, a walk-in sale lowers stock, and each delivery updates the cost. Every day the owner sees revenue, which products make a profit, what is running low and why stock gets lost, without adding up numbers from notebooks.
Sellers can no longer sell what isn't there, and every change has an author in the log.
What it looks like
Screens with demo data
From the blog
Florist management software: what it needs to include
The modules a flower shop needs: orders, batch stock, losses, online payments and margins. How to choose between off-the-shelf software and your own app.
How to choose a web development agency: 12 questions
The questions that separate a serious web agency from one that just ships screens: code ownership, timelines, staged payments, maintenance and communication.
Replacing Excel with a web app: when it's worth it
The signs your business has outgrown spreadsheets, what a web app for operations adds, what it costs, and how to switch without stopping work.
Have a similar project?
- Running a two-branch kindergartenWindows desktop app →
- Trucker HQ: truck dispatch and CDL jobsWeb platform for trucking →
- Startica, new website and events panelBusiness website with admin panel →
- Bilingual site for a wine consultantBilingual business website →
- A website that turns visits into enrolmentsBusiness website, brand and marketing →
- SwissCars.md: Swiss cars, onlineBusiness website with admin panel →
- Mees 68, interactive building mapWeb app →
- AS Factorum: industrial business websiteBusiness website →
- Website for FC ScânteiaSports club website →
- A digital twin for a trucking fleetWeb app →
- Kindergarten app, modular kindergarten managementSaaS platform · Web admin application →