It usually starts with one email. A café wants your mugs. A gift shop wants a dozen prints for the run-up to Christmas. A florist down the road asks if you do trade prices.
It's a good problem to have. It also raises questions your shop wasn't built to answer. What do they pay? Do they see VAT? Do they really have to put a card in at checkout like everyone else?
Why a second store is the wrong answer
The obvious fix is a separate wholesale shop. Copy the catalogue, change the prices, hand out the link.
That works for about a week. After that you have two catalogues to keep in step, and two stock counts that both think they own the same twenty mugs. Every product edit happens twice. Every new photo goes up twice. When a trade order and a retail order land on the same afternoon, you only find out you've oversold when you go to pack them.
For a small maker, stock is the real problem. There's one shelf of finished work, and both kinds of customer are buying from it. In Taberno, stock counts down as orders come in. That only helps if every order goes through the same shop.
So it's better to keep one shop and treat trade buyers as a different kind of customer. That needs three things.
Customer groups: one trade discount, not a second price list
The first is a customer group. You put a buyer into a Trade or Wholesale group and give the group a store-wide discount. That discount comes off what they pay at checkout.
That's all of it. Your products keep one price, and the trade customer sees and pays the discounted one. Every order builds up a customer record under Customers, and group membership is part of that record. You can see at a glance who's trade and who isn't.
One limit to be clear about: this is one discount across the whole store, not a separate price for each product. If your trade terms are "a set percentage off everything", which is how a lot of small makers start, it fits. If you've negotiated a different margin on every item, it won't express that.
Trade discounts are separate from promotions. Discount codes and automatic offers like spend thresholds or buy-one-get-one live under Promotions and are aimed at everyone. The group discount belongs to the buyer, so they don't need a code or a special link. They sign in and they get their price.
Ex-VAT for trade buyers, inc-VAT for everyone else
The second thing is how prices are shown.
Members of the public expect to see the price they'll actually pay, so they see VAT included. Businesses usually think in ex-VAT figures, because that's the number that matters to them. If a trade buyer sees inc-VAT prices, they're doing sums in their head on every product page.
In Taberno, you set tax rates per region under Tax, and they're applied at checkout. Whether prices display inclusive or exclusive of tax is a setting, not a theme edit. A customer group can override that setting. So your trade group can see ex-VAT prices while the rest of the shop carries on showing inc-VAT, from the same catalogue.
Only the display changes. The tax calculation at checkout still follows the rates you've set.
Pay by invoice: placed unpaid, stock reserved, settled later
The third thing matters most for keeping trade customers happy. Businesses often don't want to pay up front by card. They want an invoice and a few weeks to pay it.
Pay by invoice lets groups you've approved check out without a card. Here's what happens to the order:
- The order is placed unpaid. It goes through checkout like any other order, but no payment is taken.
- Stock is reserved. The items are held for that order straight away. Another shopper can't buy the last ones while you wait for the money.
- An invoice email goes out. It carries a due date based on the net terms you've set.
- It waits in the admin until you mark it paid. When the bank transfer arrives, you mark the order paid and carry on.
Step 2 is the reason to do this inside the shop rather than by email and spreadsheet. If you take a trade order by email and raise an invoice by hand, nothing tells your storefront the stock has gone. Placing it as a real order keeps the stock count honest.
From there, a trade order is just an order. You can fulfil it, add a tracking number and refund it like any other. When your accountant asks what's outstanding, you can export orders as CSV.
What to set up and test before your first trade order
Here's what I'd do, in order, before telling a business they can order:
- Check your tax rates under Tax. The ex-VAT display only helps if the rates underneath are right for the regions you sell to.
- Create the trade group. Set the discount and the tax display override.
- Decide your net terms and turn on pay by invoice for that group.
- Make a test trade customer. Use an email address you can check, and put it in the group.
- Sign in as that customer and browse. Check the prices are discounted and shown ex-VAT. Then sign out and check that ordinary visitors still see inc-VAT prices with no discount.
- Place a test order on account. Confirm it lands unpaid and the stock count drops.
- Check the invoice email arrived. Settings > Logs shows sent email, which is the quickest way to see whether it went out. If you self-host, point Settings > Email at a real mail provider first. The default writes to the server console and sends nothing, and an invoice nobody receives won't get paid.
- Mark the test order paid, then refund or cancel it so it doesn't skew your numbers.
That's an afternoon's work at most. After that you can reply to the café with a login and your terms, without building a second shop.
All of this is built into Taberno, on both plans. You can try the hosted version free for seven days without a card. Or, since it's MIT-licensed open source, you can run it on your own machine.