Walk into almost any small or medium retail business in Indonesia and you will find the same setup: a cash register or a tablet running a basic POS app, an Excel file tracking inventory, and a WhatsApp group where the owner gets daily summaries from staff. It works, but it is not a system. It is a collection of workarounds.
Mercora is our answer to that.
What Mercora Actually Is
Mercora is a full-stack point-of-sale and operations system built for retail businesses that have outgrown spreadsheets but do not need a SAP implementation. It runs on FastAPI and Next.js, uses PostgreSQL with async queries, and is designed to handle the real operational complexity of a multi-location retail business.
The core modules:
POS (Point of Sale): The cashier interface is built for speed. A transaction from scan to receipt should take under 30 seconds. The cashier screen handles product search by name or SKU, quantity adjustments, multiple payment methods, and receipt generation without switching screens or apps.
Inventory: Real-time stock tracking across products and variants. Low-stock alerts trigger automatically. Inventory adjustments are logged with reasons. The system tracks cost prices and calculates gross margin on every sale.
Purchasing: Create purchase orders, receive goods against POs, and track outstanding orders. When goods are received, inventory updates immediately. No manual sync, no separate entry.
Customers and Suppliers: A CRM layer for repeat customers and a supplier database with contact and payment terms. Customer purchase history is queryable. This is the foundation for loyalty programs and targeted promotions.
Reports: Sales by period, product, and category. Inventory valuation. Gross margin analysis. Cash flow by day. The reports are built to give an owner the information they need in under two minutes, not a data export that requires another tool to interpret.
The Marketing Module
This is where Mercora separates from generic POS systems.
We built a full marketing backend into the same stack. Campaign management, promotion creation, and customer targeting are first-class features, not plugins or integrations.
A promotion can be defined as a percentage discount, a fixed amount off, a buy-X-get-Y rule, or a product bundle. It applies automatically at the point of sale when conditions are met. The cashier does not need to remember codes or manually apply discounts.
Campaigns have start and end dates, eligibility rules (new customers, repeat purchasers, minimum spend), and are tracked against sales data so the owner can see whether a promotion drove revenue or just reduced margins.
This matters because most Indonesian retail promotion management happens through the owners memory and occasional WhatsApp broadcasts. Mercora formalises it.