- 160
- Products in catalog
- 340
- Automated checks
- 89
- Database updates
Problem
Asian Falcon (Aziin Shonkhor) sells vegetables and fruit to restaurants, hotels and canteens across Ulaanbaatar. The whole order book ran on phone calls, paper and memory. An order came in by phone, someone wrote it down, then typed it into a spreadsheet again later. Nothing joined up.
Four things were quietly costing the business:
- Prices lived in someone's head. Every customer negotiates their own price for the same box of tomatoes, and there was no record of what had been agreed with whom. Only what somebody remembered.
- Debts were tracked by hand. Who owes what, since when, for which delivery: the money the business is owed, kept on paper.
- Nothing could be checked back. When a figure looked wrong, there was no way to see who changed it, when, or what it had been before.
- Customers could not help themselves. Every order, every question about a price or a balance, was another phone call for a team of five to answer.
That last point set the tone for everything after. This is money. A wrong price on a screen is a promise the business then has to keep or argue about. Getting it right had to come before getting it clever.
Process
I started from the paper, not from a blank screen. The system copies what the business already did: the balance each customer was carrying over from the old ledger, a statement per customer, a delivery day with one truck's worth of room on it. Nobody had to learn a new way of thinking in order to start using it.
Every change is proved before it goes live. 89 updates have gone into the running system so far, and each one checks the ground before it moves. Alongside them sit 340 automated checks that run against a real copy of the business data. They confirm the tax adds up, that one customer can never see another customer's orders, and that every balance still balances to the last togrog.
Screens are measured, not eyeballed. Mongolian runs about twice as wide as the same sentence in English, so every layout change is rendered at phone width and measured. Above all it is checked for whether any amount of money is being cut off, because a clipped figure reads as a different number.
Features came from complaints, not from a plan. "People make mistakes, so it should be editable." "If I fill this in and go somewhere else, it should still be there." Each one shipped while the business was using the system.
Key Decisions
- The screen never decides the price. A page someone has had open for an hour is out of date. So every order is priced again from scratch at the moment it is placed, and if that disagrees with what the customer was shown, the order stops rather than going through at the wrong number.
- Prices are stamped onto the order, not looked up afterwards. Each line keeps the price it was actually sold at. Changing what a product costs today can never quietly rewrite last month's invoices.
- Only the agreed prices are stored. A customer with no special deal simply pays the list price, so a new customer needs no setup at all, and moving someone back to the standard price is a deletion rather than a number somebody has to remember and retype.
- Staff cannot see cost or profit. What the business pays for its stock is not hidden behind a setting. It is kept somewhere only the owner can reach, so there is nothing there for a staff account to find.
- When the system says no, it says why. A refused order comes back as a plain sentence in the customer's own language, not a code or a blank screen.
- Built light on purpose. Ten outside pieces of software in the whole thing, where a project this size usually collects dozens. Fewer moving parts means fewer places for a rule about money to get quietly misread, and less to go stale later.
- Mongolian first. 875 phrases across the two languages, and a missing translation stops the build rather than leaving a gap on a customer's screen. The business writes its own paperwork in Mongolian, and the app matches it.
Outcome
The platform is live on the company's own domain, used every day by the owner and five staff, with accounts for customers across the client base and a catalog of 160 products. It installs on a phone like an app, because staff work from phones and customers order from them.
- Customers browse at their own prices, order for a delivery day, repeat a previous order, check their balance and statement, and pay online.
- Staff take orders over the phone on a customer's behalf, correct orders after the fact, manage the catalog and the delivery calendar, record payments and expenses, and print or export whatever the accountant needs.
- The owner also sees cost, margin and profit per customer, figures nobody else can reach.
The site and the data behind it both sit in Seoul, the closest place to Ulaanbaatar, so a page does not have to cross the Pacific and back before it loads.
It runs to about 64,000 lines of code, and I built and shipped all of it alone: the requirements came straight from the business owner, then the design, the build, the writing in both languages, the launch, and the support that has followed ever since.
