Plenty of small farms sell the same tomatoes two ways. A flat of them goes to a restaurant on Tuesday at a wholesale price, and the loose ones sit in a basket at the stand all week at the retail price. The problem is never the growing. It's that most tills make you keep two versions of the same catalog — one priced for the chef, one priced for the walk-up — and then keep them both correct every time a price moves.
You don't need two catalogs. You need one, with a second set of prices layered on top. Here's how that works on a self-serve till, including the parts that only matter when nobody's standing at the counter.
Your catalog price is your retail price
Start with the thing you already have: one product list, each item with one price. That price is your retail price — what a walk-up customer pays. There is no separate "retail" list to build and maintain, because the catalog is it.
That single fact removes most of the busywork. When a wholesale customer arrives, you are not switching to a different catalog. You are telling the till, for this one sale, to use a different set of prices where you've set one — and to fall back to the catalog price everywhere you haven't.
A price list is only the prices that differ
A price list is a named overlay: "Wholesale," "Market day," "Café accounts," "Members." You create one and it starts empty. Then you type prices only for the items that are actually different.
Anything you leave blank on that list still sells at its catalog price. So if your wholesale customers get a break on the produce but pay the normal price on jam and honey, you type the produce prices and leave the jam and honey alone. You are not re-entering your whole catalog at a discount. You're entering the exceptions.
For a big list — say every vegetable at wholesale — there's a shortcut: set the whole list to a percentage of retail in one action ("everything at 75% of retail"), then hand-adjust the few that don't fit the rule. Re-running that percentage later leaves the prices you typed by hand alone, so a seasonal reset can't quietly undo your own decisions.
Choosing the price at the till
A sale doesn't guess which prices to use. On the checkout screen there's a small price tag that shows which prices this sale is on. It reads Retail by default. Tap it and you get the short list of whatever you've created — Retail, Wholesale, Market day — and you pick one. Ring the sale, and the right prices apply to everything in the cart.
Two things about that tag are worth knowing:
- It only appears if you've turned price lists on and created at least one. A stand with a single set of prices never sees it — nothing to clutter the screen, nothing to tap by accident.
- Every new sale starts back on Retail. Choosing Wholesale for the chef's order doesn't leave the till on Wholesale for the next customer. The safe default reasserts itself with each sale.
Here's the same idea as a worked example. Say retail is set, and your wholesale list is "75% of retail" with two hand-typed exceptions:
| Item | Retail (catalog) | Wholesale list | Sold to a wholesale account |
|---|---|---|---|
| Heirloom tomatoes (lb) | $4.00 | 75% → $3.00 | $3.00 |
| Salad mix (bag) | $6.00 | hand-typed $4.50 | $4.50 |
| Wildflower honey (jar) | $9.00 | (blank) | $9.00 — catalog price |
The honey has no wholesale price, so it just sells at catalog. You never had to decide "what's the wholesale honey price" because you don't give the chef a break on honey. The blank is the decision.
The part that only matters when no one's at the counter
Two price levels are common in staffed retail. What's different about a self-serve or unattended stand is that the person tapping the screen is often the customer, not you. If switching to the wholesale price is one tap away for anyone, you've built a self-service discount button.
So switching price lists can be put behind a manager PIN. The stand shows Retail, a shopper can buy at Retail all day, and getting to the wholesale prices takes the code only you and your staff know. Your restaurant buyer still gets served at their price — you (or whoever packs their order) unlock it — but the honor-system shopper at the fridge can't.
This is the same principle the rest of an unattended till runs on: the safe thing is the default, and the powerful thing takes a deliberate, gated action.
It works with no signal
Price lists aren't a live lookup to a server. Each till pulls the full set of lists down and keeps them locally, so the right prices are present whether or not the stand has a bar of signal that afternoon. A market stall in a dead zone and a roadside stand on flaky rural internet both ring wholesale and retail correctly offline, and reconcile when they're back on a connection. The prices you set in the office that morning are the prices at the field that afternoon.
Editing happens in one place — the Portal, from any browser. Change a wholesale price there and the tills pick up the change on their next sync. There's no per-device price-fiddling to keep straight, and no chance of two tills disagreeing about what the café pays.
A few things worth setting up on purpose
- Name lists for how you think about the customer, not the discount. "Café accounts" and "CSA members" tell you at a glance who a sale is for. "10% off" doesn't age well when the percentage changes.
- A retired list keeps its history. Turn off a "Holiday market" list at the end of the season and it stops appearing at the till, but the sales you rang on it still show which prices applied. You're switching it off, not erasing what happened.
- Product sizes get their own list prices. If a coffee comes in 12 oz and 5 lb, the sizes are what sell, so each carries its own wholesale price — the group heading isn't a thing you price.
- You can keep more than two levels. Retail plus wholesale is the common pair, but market-day pricing, a members' rate, and a staff price can all coexist as separate lists on the same catalog.
The short version
Sell to a chef and a walk-up from the same product list. Keep one catalog at retail prices, add a wholesale list that holds only the prices that differ, and pick which prices a sale uses at the till — behind a PIN when the till is out on its own. No second catalog, no live connection required, no self-service discount button.
If you're setting a stand up from scratch, you can create a TallyTill account free — no credit card — build your catalog once, and add a wholesale list on top when your first restaurant account comes calling. Start with a free account and price the exceptions, not the whole shelf twice.