How to choose a POS for your coffee shop.
Last reviewed 2026-05-26 · by the RetailPOS team
A coffee shop's point-of-sale system is the difference between knowing your beans cost you $9.40 a kilo last month and only finding out when the supplier hands you the invoice. Most independent coffee owners we talk to are running Square, Toast, or a legacy system inherited from the previous owner — all of them ring sales, none of them tell you how much milk you actually used today.
This guide walks through what a coffee-shop POS needs to do well to be worth its monthly fee — and the workflows that turn out to matter more than the demo suggested. It assumes you're an owner-operator with one to five shops, you take cards and cash, and you care more about the books matching than about a sleek logo on the till.
What this industry actually needs from a POS
Recipe depletion is the headline win
Every latte should deduct the right beans, milk, and cup automatically. POS systems that ring “Latte $4.20” without depleting ingredients leave you reconciling stock by eye, which means you discover overuse at month-end through the supplier invoice rather than at end-of-shift through the report.
Modifier groups need to be fast
Three milks, four syrups, two shot counts, sizes, hot/iced — a real menu has dozens of modifier permutations. The cashier flow has to keep up at the morning rush. Test on a real Tuesday-7am hypothetical: scan, two modifiers, payment, receipt, done in 8 seconds.
Multi-store transfers are common
One shop runs out of oat milk; the other has three cases. If the system makes you walk both transactions through a clunky transfer flow, the staff won't bother. Look for one-tap transfers and a shared owner dashboard.
Tip handling matters more than you think
Most shops still pool tips, but a growing minority pay tips per server. The POS should support both, and the report should show tip totals broken down by tender (cash vs card) so you know what to declare.
Wholesale beans is a recurring upsell
A meaningful slice of coffee revenue often comes from selling roasted beans across the counter (and to other cafés). The POS should handle wholesale price tiers + invoice-style payment for B2B customers; most consumer-focused systems just don't.
Offline mode is non-negotiable in some neighbourhoods
If your internet drops twice a week — which is normal in many parts of the world — your till has to keep ringing. Test offline mode on the demo by unplugging the router; queued sales should sync without duplicates when the connection comes back.
Loyalty matters most for regulars
A coffee shop's regulars buy 4-5 times a week. A loyalty programme tied to the till (not a separate app the customer has to remember) is the right shape. 1 point per dollar, 100 points = free drink is the conventional rate.
Seasonal menus need fast item shuffles
Pumpkin spice in October, peppermint in December, then back to regulars. Adding, deactivating, and bulk-updating items shouldn't require a developer. CSV import of seasonal items is a real time-saver.
Must-have features
- ✓Recipe-based ingredient depletion
Selling a 12oz latte deducts 18g of beans, 300ml of milk, and one 12oz cup from stock. Each recipe lives at the item level. Refunds restock proportionally.
- ✓Modifier groups with price deltas
Milk (oat +$0.50, almond +$0.50), extra shots (+$1.00), size, syrups — all configurable per item with their own price effect on the line total. The cashier UI must surface them within one tap of the item.
- ✓Multi-register support per shop
One iPad at the bar, another at the counter, both running parallel during peak. Each ring lands in a single inventory ledger; no duplicates, no merge conflicts.
- ✓Offline cashier mode
Sales queue locally when the internet drops; reconcile when it returns. Not an upgrade — table stakes for any vertical that takes cards and lives in a real building.
- ✓Tip pool + per-server reporting
Configurable: pool tips evenly, or attach a server to each ticket so tips track to them. The end-of-day report shows tips by tender type so cash + card split is clear for payroll.
- ✓End-of-shift drawer count with variance
Opening float, drops, pay-ins, pay-outs all tracked. Close shows expected vs counted with the variance flagged. Variance below $5 is normal; variance above signals something to investigate.
- ✓Stock transfer between locations
One tap moves 5 litres of milk or 30 croissants from shop A to shop B. Both locations' on-hand updates atomically.
- ✓CSV import for items and customers
Migrating from Square, Clover, or a legacy system shouldn't require manual data entry. Look for an items.csv + customers.csv import path; bonus if the system documents the exact column names.
- ✓Loyalty points at the till
Attach a customer, earn points on the sale, redeem points at the next visit. No separate loyalty app; one customer record everywhere.
Nice-to-haves
- +In-store pickup orders from a phone
Customer orders ahead via a QR-scanned link; barista sees it on the bar tablet. Useful at sites with regular commuters; overkill at a leisure-traffic shop.
- +Gift card support
Sell digital + physical gift cards through the till. Genuinely useful in Q4; the rest of the year the volume is small.
- +Tip suggestions on the customer-facing screen
15% / 20% / 25% buttons on a customer-facing iPad. Increases tip-take noticeably; some staff find it pushy. Tenant configurable.
- +Wholesale price tiers + invoicing
If you sell beans wholesale, having the POS handle the per-customer tier + invoice is a workflow saver. Otherwise the wholesale side lives in a spreadsheet and quietly creates reconciliation pain.
- +Subscription / coffee-of-the-month
Recurring billing for a monthly bag of beans. Niche but high-margin. Most systems don't support it native; a Stripe Billing handoff covers the gap.
- +Per-staff commission on retail bag sales
A bag of beans rung at the till earns the barista a small commission. Lifts attach rate. Borrowed from the salon-pack pattern; not standard in coffee POS.
Buying traps to avoid
- ⚠“Multi-location” as a paid upgrade
Square charges $40/month/location for multi-shop reporting on Plus. Clover bundles it inconsistently across plans. If you have or expect to have two shops, the upgrade fee adds up faster than the base plan. Buy a system where multi-store is included.
- ⚠Locked-in payment processors
Some POS systems force you onto their card processor at fixed-rate fees (2.6% + 10¢ is the common Square shape). You can't shop around for processing once you're on. The win is a POS that lets you bring your own Stripe (or alt) account — your processing rate scales with your volume, not theirs.
- ⚠Hardware lease
Clover's 3-year lease is the cautionary tale: you're renting a terminal you could buy outright for half the lease total. If a POS is bundled with mandatory hardware financing, walk away.
- ⚠“Recipes” in air quotes
Some POS systems claim recipe support but actually just nest items inside other items (a “modifier called extra shot that costs $1” isn't a recipe). True recipe depletion means selling a latte decrements 18g of beans, 300ml of milk, and 1 cup against stock. Ask for a screenshot of the recipe editor and the stock ledger before signing.
- ⚠Per-transaction fees on top of the monthly plan
Even after you've paid the monthly, some systems take a small fee per ring (2-15¢). At 500 rings/day that's another $30-90/month on top. The fee should be on processing only — what your bank charges to move the card payment.
How to choose your coffee shop POS
- 1List your menu and modifiers honestly
Write down every drink, every size, every modifier. Count the unique permutations — not the marketing-friendly menu count. A 20-item menu with 6 modifier groups is closer to 200 unique line items than 20. The POS has to handle this without lag.
- 2Decide on your ingredient depletion stance
Are you willing to set up recipes for every drink? It is ~2 hours of one-time work per shop. If yes, recipe depletion is your highest-leverage feature. If no (rare for serious shops), pick a POS that does direct stock without a recipe BOM.
- 3Test the modifier flow at speed
On any demo POS, time yourself ringing 5 typical orders. A 16oz oat-milk latte with an extra shot should take under 8 seconds from item-tap to receipt. If it does not, the morning rush will hate you.
- 4Confirm the multi-store story even if you have one shop today
You may open another in 12-18 months. Check whether multi-store is included or a paid upgrade. The cost gap between “single-shop POS” and “multi-store POS” is often the gap between “painful migration in 12 months” and “flip a switch.”
- 5Check the payment-processor lock-in
Read the contract. Are you forced onto their card processor, or can you bring your own Stripe / Adyen / regional account? Bring-your-own typically saves 0.3-0.8% in card fees once volume is meaningful.
- 6Validate the offline path
On the demo, unplug the WiFi. Ring 3 sales. Plug the WiFi back in. Confirm the 3 sales sync as a single batch with no duplicates and no manual reconciliation. Many systems fail this test in subtle ways.
- 7Look at the data export, not the dashboard
The most important question is: can you leave? Look at the “download all data” option in the settings. If it is one click and one file, your data is yours. If it requires support email + 5 separate exports + 30-day SLA, you are locked in.
- 8Run a real Tuesday
Most POS demos go well because the salesperson runs the script. Get a 14-day trial; run an entire Tuesday on it. Note every friction. The system that feels right on a real day is the one to buy.
Glossary
- BOM (bill of materials)
- The recipe at the item level: 1 Latte = 18g beans + 300ml milk + 1 cup. The basis for ingredient depletion.
- Modifier group
- A set of choices attached to an item — “Milk: whole / skim / oat / almond”. Each option can have a price delta and can override the underlying recipe.
- Tender
- A single form of payment on an order — cash, card, gift card. An order can have multiple tenders (split tender).
- Z-Report
- The printable end-of-day reconciliation that closes the register's shift. Shows opening float, drops, pay-ins, pay-outs, expected cash, counted cash, variance.
- Outbox event
- A pattern where every sale, refund, and stock movement emits an event other systems (accounting, ecommerce, analytics) subscribe to. Replaces fragile point-to-point integrations.
- 86
- Restaurant jargon: “we're out of it.” A POS should let the kitchen mark an item “86” in one tap; the till greys it out across every register in seconds.
- PLU code
- Price-look-up code, typically 4-digit, used in produce + bulk grocery. Less common in coffee but relevant if you sell scooped beans by weight.
- Audit chain
- A tamper-evident log where each entry is hashed against the previous one. If anyone edits a past sale or refund, the chain breaks and the system can prove it.
- Loyalty points
- Earn-on-sale, redeem-at-the-till credit tied to a customer record. Conventional rate in coffee: 1 point per $1, 100 points = a free drink.
- Multi-store transfer
- Moving stock from one shop to another, atomic across both locations' ledgers. The receiving shop's on-hand and the source shop's on-hand update in the same database transaction.
Frequently asked
- How long does it take to set up the recipes for our menu?
- An evening. The starter pack ships eight drinks already wired (espresso, latte 12oz / 16oz, oat latte, cappuccino, mocha, tea, americano) — those are live the moment you sign up. Your house specials get rung the first time you make them; we save the recipe as you go.
- Does it work with my Stripe Reader / Star printer?
- Yes. Bring-your-own-Stripe means you keep your existing Stripe account and Reader M2 / M3. Star TSP143IIIBI Bluetooth pairs with the iPad till; same for an Epson TM-m30. Cash drawers driven by the printer's drawer port.
- What about offline — what if the WiFi drops mid-rush?
- The till keeps ringing. Sales queue locally; when the connection comes back they sync — no duplicates, no manual reconciliation. Included on every plan, not an upgrade.
- We have two shops — can the owner see both at once?
- Yes, and it's the standard pricing tier ($69/shop/month on Pro). One dashboard rolls up sales, stock, and end-of-day across every location. Move beans from one shop to the other in one tap.
- What if we outgrow it — can we export everything?
- One click in Settings → download every customer, every order, every receipt as a single JSON file. Your data is yours either way; we don't hold it hostage.
Ready to look at the product side of this? See the coffee shop pack →
Open your coffee shop in 30 seconds.
No card. Free until your first 100 sales. Bring your own Stripe; keep your hardware.