POS app for boutiques & fashion shops
Stock by size and colour, in store and online at once.
Follow one day at Butik Kirana. 48 new shirts arrive in 12 variants, a Gold member shops at 11, and by evening Nadia knows which sizes to have made again.
Also fitsShoe & bag shopsStreetwear storesModest fashion shops

09:30 · Goods in · Nadia
48 pcs
Linen shirt · 3 colours × 4 sizes
Receipt · INV/2026/10/30511:20
- 1 × Linen shirt · Sage · M
- Rp 189,000
- 1 × Culottes · Black · L
- Rp 219,000
- Gold Member discount 7%
- − Rp 28,560
TotalRp 379,440
- Sales
- Rp 6,840,000
- Receipts & orders
- 21 receipts + 4 online
- Gross profit
- Rp 3,412,000
- Variants running low
- 5 variants
The problem in boutiques
One style comes in a dozen variants, and every one has to be counted.
The same shirt can sell out in M and pile up in XL. If stock is only kept per style, you find out when a customer walks away disappointed, in store or online.
01Stock says "in stock", but the size they want is gone.
Every size and colour is a variant with its own stock and barcode.
Step 0102Member discounts are worked out by hand and differ from cashier to cashier.
Discounts belong to the customer group, so the cashier just picks the customer's name and the discount applies itself.
Step 0203Online orders are recorded separately from the shop.
WooCommerce orders come into Online orders in Tumra, and become sales from the same stock once they're completed in the online store.
Step 0504You don't know your profit after discounts.
Every receipt records the cost of its variants, so the day's profit after discounts shows on the dashboard right away.
Step 04
Simulation · One day at Butik Kirana
One working day, from goods in to online orders.
Butik Kirana is on Shop Plus with two users, Nadia and Sinta, and one WooCommerce store. Every number below is a number that appears on Tumra's screens.
- 09:3001 · Goods in
48 shirts received in 12 variants.
The linen shirt is already set up with 12 colour and size variants, each with its own barcode. Nadia receives the delivery from the garment maker and enters the quantity per variant. The amount owed to CV Benang Emas is recorded, due on 27 October.
Sales & purchasingGoods received · PB/2026/10/02709:30
- Linen shirt · 3 colours × 4 sizes
- 12 variants
- Quantity
- 48 pcs × Rp 85,000
- Total
- Rp 4,080,000
SupplierCV Benang Emas · due 27 Oct
- 11:2002 · Checkout
A Gold member shops, and the discount applies itself.
Bu Mira picks a Sage shirt in M and black culottes in L. Sinta selects Bu Mira's name, and the 7% Gold Member discount applies at once. Bu Mira pays by debit card.
Point of sale (POS)Receipt · INV/2026/10/30511:20
- 1 × Linen shirt · Sage · M
- Rp 189,000
- 1 × Culottes · Black · L
- Rp 219,000
- Gold Member discount 7%
- − Rp 28,560
TotalRp 379,440
From the same receipt · no re-entry
03 · Stock · 11:20
Stock goes down by size, not by style.
The Sage shirt in M drops from 4 to 3, the black culottes in L from 3 to 2. The culottes are now below their reorder point, so they go straight onto the low-stock variants list.
Products & stockStock per variant11:20
- Linen shirt · Sage · M
- 4 → 3
- Culottes · Black · L
- 3 → 2
- Culottes reorder point
- 3
Culottes · Black · LLow
04 · Profit · 11:20
Profit after discount goes up straight away.
The discount is already taken off the sale, and each variant's cost comes from its average cost. Today's gross profit on the dashboard goes up without any recalculation.
AccountingProfit breakdownINV/305
- Sales after discount
- Rp 379,440
- Cost of goods (85,000 + 98,000)
- Rp 183,000
Gross profit+ Rp 196,440
- 14:0505 · Online
A WooCommerce order comes into Tumra.
Order #1187 for a Cream shirt in L comes in from the online store. Sinta sees it in Online orders, on the Not shipped tab, and packs it. Once the order is marked completed in WooCommerce, Tumra deducts that variant's stock and issues the invoice.
WooCommerce integrationOnline order · #118714:05
- Linen shirt · Cream · L
- Rp 189,000
- Shipping
- Rp 18,000
- Total
- Rp 207,000
StatusNot shipped
- 21:0006 · Close drawer
The drawer is closed, and only cash is counted.
Sinta presses Close Drawer. Debit and QRIS payments aren't counted as money in the drawer, so only cash is checked, and it matches exactly.
Point of sale (POS)Close drawer · Sinta21:00
- Opening float
- Rp 300,000
- Cash received
- Rp 1,420,000
- Expected
- Rp 1,720,000
- Counted by Sinta
- Rp 1,720,000
DifferenceRp 0
21:30 · Boutique owner
The boutique is closed, and Nadia knows which sizes to have made again.
Nadia sees the result of 21 receipts and the online orders on one screen, along with the variants starting to run out.
Profit after discounts
Member discounts already taken off, cost recorded per variant.
Variants running low
By size and colour, not by style.
Shop and online as one
Completed WooCommerce orders become sales without being entered again.
Owed to the garment maker
Today's delivery is due on 27 October.
Today's summary · Butik Kirana
Tuesday, 13 October
- Sales
- Rp 6,840,000
- Gross profit
- Rp 3,412,000
- Drawer difference
- Rp 0
- Owed to garment maker
- Rp 4,080,000
21 receipts + 3 online completed
49.9% of sales
Sinta's shift
27 Oct
Variants running low · 5 variants
- Culottes · Black · L2 / min 3
- Linen shirt · Sage · M3 / min 3
- Linen shirt · Cream · S1 / min 3
Features used
The features behind that one day.
You've already seen every feature below at work in the simulation. Open its page for the full details.
- Products & stockSteps 01 · 03Size and colour variants, a barcode per variant, reorder points.
- Point of sale (POS)Steps 02 · 06Barcode scanning, automatic member discounts, a drawer per cashier.
- Customers & creditStep 02Silver and Gold member groups with a percentage discount.
- WooCommerce integrationStep 05WooCommerce orders come into Online orders, then become sales.
- Sales & purchasingStep 01Goods received and amounts owed to the garment maker.
- AccountingStep 04Every receipt is recorded as sales after discount, cost, and profit.
The plan Butik Kirana uses
One plan is enough for that whole flow.
WooCommerce online stores start on Shop Plus. If you only sell in a physical shop, Shop Starter is enough.
Used in the simulation
Shop Plus
Rp 139,600Rp 349,000/month, incl. VAT
- Users
- 3
- Checkout locations
- 2
- WooCommerce stores
- 1
- Size & colour variants, barcodes
- Member groups with discounts
- Online orders from WooCommerce
- Accounting, reports, and tax
Shop StarterRp 71,600/mo · 2 users, 1 checkout location, no online storeCompare all plans
FAQ
Common questions, honest answers.
We answer plainly, including what Tumra can't do yet.
A good fit if
- Your products come in many sizes and colours
- You sell in a shop and online
Not a fit yet if
- You sell other designers' goods on consignment
- You need a points programme for customers
01Can I print barcode labels for each variant?
Not yet. Each variant can hold more than one barcode and scans straight away at checkout, but Tumra doesn't print barcode labels yet. Print them with your label printer's app, using the same codes.
02What if a customer wants to swap sizes?
There's no exchange button at checkout yet. The owner, an admin, or finance records a return from that receipt's invoice: pick the variant coming back, its stock goes back in, and the value is recorded as a refund. The replacement size is sold on a new receipt. The refunded money isn't included in the drawer count.
03Is there a points or voucher programme for customers?
Not yet. A "member" in Tumra is a customer group with its own percentage discount and credit rules, with no points, vouchers, or member cards. For different tiers, such as Silver and Gold, create two groups with their own discounts.
04Can I sell goods on consignment?
There's no consignment or per-item profit-share tracking yet. Consigned goods can be recorded as goods received from the consignor: stock and payables go up when the goods arrive, not when they sell. Unsold items go back through a supplier return, which reduces what you owe.
05Does WooCommerce stock change when something sells in the shop?
Yes, for listings you approve in Stock publishing, as long as Orders become sales is switched on. Prices aren't synced: the selling price is filled in only once, when the product is created from the store. Order status and tracking numbers are still managed in WooCommerce.
06Can the POS be used when the internet is down?
Not yet. The POS runs in the browser and needs internet when you press Pay. If the connection drops mid-transaction, pressing Pay again continues the same sale, so the goods and the money aren't recorded twice.
Get started
Add your first collection with every size included.
Create your variants, print your first receipt, and connect your online store. Free for 30 days, no credit card.
- Start on the Free plan
- No credit card






